美文网首页
二、数据查询语句(Data Query Language)

二、数据查询语句(Data Query Language)

作者: 牧_青 | 来源:发表于2020-06-13 00:48 被阅读0次

    1、基础查询

    1.1、基础查询

    SELECT 查询列表 FROM 表名
    -- 查询列表可以是:表中的字段,常量值,表达式,函数
    
    # 查询字段(字段之间使用逗号隔开)
    SELECT ${colume1}, ${colume2}... FROM ${table_name}
    # 查询表中所有字段
    SELECT * FROM ${table_name}
    
    # 查询常量值
    SELECT 100;
    SELECT 'abc';
    SELECT 100*9;
    
    # 查询函数
    SELECT ${function_name}();
    

    1.2、起别名

    # 起别名有两种方式
    -- 使用关键字AS
    -- 直接在字段值后面加上别名
    
    # 方式一
    SELECT ${colume1} AS ${alias_name1},  ${colume2} AS ${alias_name2}... FROM ${table_name};
    -- example:
    SELECT employee_id AS id, first_name AS name FROM employees;
    
    # 方式二
    SELECT ${colume1} ${alias_name1}, ${colume2} ${alias_name2}... FROM ${table_name};
    -- example:
    SELECT employee_id id, first_name name FROM employees;
    

    1.3、去重

    # 去重主要依靠关键字 DISTINCT
    SELECT DISTINCT ${colume} FROM ${table_name};
    -- example:
    SELECT DISTINCT department_id FROM employees;
    

    1.4、连接

    # 连接主要依靠函数 concat()
    SELECT concat(${colume1}, ${colume2}) FROM ${table_name};
    -- example:
    SELECT concat(first_name, ' ' ,last_name) AS name FROM employees;
    
    /* 
      需要注意的是,
      当concat()参数中有为null的值,则返回值也为null
      可以使用IFNULL函数判断
      IFNULL(${colume, ${result}})
       ${colume}为可能为null的字段,${result}表示字段值为null时,希望输出的值
    */
    
    /* 
     DQL中的连接不能使用加号+
     +只能用来表示加减法
    */
    -- 如果+左右都是数值型,做加减法
    -- 如果+两边有一个为字符型,将试图将字符型转换为数值型
       -- 如果成功,继续做加减法
       -- 如果失败,将字符型转为0,再做加减法
    -- 如果一方为null,运算结果为null
    

    2、条件查询

    2.1、基本条件查询

    # WHERE
    SELECT ${colume} FROM ${table} WHERE 条件语句
    -- example:
    SELECT employee_id FROM employees WHERE salary>10000;
    

    2.2 条件语句

    * 1、条件查询
    -- 小于 <
    -- 大于 > 
    -- 等于 = 
    -- 不等于 != 或者 <> (推荐使用<>)
    -- 大于等于 >= 
    -- 小于等于 <=
    
    • 2、 逻辑表达式
    -- 与  && 或者 and 
    -- 或  || 或者 or
    -- 非  ! 或者 not
    
    -- 按条件查询
    SELECT * FROM employees WHERE salary>12000;
    -- 逻辑查询
    SELECT last_name, salary, commission_pct FROM employees WHERE salary>=1000 AND salary<=2000;
    
    # 需要重点注意的是:如果逻辑查询语句中出现了 or... or... and这样的筛选条件,使用括号和不使用括号的效果是不同的,例如下面两句(第一种甚至可以说是逻辑错误的):
    SELECT * FROM employees WHERE commission_pct<>0.4 or commonsion_pct is null and department_id='10';
    SELECT * FROM employees WHERE (commission_pct<>0.4 or commonsion_pct is null) and department_id='10';
    
    • 3、模糊查询
    # 1、LIKE
    -- 通常与通配符搭配使用
        -- % 表示任意多个字符
        -- _  表示任意一个字符
        -- \ 给通配符进行转意(或者使用ESCAPE指定转意字符)
    SELECT * FROM employees WHERE last_name LIKE '%A%';
    SELECT * FROM employees WHERE last_name LIKE '_$_%' ESCAPE '$';
    
    -- 2、BETWEEN AND
        -- 包含左右两端
        -- 左小右大
    SELECT * FROM employees FROM employee_id BETWEEN 100 AND 200;
    -- 3、IN
    SELECT * FROM employees FROM job_id IN ('IT_PROT', 'AD_VP');
    
    -- 4、IS NULL
        -- 不能使用 =null 或者 !=null
    SELECT last_name FROM employees WHERE commission_pct IS NULL;
    
    -- 5、安全等于<=>
         -- 可用表示为Null的值
         -- 可用于表示判断普通数值
    SELECT last_name FROM employees WHERE commission_pct <=> NULL;
    

    4、排序查询

    4.1、数值排序

    SELECT ${colume} FROM ${table_name} WHERE 筛选条件 ORDER BY 排序列表
    # asc || desc 
        -- asc 升序
        -- desc 降序
        -- 默认升序
        -- 支持单个字段,多个字段,表达式,函数,别名
    SELECT * FROM employees ORDER BY salary ASC, employee_id DESC;
    

    相关文章

      网友评论

          本文标题:二、数据查询语句(Data Query Language)

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