数据源:
sql4.PNG
1、编写一个查询,列出员工姓名列表,员工每月工资超过2000美元且工龄少于10个月,通过employee_id升序排列;
SELECT name FROM employee
WHERE salary>2000 AND months<10
ORDER BY employee_id
sql1.PNG
关键点:AND运算符、WHERE子句、ORDER BY
AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。
WHERE 子句用于规定选择的标准。
ORDER BY 语句用于根据指定的列对结果集进行排序。
默认按照升序对记录进行排序。
如果希望按照降序对记录进行排序,可以使用 DESC 关键字。
2、查询 Employee 表格中以元音字母开头的 name 名字。结果不包含名字重复记录;
SELECT DISTINCT `name` FROM employee
WHERE SUBSTR(`name`,1,1) IN ('a','e','i','o','u')
sql2.PNG
关键点:字符串函数SUBSTR()、IN操作符、SELECT DISTINCT语句
SUBSTR (str, pos)
由 <str> 中,选出所有从第 <pos> 位置开始的字元。请注意,这个语法不适用于 SQL Server 上。
SUBSTR (str, pos, len)
由 <str> 中的第 <pos> 位置开始,选出接下去的 <len> 个字元。
IN 操作符允许我们在 WHERE 子句中规定多个值。
DISTINCT 用于返回唯一不同的值。
3、编写一个查询,去掉一个最高收入,去掉一个最低收入,该公司员工平均收入是多少?
##写法一:直接算
SELECT (SUM(salary)-MAX(salary)-MIN(salary))/(COUNT(salary)-2 )FROM employee
##写法二:子查询
SELECT (sum-max-min)/n
FROM (SELECT
MAX(salary) max,
MIN(salary) min,
SUM(salary) sum,
COUNT(salary)-2 n
FROM employee) AS A
sql3.PNG
关键点:聚合函数SUM()、MIN()、MAX()、COUNT()
4、简述NULL、空字符串、0的区别
- NULL表示空值,数值未知,没有两个相等的空值,判断用 IS NULL 或 IS NOT NULL ;
- '' 表示空字符串,判断'' 用 ='' 或 <>'' ;
- 0表示值为"0"
参考:SQL教程
网友评论