语法
SELECT 字段列表
FROM 表名列表
WHERE 条件列表
GROUP BY 分组字段列表
HAVING 分组后条件列表
ORDER BY 排序字段列表
LIMIT 分页参数
基本查询
1.查询多个字段
SELECT 字段1,字段2,...FROM 表名;
SELECT * FROM 表名;、
2.设置别名
SELECT 字段1[AS 别名1],字段2[AS 别名2],... FROM 表名;
3.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
条件查询
1.语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
2.条件
聚合函数
1.一列数据作为一个整体,进行纵向计算
2.常见的聚合函数
3.语法 : SELECT 聚合函数(字段列表)FROM 表名
分组查询
1.语法:SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
2.where 和having的区别
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,having是分组后
判断条件不同:where不能对聚合函数进行判断,having可以
执行顺序:where>聚合函数>having
排序查询(ORDER BY)
1.语法:SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
2.排序方式: ASC 升序 DESC 降序
分页查询(LIMIT)
1.语法:SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
-- 条件查询
-- 1.查询年龄等88的员工
select * from emp where age = 80;
-- 2.查询年龄小于20的员工信息
select * from emp where age < 20;
-- 3.查询年龄小于等于20的员工信息
select * from emp where age <= 20;
-- 4.查询没有身份证信息的员工信息
select * from emp where idcard is null;
-- 5.查询有身份证号的员工信息
select * from emp where idcard is not null ;
-- 6.查询年龄不等于88的员工信息
select * from emp where age <> 88;
-- 7.查询年龄在15岁到20岁的员工信息
select * from emp where age between 15 and 20;
-- 8.查询性别是女且年龄小于25岁的员工信息
select * from emp where gender = '女' and age < 25;
-- 9.查询年龄等于18或20或40的员工信息
select * from emp where age = 18 or age = 20 or age = 40;
select * from emp where age in (18,20,40);
-- 10.查询姓名为两个字的员工信息
select * from emp where name like '__';
-- 11.查询身份证号最后一位是x的员工信息
select * from emp where idcard like '%X';
-- 聚合函数
-- 1.统计该企业员工数量
select count(*) from emp;
-- 2.统计该企业员工的平均年龄
select avg(age) from emp;
-- 3.统计最大年龄
select max(age) from emp;
-- 4.统计最小年年龄
select min(age) from emp;
-- 5.统计上海地区的年龄之和
select sum(age) from emp where workadress = '上海';
-- 分组函数
-- 1.根据性别分组,统计男性员工和女性员工的数量
select gender, count(*) from emp group by gender;
-- 2.根据性别分组,统计男性员工和女性员工的平均年龄
select gender, avg(age) from emp group by gender;
-- 3.查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select workadress, count(*) from emp where age < 45 group by workadress having count(*)>= 3;
-- 排序查询
-- 1.根据年龄对员工进行升序排序
select * from emp order by age asc ;
-- 2.根据入职时间,进行降序排序
select * from emp order by entrydate desc ;
-- 3.根据年龄对员工进行升序排序 年龄相同根据入职时间,进行排序
select * from emp order by age asc ,entrydate asc ;
-- 分页查询
-- 1.查询第一页员工记录,每页展示10条数据
select * from emp limit 0,10;
-- 2.查询第二页员工记录,每页展示10条数据
select * from emp limit 10,10;