有员工表emp如下:
有部门表dept表如下:
现做如下查询查询练习:
-- 1.查询员工一年的薪水
SELECT sal*12 FROM emp;
-- 2.查询员工一年的薪水,并且为查询的结果添加别名
SELECT sal*12 AS totals FROM emp;
-- 3.查询月薪大于2800的员工信息
SELECT * FROM emp WHERE sal>2000+800;
-- 4.除法计算
SELECT 20 DIV 3;
SELECT 30 DIV 3 AS result;
-- 5.取余运算
SELECT 20%3 AS result;
SELECT MOD(20,3) AS result;
-- 6.查询部门编号为10的员工信息
SELECT * FROM emp WHERE deptno=10;
-- 7.查询部门编号不为10的员工信息
SELECT * FROM emp WHERE deptno<>10;
SELECT * FROM emp WHERE deptno!=10;
-- 8.查询月薪在2k~3k之间的员工信息
SELECT * FROM emp WHERE sal>2000 AND sal<3000;
-- 9.查询部门编号为10或者20的员工信息
SELECT * FROM emp WHERE deptno=10 OR deptno=20;
-- 10.查询月薪在1k~2k之间的员工信息(BETWEEN AND中前面的数必须小于后面的数,不能反过来否则查询不出结果)
SELECT * FROM emp WHERE sal BETWEEN 1000 AND 2000;
-- 11.查询佣金为空的员工信息
SELECT * FROM emp WHERE comm IS NULL;
-- 12.查询佣金不为空的员工信息
SELECT * FROM emp WHERE comm IS NOT NULL;
-- 13.查询职位是经理(MANAGER)或者职员(CLERK)的员工信息
SELECT * FROM emp WHERE job IN('MANAGER','CLERK');
-- 14.查询职位不是经理(MANAGER)或者职员(CLERK)的员工信息
SELECT * FROM emp WHERE job NOT IN('MANAGER','CLERK');
SELECT * FROM emp WHERE job!='MANAGER' AND job!='CLERK';
SELECT * FROM emp WHERE job<>'MANAGER' AND job<>'CLERK';
-- 15.查询姓名中有字母's'的员工信息(模糊查询:'%'表示任意个字符,'_'表示任意一个字符)
-- 注:MySQL不区分大小写,查询出的记录中也可能有大写的'S'
SELECT * FROM emp WHERE ename LIKE '%s%';
-- 16.查询姓名第二个字母为'd'的员工信息
SELECT * FROM emp WHERE ename LIKE '_d%';
-- 17.查询姓名第三个字母为'n'的员工信息
SELECT * FROM emp WHERE ename LIKE '__n%';
-- 18.查询姓名倒数第二个字母为'e'的员工信息
SELECT * FROM emp WHERE ename LIKE '%e_';
-- 19.查询按照月薪升序排序出来的员工信息(注:默认就是升序ASC)
SELECT * FROM emp ORDER BY sal ASC;
SELECT * FROM emp ORDER BY sal;
-- 20.查询按照月薪降序排序出来的员工信息
SELECT * FROM emp ORDER BY sal DESC;
-- 21.查询员工信息,先按照sal升序排序,如果排到的sal值相同再按照ename降序排序
SELECT * FROM emp ORDER BY sal,ename DESC;
-- 22.合并查询emp表中员工姓名,月薪,职位以及dept表中的信息
-- 注:合并查询的列数必须相同否则报错
SELECT empno,sal,job FROM emp
UNION
SELECT * FROM dept;
-- UNION 重复数据会被过滤掉
CREATE TABLE emp1 AS SELECT * FROM emp; -- 复制一张emp表
SELECT * FROM emp
UNION ALL
SELECT * FROM emp1;
-- UNION ALL 重复数据不会被过滤掉
-- 23.查询按照月薪(sal)降序排序的前五条记录
SELECT * FROM emp ORDER BY sal DESC LIMIT 5;
-- 默认从第一条(0)数据开始
-- 24.查询按照月薪(sal)降序排序的三四五条数据
SELECT * FROM emp ORDER BY sal DESC LIMIT 2,3;
-- 25.按照月薪(sal)降序排序,从第六条数据开始,查询5条记录
SELECT * FROM emp ORDER BY sal DESC LIMIT 5,5;
-- 分页查询思路:
-- pageNo(页数) pageSize=3(一页显示的记录条数:假设一页显示三条记录)
-- 第一页 0,3
-- 第二页 3,3
-- 第三页 6,3
-- 第四页 9,3
-- ...
-- 分页查询的LIMIT限制条件: LIMIT (pageNo-1)*pageSize,pageSize;
关注我的微信公众号,观看更多精彩内容: