MySQL高级查询习题,初学者必看!

MySQL高级查询习题

提示:
emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno所属部门编号)
dept部门表(deptno部门编号/dname部门名称/loc地点)
工资 = 薪金 + 佣金
在Emp 表中完成如下练习:
1、在emp表中查询出所有记录的姓名、部门编号、薪水,并且列名要显示为中文。
2、在emp表中查询出薪水大于1500的记录,并且按照薪水的降序排列。
3、在emp表中查询出comm字段为空值的记录。
4、查询出emp表中含有几个部门的记录。(用DISTINCT去除重复记录)
5、在emp表中查询出部门编号为1或2的记录(要求使用IN关键字)
6、在emp表中查询出姓名的第二个字为博的记录。
7、查询出emp表中总共有多少条记录。
8、查询emp表中出每个部门的部门代码、薪水之和、平均薪水。

创建表

CREATE TABLE dept (deptno int primary key,dname VARCHAR(10),loc VARCHAR(10));
CREATE table emp (
empno int primary key,
ename VARCHAR(10),
job varchar(10),
mgr int,
hiredate varchar(10),
sal int,
comm int,
deptno int);

存储数据

INSERT into dept VALUES(1,'宣传部','连廊');
INSERT into dept VALUES(2,'团总支','系办');
INSERT into dept VALUES(3,'体育部','操场');

INSERT into emp VALUES(1,'朱怀昌','摄影人员',111,'2018/10/10',1000,NULL,1);
INSERT into emp VALUES(2,'张超','编辑人员',111,'2018/10/10',1000,600,1);
INSERT into emp VALUES(3,'赵博林','助理',222,'2018/10/15',1100,600,2);
INSERT into emp VALUES(4,'谭博博','司机',222,'2018/10/15',1100,200,2);
INSERT into emp VALUES(5,'石闯','乒乓球教师',333,'2018/09/10',1200,600,3);
INSERT into emp VALUES(6,'赵博文','羽毛球教师',111,'2018/10/10',1200,700,3);
INSERT into emp VALUES(7,'苏博宇','足球教师',111,'2018/10/10',1200,800,3);

运行结果如下:
在这里插入图片描述在这里插入图片描述

1、在emp表中查询出所有记录的姓名、部门编号、薪水,并且列名要显示为中文。

SELECT ename AS '姓名',deptno AS '部门编号',IFNULL(sal,0)+IFNULL(comm,0) AS '薪水' FROM emp;

在这里插入图片描述

2、在emp表中查询出薪水大于1500的记录,并且按照薪水的降序排列。

SELECT * FROM emp WHERE IFNULL(sal,0)+IFNULL(comm,0)>1500 ORDER BY IFNULL(sal,0)+IFNULL(comm,0) DESC;

在这里插入图片描述

3、在emp表中查询出comm字段为空值的记录。

SELECT * FROM emp WHERE comm IS NULL;

在这里插入图片描述

4、查询出emp表中含有几个部门的记录。(用DISTINCT去除重复记录)

SELECT COUNT(DISTINCT deptno) AS '部门总数' FROM emp;

在这里插入图片描述

5、在emp表中查询出部门编号为1或2的记录(要求使用IN关键字)

SELECT * FROM emp WHERE deptno IN(1,2);

在这里插入图片描述

6、在emp表中查询出姓名的第二个字为博的记录。

SELECT * FROM emp WHERE ename LIKE '_博%';

在这里插入图片描述

7、查询出emp表中总共有多少条记录。

SELECT COUNT(*) FROM emp;

在这里插入图片描述

8、查询emp表中出每个部门的部门代码、薪水之和、平均薪水。

SELECT AVG(sal+IFNULL(comm,0))AS '平均薪水',
SUM(sal+IFNULL(comm,0))AS '薪水之和',
deptno AS '部门编号' FROM emp GROUP BY deptno ;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43928469/article/details/110543149