#统计每个部门有多少员工
SELECT COUNT(*) AS number ,edid FROM emp GROUP BY edid
#统计每个部门里面最高工资
##编写emp和salary内连接查询
##得到最高工资max
##部门分组group by
SELECT MAX(salarystand),emp.edid
FROM emp,salary
WHERE emp.stid=salary.stid
GROUP BY emp.edid
#统计每个部门年龄最大者
SELECT MAX(age),emp.edid
FROM emp
GROUP BY emp.edid
#获取部门最高工资大于5000
SELECT MAX(salarystand),emp.edid
FROM emp,salary
WHERE emp.stid=salary.stid #该语句后面不能加函数,函数放在having里面
GROUP BY emp.edid
HAVING MAX(salarystand)>5000
#子查询
#查询比张无忌的工资高
##查询张无忌的工资
##查询大于张无忌的工资值
SELECT * FROM emp,salary WHERE emp.stid=salary.stid AND salary.salarystand >
(SELECT salary.salarystand FROM emp,salary WHERE emp.stid=salary.stid AND emp.ename='张无忌')
#查询和张无忌是一个部门
##查询张无忌部门
##哪个员工部门id和张无忌部门id相同
SELECT * FROM emp WHERE edid=(SELECT edid FROM emp WHERE emp.ename='张无忌')
#统计每个部门有多少个员工
SELECT dept.dname,es.num FROM dept,
(SELECT COUNT(*) AS num,edid FROM emp GROUP BY edid) es
WHERE dept.did=es.edid
SELECT USER()
SELECT VERSION()
#事务操作
#第一步 开启事务
START TRANSACTION
#第二步 执行具体事务操作
UPDATE emp SET ename ='nigo' WHERE eid=1
#第三步 提交/回滚事务
ROLLBACK;
COMMIT;