美文网首页
SQL第一期—关于员工的秘密

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

作者: 有理酱_Yuri_Wg | 来源:发表于2019-04-21 15:19 被阅读0次

    数据源:


    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教程

    相关文章

      网友评论

          本文标题:SQL第一期—关于员工的秘密

          本文链接:https://www.haomeiwen.com/subject/fozdgqtx.html