文章目录
一、语法
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排列字段列表
LIMIT
分页参数
二、基本查询
1.查询多个字段
SELECT 字段1,字段2,字段3......FROM 表名;
SELECT *FROM 表名;
2.设置别名
SELECT 字段1[AS 别名1],字段2[AS 别名2].....FROM 表名;
3.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
例题:
首先我们先准备好数据
一:在蒙德员工表
中查询指定字段 姓名
年龄
在
蒙德员工表
中查询指定字段姓名
年龄
代码如下
SELECT 姓名,年龄 FROM 蒙德员工表;
二:在蒙德员工表
中查询所有字段的信息
在
蒙德员工表
中查询所有字段的信息
代码如下:
SELECT * FROM 蒙德员工表;
三:在蒙德员工表
中查询ID
起别名 编号
在
蒙德员工表
中查询ID
起别名编号
代码如下
SELECT ID AS '编号' FROM 蒙德员工表;
注意: AS :可省略
SELECT ID '编号' FROM 蒙德员工表;
四:在蒙德员工表
中查询年龄
不可重复
在
蒙德员工表
中查询年龄
不可重复
代码如下:
SELECT DISTINCT 年龄 FROM 蒙德员工表;
三、条件查询(WHERE)
代码如下:
SELECT 字段列表 FROM 表名 WHERE 条件列表
条件
例题:
一:查询年龄
等于20
的员工
代码入下:
SELECT * FROM 蒙德员工表 WHERE 年龄=20;
二.查询没有ID号的人
代码如下
SELECT * FROM 蒙德员工表 WHERE ID IS NULL;
因为没有没ID号的人,所以查询出来没有行
四、聚合函数(count,max,min,avg,sum)
1.介绍
将一列数据作为一个整体,进行纵向运算。
2.常见的聚合函数
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
3.语法
SELECT 聚合函数(字段列表) FROM 表名;
4.注意
聚合函数不计算NULL值
例
一:统计员工的数量
代码如下
SELECT count(*) from 蒙德员工表;
二:统计员工的平均年龄
SELECT avg(年龄) from 蒙德员工表;
三:统计最大年龄的员工
代码如下
SELECT max(年龄) from 蒙德员工表;
四:统计最小年龄的员工
代码如下
SELECT min(年龄) from 蒙德员工表;
五:统计名字为两个字的员工的年龄之和
代码如下
SELECT sum(年龄) from 蒙德员工表 where 姓名 like '__';
五、分组查询(GROUP BY)
1.语法
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名[HAVING 分组后过滤条件];
2.where 和 having 区别
1.
执行时间不
:where是分组之前进行过滤,不满足where条件,不参与分组;而 having 是分组之后对结果进行筛选。
2.判断条件不同
:where 不能对聚合函数进行判断,二having可以。
我们把表修改如下:
例:
一:根据员工性别统计男性员工和女性员工的数量
代码如下:
SELECT COUNT(*)FROM 蒙德员工表 GROUP BY 性别;
为了让显示出来的更清楚我们更改一下代码
SELECT 性别,COUNT(*)FROM 蒙德员工表 GROUP BY 性别;
二:根据员工性别分组,统计男性和女性的平均年龄
代码如下
SELECT 性别,avg(年龄)FROM 蒙德员工表 GROUP BY 性别;
三:查询年龄等于20,并且根据工作地址分组,获取获得员工数量大于等于3的工作地址
代码如下
SELECT 工作地址,count(*) from 蒙德员工表 where 年龄 =20 group by 工作地址 having count(*)>=3;
注意
执行顺序:where>聚合函数>having
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义
六、排序查询(ORDER BY)
1.语法
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
2.排序方式
ASC
:升序(默认值)
DESC
:降序
3.注意
如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
例
一:根据年龄对公司的人进行升序排序
代码如下:
SELECT *FROM 蒙德员工表 order by 年龄 asc;
二:根据年龄对公司的人进行降序排序
代码如下:
SELECT *FROM 蒙德员工表 order by 年龄 desc;
三:根据年龄对公司的人进行升序排序,如果年龄相同,再按照ID进行降序排序
SELECT *FROM 蒙德员工表 order by 年龄 asc ,ID desc;
七、分页查询(LIMIT)
1.语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引 ,查询记录数;
2.注意
起始索引从0开始,
起始索引=(查询页码-1)*每页显示记录数
。
分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
如果查询的是第一页数据,起始索引可以直接省略,直接简写为 LIMIT 10。
3.例
一:查询第1页员工数据,每页展示10条记录。
SELECT * FROM 蒙德员工表 LIMIT 0,10;
二:一:查询第2页员工数据,每页展示10条记录。
(查询页码-1)*每页显示记录数
SELECT * FROM 蒙德员工表 LIMIT 10,10;