200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > MySQL数据库(练习一: 提示:emp员工表(empno员工号/ename员工姓名/job工作/mgr上级

MySQL数据库(练习一: 提示:emp员工表(empno员工号/ename员工姓名/job工作/mgr上级

时间:2023-01-29 22:58:16

相关推荐

MySQL数据库(练习一: 提示:emp员工表(empno员工号/ename员工姓名/job工作/mgr上级

练习一:

提示:

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表中查询出部门编号为10或20的记录(要求使用IN关键字)

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

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

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

练习二:

1.列出至少有一个员工的所有部门。

2.列出薪金比“SMITH”多的所有员工。

3.列出所有员工的姓名及其直接上级的姓名。

4.列出受雇日期早于其直接上级的所有员工。

5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

6.列出所有“CLERK”(办事员)的姓名及其部门名称。

7.列出最低薪金大于1500的各种工作。

8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

9.列出薪金高于公司平均薪金的所有员工。

10.列出与“SCOTT”从事相同工作的所有员工。

12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

13.列出在每个部门工作的员工数量、平均工资和平均服务期限。

14.列出所有员工的姓名、部门名称和工资。

15.列出所有部门的详细信息和部门人数。

16.列出各种工作的最低工资。

17.列出薪金最低的MANAGER的基本信息。

18.列出所有员工的年工资,按年薪从低到高排序。

create table dept(#部门表auto_incrementdeptno int primary key auto_increment,#部门编号dname varchar(20),#部门名称locvarchar(20) #地点);insert into dept values(null,'Android部门','中国台湾');insert into dept values(null,'Java部门','日本市');insert into dept values(null,'HTML部门','北京市');insert into dept values(null,'python部门','旧金山市');select*from deptcreate table emp(#员工表empno varchar(20) primary key,#员工号ename varchar(20),#员工姓名job varchar(20),#工作mgr varchar(20),#上级编号hiredate datetime,#受雇日期sal double,#薪金comm varchar(20),#佣金deptno int, #所属部门编号FOREIGN KEY(deptno) REFERENCES dept(deptno),FOREIGN KEY(mgr) REFERENCES manager(mgr));#员工号 姓名 工作 上级编号 受雇时间 薪金 佣金 所属部门编号insert into emp values('A1101','张三','保安','S1101','-12-22 16:53:25',3100,300,1);insert into emp values('A1102','李四','保安','S1101','-12-22 18:53:25',3100,300,1);insert into emp values('A1103','王五','Java工程师','S1102','-02-22 16:53:25',3100,300,2);insert into emp values('A1104','赵六','前端开发','S1102','-08-22 16:53:25',3100,300,2);insert into emp values('A1105','刘能','python开发','S1102','-02-22 16:53:25',3100,300,2);insert into emp values('A1106','赵四','保洁','S1101','-10-22 16:53:25',3100,300,1);insert into emp values('A1107','宋丹丹','项目经理','S1103','-12-22 16:53:25',60000,30000,3);insert into emp values('A1108','赵本山','董事长','S1103','-12-22 16:53:25',820000,503000,3);insert into emp values('A1109','张海比','CEO','S1103','-12-22 16:53:25',355500,9000,3);insert into emp values('A1110','高露洁','CFO','S1103','-12-22 16:53:25',280000,33300,3);insert into emp values('A1111','大幂幂','CTO','S1103','-12-22 16:53:25',310000,13300,3);insert into emp values('A1112','大幂','CTO','S1103','-12-22 16:53:25',100,10,3);insert into emp values('A1113','幂','CTO','S1103','-12-22 16:53:25',100,null,3);insert into emp values('A1114','BAC','C','S1103','-12-22 16:53:25',100,null,3);insert into emp values('A1115','BACc','C','S1103','-12-22 16:53:25',100,'abc',3);select*from emp -- select*from emp where (sal+ifnull(comm,0))>99drop table managercreate table manager( mgr varchar(20) primary key,#上级编号mname varchar(10), #上级名字mhiredate datetime #受雇日期 );insert into manager values('S1101','吴佩孚','-10-22 19:33:12');insert into manager values('S1102','孙传芳','-03-22 19:33:12');insert into manager values('S1103','张作霖','-04-22 19:33:12');select*from manager-- 1、在emp表中查询出所有记录的姓名、部门编号、薪水,并且列名要显示为中文。-- select e.ename as 姓名,e.deptno as 部门编号,e.sal as 薪水 from emp eselect e.ename as 姓名,e.deptno as 部门编号,e.sal+m as 薪水 from emp e-- 2、在emp表中查询出薪水大于1500的记录,并且按照薪水的降序排列。 select*from emp e where (e.sal+m)>1500 ORDER BY (e.sal+m)-- 3、在emp表中查询出comm字段为空值的记录。select * from emp where comm is null-- 4、查询出emp表中含有几个部门的记录。(用DISTINCT去除重复记录)select DISTINCT deptno from emp -- 5、在emp表中查询出部门编号为1或3的记录(要求使用IN关键字)select*from emp where deptno=1 or deptno=3select*from emp where deptno in(1,3)-- 6、在emp表中查询出姓名的第二个字母为A的记录。select*from emp where ename like '_A%'-- 7、查询出emp表中总共有多少条记录。select count(*)from emp -- 8、查询emp表中出每个部门的部门代码、薪水之和、平均薪水。select DISTINCT e.deptno as部门代码,sum(e.sal+m)as薪水之和,avg((e.sal+m))as平均薪水 from emp e GROUP BY e.deptno -- 1.列出至少有一个员工的所有部门。 select dname from dept where deptno in(select distinct deptno from emp)-- 2.列出薪金比“宋丹丹”多的所有员工。 select*from emp where sal+comm>(select sal+comm from emp where ename='宋丹丹' )-- 3.列出所有员工的姓名及其直接上级的姓名。 select e.ename as 员工姓名,m.mname as 上级姓名 from emp e, manager m where m.mgr=e.mgr-- 4.列出受雇日期早于其直接上级的所有员工。 SELECT *from emp e,manager m where e.hiredate> m.mhiredate and m.mgr=e.mgr-- 5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。 select d.dname,e.* from dept d left join emp e on d.deptno=e.deptno -- 6.列出所有“CLERK”(办事员)|保安|的姓名及其部门名称。 select e.ename,d.dname from emp e,dept d where d.deptno=e.deptno and e.job='保安'-- 7.列出最低薪金大于1500的各种工作。 select job from emp where sal>1500 -- 8.列出在部门“SALES”(销售部)CTO工作的员工的姓名,假定不知道销售部的部门编号。 select e.ename,d.dname from emp e,dept d where d.deptno=e.deptno and e.job='CTO'-- 9.列出薪金高于公司平均薪金的所有员工。 select*from emp where (sal+comm)>(select avg(sal+comm) from emp )-- 10.列出与“SCOTT”从事相同工作的所有员工。 select*from emp where job='保安'-- 12.列出薪金高于在部门3工作的所有员工的薪金的员工姓名和薪金。 select ename,sal+comm from emp where sal+comm> (select sum(sal+comm) from emp where deptno=2 )-- 13.列出在每个部门工作的员工数量、平均工资和平均服务期限。select count(*),avg(sal+comm),avg(hiredate) from emp e,dept d where e.deptno=d.deptno GROUP BY e.deptno-- 14.列出所有员工的姓名、部门名称和工资。 select e.ename,d.dname,e.sal+comm from emp e,dept d where e.deptno=d.deptno-- 15.列出所有部门的详细信息和部门人数。 select count(e.deptno),d.* from dept d,emp e where e.deptno=e.deptno group by d.deptno#select dept.*,count(emp.deptno) 部门人数 from emp right join dept on emp.deptno = dept.deptno group by dept.deptno-- 16.列出各种工作的最低工资。 select min(sal+comm),job from emp group by job-- 17.列出薪金最低的MANAGER CTO的基本信息。 select * from emp where sal = (select min(sal) from emp where job='CTO')-- 18.列出所有员工的年工资,按年薪从低到高排序。select sal from emp ORDER BY sal desc

MySQL数据库(练习一: 提示:emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno所属部门编号) de)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。