diff --git "a/13 \350\224\241\345\230\211\344\271\220/10.19\347\254\224\350\256\260\344\275\234\344\270\232.md" "b/13 \350\224\241\345\230\211\344\271\220/10.19\347\254\224\350\256\260\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..70eed08477a94c8f2e08ad7aaf539033b1acf1bd --- /dev/null +++ "b/13 \350\224\241\345\230\211\344\271\220/10.19\347\254\224\350\256\260\344\275\234\344\270\232.md" @@ -0,0 +1,62 @@ +````mysql +## 课堂作业 + +sql 12题练习: + +```sql +-- 完成以下练习题 + select * FROM dept; + select * FROM emp; +-- 1、列出最低薪金大于1500的各种工作。 + +-- 方法一: + select distinct(job) job, MIN(sal) over(partition by job ) from emp where sal>1500; +-- 方法二: + select job, MAX(sal) from emp where sal>1500 GROUP BY job ; + +-- 2、列出在部门 "销售部" 工作的员工的姓名,假定不知道销售部的部门编号。 + + select ename from emp e left join dept d on e.deptno=d.deptno where dname='销售部'; + +-- 3、列出薪金高于公司平均薪金的所有员工。 + + select * from emp where sal> (select AVG(sal) from emp); + +-- 4、列出与"周八"从事相同工作的所有员工。 + + select * from emp where job=(select job from emp where ename='周八'); + +-- 5、列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。 + + select ename,sal from emp where sal in(select sal from emp where deptno=30); + +-- 6、列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。 + + select ename,sal from emp where sal> (select MAX(sal) from emp where deptno=30); + +-- 7、列出在每个部门工作的员工数量、平均工资、平均服务年限。 + + select dname, COUNT(ename) '员工数量',AVG(sal) '平均工资',AVG(YEAR(hiredate))'平均服务年限'FROM emp e right join dept d on e.deptno=d.deptno GROUP BY dname; + +-- 8、列出所有员工的姓名、部门名称和工资。 + + select ename,dname,sal from emp e left join dept d on e.deptno=d.deptno; + +-- 9、列出所有部门的详细信息和部门人数。 + + select distinct d.deptno,dname,loc, COUNT(ename) over(partition by dname) '员工数量' from emp e right join dept d on e.deptno=d.deptno ; + +-- 10、列出各种工作的最低工资。 + + select dname, MIN(sal)from emp e right join dept d on e.deptno=d.deptno GROUP BY dname; + +-- 11、列出各个部门的 经理 的最低薪金。 + + select dname,MAX(sal)from emp e right join dept d on e.deptno=d.deptno where job='经理' GROUP BY dname ; + +-- 12、列出所有员工的年工资,按年薪从低到高排序。 + +select ename,sal*12 '年工资' from emp ORDER BY sal*12 asc; +``` +```` +