暑期自学 Day 10 | 数据库 (三)- DQL

DQL

排序查询

  • ... order by keyword ASC/DESC
    • 如果升/降序不写,默认升序

聚合函数

  • 将一列作为一个整体,做纵向计算
  • 会排除 null 值
    • 解决:使用 IFNULL() 函数或选择非空列
  • count 计算个数
    • SELECT COUNT(english) FROM stuSELECT COUNT(IFNULL(english, 0)) FROM stu 空设为0
  • max, min, sum, avg 使用方法同 COUNT

分组查询

  • group by 分组字段
  • 根据分组字段来查询数据,如根据性别分组,那么男女就被分为两组。
  • 两种限定条件的语法:where ...having ...
    • 区别:
      • where 在分组前限定,不满足条件不参与分组;having 在分组后限定,如果不满足分组不会被查询
      • where 后不可使用聚合函数判断,having 则可以。

分页查询

  • limit 数据开始索引, 查询条数
    • select * from stu limit 0, 3; 从 0 开始查,查三条记录

基础查询

  • SELECT col1, col2, ... colN FROM t_table;
  • 去除重复数据:使用 DISTINCT 关键字
    • SELECT DISTINCT col1 FROM t_table;
  • 查询某两列之和:
    • SELECT name, (math + english) FROM t_table
    • 如果有一列数据是 null,运算结果为 null
  • 为某一列起别名: 使用 AS 关键字
    • SELECT name, (math + english) AS total FROM t_table

条件查询

  • where
  • 运算符 >, <, =, >=, !=, <>, and/&&, or/||, not/|
  • BETWEEN … AND
    • ... BETWEEN 20 AND 30;
  • IN
    • ... WHERE age IN (22, 18, 25);
  • IS / IS NOT: 判断是否是 NULL
    • ... IS NULL

模糊查询

  • LIKE
    • _ 下划线:单个任意字符
    • % 百分号:多个任意字符
    • 查询含有某个字符的数据:
      • ... WHERE name LIKE '%马%'; // 查询含有马的名字
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!