当前位置: DB社区 > 02-mysql > 阅读正文

DQL — 数据的查询

2020.12.28.   513 次   1574字

1.查询语法:(这个语法不包含关键字,函数)
select
    字段列表
from
    表名列表
where
    条件列表
group by
    分组字段
having
    分组之后的条件
order by
    排序
limit
    分页限定
2.简单查询举例

查询表中所有的数据

select * form 表名;

查询多列字段

select 
        列1,       -- 注释1
        列2...     -- 注释2
from 
        表名;

查询结果去重复:

select distinct 列名称 from 表名称;

结算 多 列的和展示结果(这里有 2 列,且假设把列2 为 Null 替换为 0)

select 列1,列2, 列1+IFNULL(列2,0) from 表名;

给查询结果列起别名( as 可以省略)

select 原列名 as 展示列名 from 表名称;

查询指定条件的一条数据 (假如查询某个列包含某个值)

select * from 表名 where 列 = 值;

查询满足多条件数据:(这里是包含多个字段)

select * from 表名 where 列1=值1 and 列2=值2;

查询满足某一条件数据:(这里是包含其中一个字段)

select * from 表名 where 列1=值1 or 列2=值2;

查询结果升序排列:

select * from 表名 order by 列1,列2...;(默认asc)

查询结果降序:

select * from 表名 order by 列1 desc, 列2desc...;

分组查询(加如分组字段 sex,展示字段1 AVG(math),展示字段2 COUNT(id) )

(分组之后不要写无关字段,展示字段一般为聚合函数)

select 分组字段,展示字段1,展示字段2... from 表名 group by 分组字段;

分组限定(如果分组后,having 条件如果不符合,就不显示此字段)

(这里,假设分组后,其中一组的包含 id 不为Null 的记录数不少于 2,才显示)

( group by 和 having ,均可以使用前面起的自定义的 列别名)

select 分组字段,展示字段 from group by 分组字段 having count(id)>2;
3.条件查询

where 子句后跟条件

常用运算

>大于
<小于
<=小于等于
>=大于等于
=等于
<> 或 !=不等于
between … and在 … 之间
in(集合)在 … 之中
is null是 null
is not null不是 null
and 或 &&
or 或 ||
not 或 !
like模糊运算
_单个字符
%多个任意字符

查询姓马的人,

select * from 表名 where name like '马';

查询第二个字是 ’化‘ 的人

select * from 表名 where name like '_化%';

查询姓名是三个字的人(三个短杠 _ )

select * from 表名 where name like '___';

查询姓名中包含 ‘马’ 字的人

select * from 表名 where name like '%马%';
4.聚合函数

聚合函数是将某一列作为一个整体,然后进行计算

(聚合函数默认会排除 null ,可计算主键,或配合 ifnull 函数)

计算某个列记录条数(如果是 * ,会使用数据最多的列,计算出所有记录的条数)

select count(列名) from 表名;

计算某个列最大的记录

select MAX(列名) from 表名;

计算某个列最小的记录

select MIN(列名) from 表名;

计算列的和

select SUM(列名) from 表名;

计算列的平均值

select AVG(列名) from 表名;
5.分页查询(不同的数据库,实现的方式不一样,这里仅限于 mysql)

语法:limit 开始索引,每页显示条数

(公式:开始的索引 = (当前页码 -1) * 每页显示的条数

查询学生数据表,一次显示3条,第一页

select * from student limit 0,3;

查询学生数据表,一次显示3条,第2页

select * from student limit 3,3;

查询学生数据表,一次显示3条,第3页

select * from student limit 6,3;

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群