zoukankan      html  css  js  c++  java
  • DQL语言(数据库查询语言)

     一、基础查询

    语法:

    select 查询列表 from 表名;

    特点:
    列表可以是:表中的字段、常量值、表达式、函数

    查询的结果是一个虚拟的表格

    1、查询单个字段

    select last_name from employees;

    2、查询表中的多个字段

    select last_name,salary,email from employees;

     

    3、查询所有数据

    select * from employees;

    4、查询常量、表达式、函数

    select 常量;
    
    select 100*98;
    
    select version();

    5、起别名

    1. 方式一: 使用as 作为关键字
      select last_name as 姓,first_name asfrom employees;
    2. 方式二:使用空格
      select last_name 姓,first_name 名 from employees;
    3. 当关键字作为别名时要添加单引号或者是双引号
      select salary as 'out put' from employees;

    6、去重

    #案例 查询所有部门的编号

    select salary as 'out put' from employees;

    7+号的作用

    mysql中加号只有一个作用那就是运算符

    #案例

    select 100+90; 只要两个都为数值型者可以进行加法运算
    
    select '123'+90; 如果其中一方是字符类型的则试图将字符类型的转换成数值类型,

    如果转换成功就继续进行加法运算

    select 'json'+90; 如果失败则将字符类型的赋值为0,并进行加法运算
    
    select null+90; 只要一方为null那么结果为null,

    8、拼接

    select CONCAT(last_name,first_name) as 姓名;

    #如果拼接的字段为null,那么都会为null

       

    9、如果为空

    select ifnull(commission_pct,0) as 奖金率 commission_pct from employees;

    #案例 语句的嵌套使用

    select CONCAT(last_name,first_name,'job_id',ifnull(commission_pct,0)) as out_put from employees;

    二、条件查询

    1、语法规则

    select 查询列表 from 表名 where 查询条件;

    2、分类

    #按照条件表达式筛选

    简单条件运算符:>,<,<>,=,!=,>=,<=(其中<>!=相等)

    #按照逻辑表达式筛选

    #使用and连接两个条件

    三、模糊查询

    1、like

    特点可以搭配任意通配符使用

    通配符:

    % 任意多个字符,包含0个字符

    _ 任意单个字符

    #案例查找名字中包含a的人;

    select * from employees where last_name like '%a%';

    #案例 查询第三个字有o的名字

    select * from employees where last_name like '__o%';

    #案例 查询名字中包含下划线的名字;

    select * from employees where last_name like '_\_%';
    
    select * from employees where last_name like '_$_%' escape '$';// escape将$变成转义符

    2between and

    • 使用between and 可以提高代码简洁度
    • 包含临界点
    • 临界点不能调换顺序

    3、in

    判断某字段的值是否属于in列表中的某一列

    含义:

    • 使用in比使用or提高
    • in列表中的值必须与in类型保持一致

    #案例

    查询工种为 IT_PROT,AD_VP的人

    select * from employees where last_name like '_$_%' escape '$';

    4is null

    判断是否为空

    #案例 判断是否奖金为空

     

    select last_name,salary,commission_pct from employees where commission_pct is null;

    #案例 判断工资是12000的员工

    select last_name,salary,commission_pct from employees where salary <=> 12000;

    is null 比较 <=>

    Is null 只能就比较null值 可读性较高 建议使用

    <=> 可以比较不同的值,不只限于null 可读性较差

    4、排序查询

    语法:

    select 查询列表
    
    from 表名
    
    【where 筛选条件】
    
    order by 排序列表【asc|desc

       

    #1、按单个字段排序

    SELECT * FROM employees ORDER BY salary DESC;

    #2、添加筛选条件再排序

       

    #案例:查询部门编号>=90的员工信息,并按员工编号降序

     

    SELECT *
    
    FROM employees
    
    WHERE department_id>=90
    
    ORDER BY employee_id DESC;

    #3、按表达式排序

    #案例:查询员工信息 按年薪降序

    SELECT *,salary*12*(1+IFNULL(commission_pct,0))
    
    FROM employees
    
    ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;

    #4、按别名排序

    #案例:查询员工信息 按年薪升序

       

    SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪

    FROM employees

    ORDER BY 年薪 ASC;

       

    #5、按函数排序

    #案例:查询员工名,并且按名字的长度降序

       

    SELECT LENGTH(last_name),last_name
    
    FROM employees
    
    ORDER BY LENGTH(last_name) DESC;

    #6、按多个字段排序

       

    #案例:查询员工信息,要求先按工资降序,再按employee_id升序

    SELECT *
    
    FROM employees
    
    ORDER BY salary DESC,employee_id ASC;

      

  • 相关阅读:
    获取代理服务器ip列表的方法
    司机奖励新政策:失去的奖励还能再回来!
    成都Uber优步司机奖励政策(2月24日)
    北京Uber优步司机奖励政策(2月24日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(2月24日)
    成都Uber优步司机奖励政策(2月23日)
    北京Uber优步司机奖励政策(2月23日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(2月23日)
    Android Studio 模拟器启动问题——黑屏 死机 解决方法
    MYSQL使用mysqldump导出某个表的部分数据
  • 原文地址:https://www.cnblogs.com/yuknight/p/12744617.html
Copyright © 2011-2022 走看看