DQL语句
DQL语句
DQL数据库查询语言
查询关键字:SELECT
DQL基本查询
- 查询指定字段 name ,workno ,gae返回
select name,workno ,age from emp;
-
查询所有字段并且返回
select *from emp;
或者
select id, workno, name, gender, age, idcard, workaddress, entrydate from emp;
建议不要写✳号进行查询
- 查询所有员工的工作地址,起别名
select workaddress as '工作地址' from emp;
as可以省略
select workaddress '工作地址' from emp;
-
查询公司员工的上班地址(不要重复)
select distinct workaddress '工作地址' from emp;
DQL条件查询
可以使用比较运算符和逻辑运算符
1. 查询年龄等于88的员工
select *from emp where age=88;
2. 查询年龄小于20岁的员工
select *from emp where age<20;
3.查询年龄小于20岁的员工
select *from emp where age<=20;
- 查询没有身份证号的员工
select *from emp where idcard is null;
5.查询有身份证的员工
select *from emp where idcard is not null;
6.查询年龄不等于88的员工
select *from emp where age!=88;
select *from emp where age<>88;
7.查询年龄在15岁〔包含)到20岁〔包含)之间的员工信息
select *from emp where age between 15 and 20;
select *from emp where age >=15 and age<=20;
select *from emp where age >=15 && age<=20;
8,查询性别为女且年龄小于25岁的员工信息
select *from emp where age<25 and gender='女';
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';
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 workaddress='西安';
分组查询
分组查询
1,根据性别分组,统计男性员工和女性员工的数量
select gender,count(*)from emp group by gender;
2,根据性别分组,统计男性员工和女性员工的平均年龄
select gender,avg(age) from emp group by gender;
3.查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select workaddress, count(*) from emp where age<45 group by workaddress 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 desc;
分页查询
1.查询第1页员工数据,每页展示10条记录
select * from emp limit 0,10;
select * from emp limit 10;
2.查询第2页员工数据,每页展示10条记录
〔页码-1)*页展示记录数
select * from emp limit 10,10;
DQL案例练习
1.查询年龄为20,21,22,23岁的员工信息。
select * from emp where gender='女' and age in(20,21,22,23);
2.查询性别为男,并且年龄在20-40岁(含)以内的姓名为三个字的员工。
select * from emp where gender='男' and (age between 20 and 40) and name like '___';
3.统计员工表中,年龄小于60岁的,界性员工和女性员工的人数。
select gender ,count(*) from emp where age<60 group by gender;
4.查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。
select name ,age from emp where age<=35 order by age,entrydate desc ;
5.查询性别为男,且年龄在20-40岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序。
select * from emp where gender='男' and age between 20 and 40 order by age,entrydate limit 0,5 ;
DQL语句的执行顺序
查询年龄大于15的员工的姓名、年龄,并根据年龄进行升序排序
select e.name ename ,e.age eage from emp e where e.age>15 order by eage asc;
先执行
from..
where..
select..
order by..
limit..