DQL语句

DQL语句

DQL数据库查询语言

image-20230706203638034

查询关键字:SELECT

image-20230706203916144

DQL基本查询

image-20230706210629396

  1. 查询指定字段 name ,workno ,gae返回
select name,workno ,age from emp;
  1. 查询所有字段并且返回

    select *from emp;
    

    或者

    select id, workno, name, gender, age, idcard, workaddress, entrydate from emp;
    

    建议不要写✳号进行查询

    1. 查询所有员工的工作地址,起别名
    select workaddress as '工作地址' from emp;
    

    as可以省略

select workaddress '工作地址' from emp;

  1. 查询公司员工的上班地址(不要重复)

    select distinct workaddress '工作地址' from emp;
    

    DQL条件查询

可以使用比较运算符和逻辑运算符

image-20230710213219565

1. 查询年龄等于88的员工

select *from emp where age=88;

2. 查询年龄小于20岁的员工

select *from emp where age<20;

3.查询年龄小于20岁的员工

select *from emp where age<=20;
  1. 查询没有身份证号的员工
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';

聚合函数

将一列数据作为一个整体,进行纵向计算.

image-20230713213447870
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='西安';

分组查询

image-20230714212738589

image-20230714213529160

分组查询
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;

排序查询

支持多字段排序.

image-20230801100537715

排序查询
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;

分页查询

image-20230801101838390

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案例练习

image-20230801102013515

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语句的执行顺序

image-20230802103725616

查询年龄大于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..

DQL小结

image-20230802104743655

posted @ 2023-07-10 21:53  harper886  阅读(53)  评论(0编辑  收藏  举报