java代码-------mysql作业(尚马day23) week5(12)

练习二

建立如图所示的四张表,按照图示数据添加到对应的表中

表一  emp

java代码-------mysql作业(尚马day23) week5(12)_第1张图片

 

表二 dept  

java代码-------mysql作业(尚马day23) week5(12)_第2张图片                

 

表三 salgrade

java代码-------mysql作业(尚马day23) week5(12)_第3张图片              

 

表四 年度利润表

 

                 

习题如下:

1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位

置、部门人数。

-- SELECT
--  d.*,COUNT(e.empno)
-- FROM emp e,dept d
-- WHERE e.deptno=d.deptno GROUP BY e.deptno;
-- SELECT
-- d.*,COUNT(e.empno)
-- FROM emp e LEFT JOIN dept d ON e.deptno=d.deptno
-- GROUP BY e.deptno HAVING COUNT(e.empno)>=2;

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

-- SELECT 
--  e1.*,e2.ename
-- FROM emp e1 LEFT JOIN emp e2 ON e1.mgr=e2.empno;

3. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。

-- SELECT
-- e1.*,e2.ename,d.dname
-- FROM emp e1 LEFT JOIN emp e2 ON e1.mgr=e2.empno 
-- LEFT JOIN dept d ON e1.deptno=d.deptno
-- WHERE e1.hiredate

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

-- SELECT * FROM dept d LEFT JOIN emp e ON d.deptno=e.deptno ORDER BY d.deptno;

5. 列出最低薪金大于15000的各种工作及从事此工作的员工人数。

-- SELECT
--   job,count(*)
-- FROM emp  GROUP BY job HAVING min(sal)>15000 ;

6. 列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。

-- SELECT  * FROM emp WHERE deptno=(SELECT deptno FROM dept WHERE dname='销售部');

7. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导,工资等级。

-- SELECT 
--  e1.*,e2.ename,d.dname,s.GRADE
-- FROM emp AS e1, emp AS e2,dept AS d,salgrade AS s
-- WHERE  e1.mgr=e2.empno AND e1.deptno=d.deptno AND e1.sal BETWEEN s.lowsal AND s.HISAL  ;

-- SELECT 
--  e1.*,e2.ename,d.dname,s.GRADE
-- FROM emp AS e1 
-- LEFT JOIN emp AS e2 ON e1.mgr=e2.empno
-- LEFT JOIN dept AS d ON e1.deptno=d.deptno,salgrade AS s
-- WHERE e1.sal BETWEEN s.lowsal AND s.HISAL AND e1.sal >(SELECT avg(sal) FROM emp) 
-- ORDER BY s.GRADE ;

 

8.列出与庞统从事相同工作的所有员工及部门名称。

-- SELECT 
--  *
-- FROM 
-- emp e,dept d 
-- WHERE e.deptno=d.deptno AND e.ename!='庞统' AND e.job=(SELECT job FROM emp WHERE ename='庞统');

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

-- SELECT 
--  *
-- FROM 
-- emp e LEFT JOIN dept d ON  e.deptno=d.deptno WHERE e.sal>(SELECT MAX(sal) FROM emp WHERE deptno=30);

10.查出年份、利润、年度增长比。

-- SELECT
-- p1.year,p1.zz, CONCAT(ROUND(((p1.zz-p2.zz)/p2.zz)*100,2),'%') AS '年度增长比'
-- FROM profit p1 LEFT JOIN profit p2 ON p1.year=p2.year+1 ORDER BY p1.`year`;
 

你可能感兴趣的:(尚马Java代码,mysql,数据库,database)