SQL第一期—关于员工的秘密

2019-04-21  本文已影响0人  有理酱_Yuri_Wg

数据源:


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的区别

参考:SQL教程

上一篇下一篇

猜你喜欢

热点阅读