web前端day01

练习:查询出工资在8000以上的男员工的姓名,工资,生日,结果要求按照工资降序排列。

 select ename,salary,birthday from emp

 where salary>8000 and sex=1

 order by salary desc;

1.简单查询——分页查询

 查询的结果中有太多的数据,一次显示不完可以做成分页显示

 需要两个已知的条件:当前的页码、每页的数据量

每页开始查询的值=(当前的页码-1)*每页的数据量

 select * from emp  limit 开始查询的值, 每页的数据量;

 假设每页显示5条数据,查询出前4页

 第1页:select * from emp limit 0,5;

 第2页:select * from emp limit 5,5;

 第3页:select * from emp limit 10,5;

 第4页:select * from emp limit 15,5;

注意事项:开始查询的值和每页的数据量必须是数值型,不能加引号。

 练习:查询出工资在8000以上,工资最高的前3个员工

 select * from emp

 where salary>8000

 order by salary desc

 limit 0,3;

2.复杂查询

 (1)聚合查询/分组查询

  示例:查询出所有员工的数量

  select count(*) from emp;

  练习:使用员工的编号列查询数量

  select count(eid) from emp;  #推荐使用主键列

  练习:使用所属部门编号列查询数量

  select count(deptId) from emp;

函数:是一个功能体,需要提供若干数据,返回结果

聚合函数

count()/sum()/avg()/max()/min()

 数量   求和  平均   最大  最小

 练习:查询出所有男员工的工资总和

 select sum(salary) from emp where sex=1;

 练习:查询出10号部门的平均工资

 select avg(salary) from emp where deptId=10;

 练习:查询出年龄最小的员工的生日

 select max(birthday) from emp;

 练习:查询出10号部门的最低工资

 select min(salary) from emp where deptId=10;

分组查询通常只是查询聚合函数和分组条件

 示例:查询出男女员工的数量,平均工资各是多少

 select count(eid),avg(salary),sex from emp group by sex;

 练习:查询出各部门的工资总和,最高工资,最低工资

 select sum(salary),max(salary),min(salary),deptId from emp group by deptId;

year()  获取日期中的年份

 示例:获取2021-11-4中的年份

 select  year('2021-11-4');

 练习:查询出1993年出生的员工有哪些

 select * from emp where year(birthday)=1993;

 练习:查询出所有员工出生的年份

 select year(birthday) from emp;

 (2)子查询

是多个SQL命令的组合,将一个命令的结果作为另一个命令的条件

  示例:查询出工资最高的员工

   步骤1:查询出工资的最大值 —— 50000

   select max(salary) from emp;

   步骤2:通过最大值查询对应的员工

   select * from emp where salary=50000;

   综合:

   select * from emp where salary=(select max(salary) from emp);

  练习:查询出工资比king高的员工有哪些

   步骤1:查询出king的工资 —— 10000

   select salary from emp where ename='king';

   步骤2:查询出工资高于10000的员工

   select * from emp where salary>10000;

   综合:

   select * from emp where salary>(select salary from emp where ename='king');

  练习:查询出和tom同一年出生的员工有哪些

上一篇:mysql 错题集


下一篇:Day04