DQL语言

DQL(Data Query launage)语言

  加*查询所有字段

  • 基础查询
#查询单个字段:
    select 查询列表 from 表名;

#查询列表:表中字段,常量值,表达式,函数(查看函数返回值)
#查询结果是一个虚拟表格

#查询多个字段:
    select 列名,列名 .... from 表名;

#起别名
    select 查询列表 as 别名 from 表名;
    select 查询列表 别名 from 表名;(select last_name 姓 from student);

#去重:
    select DISTINCT 查询列表 as 别名 from 表名;

 

  • 条件查询
    • 语法:
      select 查询列表
      from 表名
      where 筛选条件
      
    • 分类
      1. 按条件表达式筛选:条件运算符:> < = != <> >= <=
      2. 按逻辑表达式筛选
      3. 模糊查询
        • like
          /*
              一般与通配符搭配使用
              通配符:%任意多个字符
                         _一个字符
              使用转义\打印字母
              使用escape使某个字符为转义符
          */
          
          between and
          #包含临界值  
            
          in
          /*
              判断某字段的值是否属于in 列表的某一项
              in列表的值类型必须一致或兼容
          */
          
          is null | is not null
  • 排序查询
    • select 查询列表
      from 表名
      【where 筛选条件】
      order by 排序列表 【asc|desc
      #默认升序
      #排序列表支持别名
      #支持单个字段,多个字段,表达式,函数,别名
  • 常见函数:select 函数名(实参列表)
    1. 字符函数
      1. length:获取参数值字节个数
      2. concat:拼接字符串
      3. upper/lower:大小写
      4. substr,substring:从指定索引处截取后面所有字符/截取指定长度字符
      5. instr:返回子串第一次出现的位置
      6. trim:去除前后选取的字符
      7. lpad/rpad:用指定的字符实现左/右填充指定长度
    2. 数学函数
      1. ceil:向上取整
      2. floor:向下取整
      3. truncate:截断
    3. 日期函数
      1. now:返回当前系统日期+时间
      2. curdate:返回当前系统日期
      3. curtime:返回当前系统时间
      4. str_to_date:将字符通过指定的格式转换为日期
      5. date_format:将日期转换成字符
    4. 其他函数
      1. 使用1
        case 要判断的字段或表达式 
        when 常量1 then 要显示的值1或语句1;
        when 常量2 then 要显示的值2或语句2;
        ....
        else 要显示的值n或语句n;
        end
  • 分组函数
  • 分组查询
  • 连接查询
    select 查询列表
    from 表1 【连接类型】
    join 表2 
    on 连接条件
    【where 筛选条件】
    【group by】
    【having 筛选条件】
    【order by 筛选条件】
    • 内连接:inner
      • 等值连接
      • 非等值连接
      • 自连接
    • 外连接:从表补充
      • 左外连接:left 【outer】
      • 右外连接:right 【outer】
      • 全外连接:full 【outer】
    • 交叉连接:cross
  • 子查询:出现在其他语句中的select语句,称为子查询或内查询。外部的查询语句,称为主查询或外查询。
    • 按子查询出现的位置:
      • select后:仅支持标量子查询
      • from后: 支持表子查询
      • where或having后标量子查询与列子查询,行子查询
      • exists后
    • 按结果集的行列数不同
      • 标量子查询:结果集只有一行一列 
      • 列子查询:结果集只有一列多行
        • in/not in:等于列表中的任意一个
        • any/some:和子查询返回的某一个值比较
        • all:和子查询返回的所有值比较
      • 行子查询:结果集只有一行多列
      • 表子查询:结果集一般有多行多列
    • 特点
      • 子查询放在小括号类
      • 一般放在条件的右侧
      • 标量子查询一般搭配单行操作符使用
      • 列子查询一般搭配多行操作符使用
  • 分页查询 : 当要显示的数据,一页显示不全,需要分页提交sql请求
    select 查询列表
    from 表
    【join type join 表2
    on 连接条件
    where 筛选条件
    group by 分组字段
    having 分组后筛选
    order by 排序后的字段】
    limit offset, size;
    
    offset 要显示条目的起始索引(从0开始)
    size 要显示的条目个数

     

  • union联合查询
posted @ 2021-04-02 10:17  lzwml  阅读(59)  评论(0)    收藏  举报