0
点赞
收藏
分享

微信扫一扫

Mysql 子查询、单行函数、事务

一葉_code 2022-04-04 阅读 69
sql
#统计每个部门有多少员工
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;
举报

相关推荐

0 条评论