SQL分类:
1.DQL-基本查询
查询多个字段
select name,workno,age from emp;
--尽量不要写*,可以写所有字段,不然会影响效率
select * from emp;
设置别名
注意:设置别名可以不用as关键字
select address (as) emp_address from emp;
去除重复记录
select distinct name from emp;
2.DQL-条件查询
select name from emp where salary = 10000;
select * from emp where age < 20;
--查询没有身份证号的员工
select * from emp where idcard is NULL;
--查询有身份证号的员工
select * from emp where idcard is not NULL;
--查询年龄在15岁(包含)到20岁(包含)之间的员工信息
select *from emp where age = 15 and age <= 20;
select * from emp where age between 15 and 20;
注意:用between…and得按照从小到大,不然是错误的
--查询年龄等于18或20或40岁的员工信息
select *from emp where age in(18,20,40);
--查询姓名为两个字的员工信息
select * from emp where name like '_ _';
--查询身份证号最后一位是X的员工信息
select *from emp where idcard like '%X';
3.DQL-聚合函数
--统计该企业员工数量
select count(*) from emp;
select count(id) from emp;
--统计该企业员工的平均年龄
select avg(age) from emp;
--统计该企业员工的最大年龄
select max(age) from emp;
--统计该企业员工的最小年龄
select min(age) from emp;
--统计西安地区员工的年龄之和
select sum(age) from emp where address = '西安';
4.DQL-分组查询
--根据性别分组,统计男性员工和女性员工的数量
select gender,count(*) from emp group by gender;
--根据性别分组,统计男性员工和女性员工的平均年龄
select gender,avg(age) from emp group by gender;
--查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select address,count(*) from emp where age < 45 group by address having count(*) >= 3;
5.DQL-排序查询
排序方式:
ASC:升序(默认)
DESC: 降序
--根据年龄对公司的员工进行升序排序
select *from emp order by age(asc);
--根据入职时间,对员工进行降序排序
select * from emp order by date desc;
--根据年龄对公司的员工进行升序排序,年龄相同,再按照入职时间进行降序排序
--注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序
select * from emp order by age ,date desc
6.DQL-分页查询
--查询第1页员工数据,每页展示10条记录
select * from emp limit 0,10;
--查询第2页员工数据,每页展示10条数据
select * from emp limit 10,10;
7.DQL-执行顺序
8.DQL-实战
1.select *from emp where age in(20,21,22,23);
2.select *from emp where gender = '男' and age between 20 and 40 and name like '_ _ _';
3.select gender,count(*) from emp where age < 60 group by gender;
4.select name,age from emp where age <= 35 order by age asc,date desc;
5.select * from emp where gender = '男' and age between 20 and 40 order by age asc,date asc limit 5 ;