MySQL数据库——数据库的查询(DQL)

Posted 叶不修233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库——数据库的查询(DQL)相关的知识,希望对你有一定的参考价值。

DQL——Data Query Language,数据库查询语言

一、单表查询

1. 展示表结构(即定义的字段类型等)

  • 格式:【DESC 表名;】
  • 举例:DESC students;
  • 结果:如图所示
    在这里插入图片描述

2. 展示表数据

(1)展示全表数据

  • 格式:【SELECT * FROM 表名;】
  • 举例:SELECT * FROM students;
  • 结果:如图所示
    在这里插入图片描述

(2)展示表中指定字段数据

  • 格式:【SELECT 字段1,……,字段n FROM 表名;】
  • 举例:SELECT NAME FROM students;
  • 结果:如图所示
    在这里插入图片描述

(3)展示表中指定字段等于指定值数据

  • 格式:【SELECT * FROM 表名 WHERE 字段=值;】
  • 举例:SELECT * FROM students WHERE Id=2;
  • 结果:如图所示
    在这里插入图片描述

(4)带BETWEEN AND查询

  • 格式:【SELECT * FROM 表名 WHERE 字段 BETWEEN 值1 AND 值n;】——查询结果包含值1和值n
  • 举例:SELECT * FROM students WHERE Id BETWEEN 1 AND 3;
  • 结果:如图所示
    在这里插入图片描述

(5)带IN关键字的查询

  • 格式:【SELECT * FROM 表名 WHERE NAME IN(‘值1’,……,‘值n’);】——查询结果包含值1和值n
  • 举例:SELECT * FROM students WHERE NAME IN(‘张三’,‘李四’);
  • 结果:如图所示
    在这里插入图片描述

(6)带LIKE的字符匹配查询

(6-1)以*为匹配符(匹配结果不限长度)

  • 格式:【SELECT * FROM 表名 WHERE 字段名 LIKE ‘值%’;】——以‘值’开头的模糊查询
  • 举例:SELECT * FROM students WHERE NAME LIKE ‘张%’;
  • 结果:如图所示
    在这里插入图片描述
  • 格式:【SELECT * FROM 表名 WHERE 字段名 LIKE ‘%值’;】——以‘值’结尾的模糊查询(举例及结果略)
  • 格式:【SELECT * FROM 表名 WHERE 字段名 LIKE ‘%值%’;】——包含‘值’的模糊查询(举例及结果略)

(6-2)以_为匹配符(下划线的个数即为匹配长度)

  • 格式:【SELECT * FROM 表名 WHERE 字段名 LIKE ‘值_’;】——以‘值’开头的模糊查询
  • 举例:SELECT * FROM students WHERE NAME LIKE ‘张_’;
  • 结果:如图所示,成功查询到字段【Name】以‘张’开头的数据
    在这里插入图片描述
  • 结果:如图所示,没有查询到字段【Name】以‘张’开头,‘张’后面有2个字符的数据
    在这里插入图片描述

(7)用DISTINCT关键字去除结果中的重复行

  • 格式:【SELECT DISTINCT 字段 FROM 表名;】
  • 举例:SELECT DISTINCT Sex FROM students;
  • 结果:如图所示,展示【Sex】字段的去重后结果
    在这里插入图片描述

(8)用ORDER BY关键字对查询结果排序

(8-1)升序

  • 格式:【SELECT * FROM 表名 ORDER BY 字段 ASC;】——不加ASC也会默认升序
  • 举例:SELECT * FROM students ORDER BY Id ASC;
  • 结果:如图所示
    在这里插入图片描述

(8-2)降序

  • 格式:【SELECT * FROM 表名 ORDER BY 字段 DESC;】
  • 举例:SELECT * FROM students ORDER BY Id DESC;
  • 结果:如图所示
    在这里插入图片描述

(9)用GROUP BY关键字分组查询

(9-1)通过字段分组

  • 格式:【SELECT * FROM 表名 GROUP BY 字段;】
  • 举例:SELECT * FROM students GROUP BY Sex;
  • 结果:如图所示,分组只会展示部分数据,所以分组一般会与汇总一起使用,即分类汇总
    在这里插入图片描述

(9-2)通过字段分组,将分组数据汇总到括号内字段

  • 格式:【SELECT *,GROUP_CONCAT(需汇总字段) FROM 表名 GROUP BY 需分组字段;】
  • 举例:SELECT *,GROUP_CONCAT(NAME) FROM students GROUP BY Sex;
  • 结果:如图所示,通过【Sex】字段分类,将分类结果汇总到【GROUP_CONCAT(NAME)】中

在这里插入图片描述

(10)用LIMIT限制查询结果的数量

(10-1)limit【n】

  • 格式:【SELECT * FROM 表名 WHERE 条件 LIMIT 数字;】
  • 举例:SELECT * FROM students WHERE Age=0 LIMIT 2;
  • 结果:如图所示
    在这里插入图片描述

(10-2)limit【m,n】

  • 格式:【SELECT * FROM 表名 WHERE 条件 LIMIT 数字1,数字n】
  • 举例:SELECT * FROM students WHERE Age=0 LIMIT 0,3
  • 结果:如图所示,展示了从第0条开始的前3条数据
  • 注:程序员计数规则,从0开始。即前三个数字是0,1,2而不是1,2,3
    在这里插入图片描述

(11)带COUNT关键字的计数查询

  • 格式:【SELECT COUNT(*) FROM 表名;】
  • 举例:SELECT COUNT(*) FROM students;
  • 结果:如图所示,表【students】中一共有3条数据
  • 注:count括号内为*时,计数结果包括null行,括号内为具体字段时,计数结果不包含null行
    在这里插入图片描述

(12)求和,最大值,最小值,平均值查询

  • 格式:【sum()、max()、min()、avg()】
  • 举例:SELECT SUM(Id),MAX(Id),MIN(Id),AVG(Id) FROM students;
  • 结果:如图所示表【students】中【Id】字段的和,最大值,最小值,平均值被查询出来
    在这里插入图片描述

……
待续
……

以上是关于MySQL数据库——数据库的查询(DQL)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL之数据查询语言(DQL)

MySQL的DQL语言(查)

MySql学习笔记之DQL常用查询

MySQL数据库——数据库的查询(DQL)

MySQL数据库之DQL(数据查询语言)

Mysql--DQL数据查询语言标准语法