DQL知识--- limit子句(方言) 五、limit子句(方言)---其他数据如果想实现limit的对应功能,必须使用多表查询(子查询)来实现。 功能:LIMIT用来限定查询结果的起始行,以及总行数。主要用于分页查询场合。 (1)例如:查询起始行为第5行,一共查询3行记录 SELECT * FROM emp LIMIT 4, 3; --> 其中4表示从第5行开始,其中3表示一共查询3行。即第5、6、7行记录。 DQL知识--- limit子句(方言) (2)例如:查询起始行为第1行,一共查询5行记录 select * from emp limit 0, 5; (3)例如:查询起始行为第13行,一共查询5行记录 select * from emp limit 12, 5; 注意:因为表中只剩下两条记录,所以只查到两条记录。 DQL知识--- limit子句(方言) 适用场合:分页查询 问题描述:如果一页记录为10条,希望查看第3页记录应该怎么查呢? 实现: select * from emp limit 20, 10; 分析: (1)第一页记录起始行为0,一共查询10行,即0~9; (2)第二页记录起始行为10,一共查询10行,即10~19 ; (3)第三页记录起始行为20,一共查询10行,即20~29 ; 公式: limit 数字1,数字2 数字1公式:(当前页-1) * 每页记录数 数字2公式:每页记录数 举例:每页8条记录,查询第17页记录? limit (17-1)*8,8 单表查询练习: 准备知识: SQLyog软件的安装与使用。 该软件能够实现创建数据库、创建数据表、插入表记录等操作。但这些操作都是在可视化界面下通过鼠标操作来完成的,其本质也是转换成SQL语句。 直接使用该软件,不利于我们对基本SQL语法的学习。本节只是使用该软件来演示查询的结果。 注意该软件保存的文件扩展名为.sql。该文件中可以包含多个select查询语句 。 单表查询练习: 在屏幕中可以输入多条语句,选中需要执行的,单击F9即可。 在做具体操作之前,首先切换至当前数据表所在的数据库。 单表查询练习: 1. 查询出部门编号为30的所有员工 SELECT * FROM emp WHERE deptno=30; 2. 查询出所有销售员的姓名、编号和部门编号。 SELECT ename,empno,deptno FROM emp WHERE job='salesman'; 3. 找出奖金高于工资的员工。 SELECT * FROM emp WHERE comm>sal; 4. 找出奖金高于工资30%的员工。 SELECT * FROM emp WHERE comm > sal*0.3; 单表查询练习: 5.找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。 SELECT * FROM emp WHERE (deptno=10 AND job='manager')OR(deptno=20 AND job='salesman'); 6. 找出部门编号为10中所有经理,部门编号为20中所有销售员,还有即不是经理又不是销售员但其工资大或等于20000的所有员工详细资料。 SELECT * FROM emp WHERE (deptno=10 AND job='manager')OR(deptno=20 AND job='salesman') OR(job NOT IN('manager','salesman')AND sal>=20000); 单表查询练习: 7. 无奖金或奖金低于1000的员工。 SELECT * FROM emp WHERE comm IS NULL OR comm<1000; 8. 查询名字由8个字符组成的员工。 SELECT * FROM emp WHERE ename LIKE '________'; 9.查询2000年入职的员工。 SELECT * FROM emp WHERE hiredate LIKE '2000%'; 10. 查询所有员工详细信息,用编号升序排序 SELECT * FROM emp ORDER BY empno ASC; 单表查询练习: 11.查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序 SELECT * FROM emp ORDER BY sal DESC,hiredate ASC; 12.查询每个(提示:分组信号词---“每个”、“各个”)部门的平均工资 SELECT deptno,AVG(sal) AS pingjungz FROM emp GROUP BY deptno; 13.查询每个部门的雇员数量。 SELECT d