SQL语句之DELETE
1 # 删除10部门⾥⾯,⼯龄超过20年的员⼯记录
truncatedelete2DELETE IGNORE FROM t_emp WHERE deptno=10AND DATEDIFF(NOW(),hiredate)/365>=20;
3 # 删除20部门⾥⾯⼯资最⾼的纪录
4DELETE IGNORE FROM t_emp WHERE deptno=20ORDER BY sal DESC LIMIT 1;
5 # 删除SALES部门和该部门的所有员⼯记录
6DELETE e,d FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno WHERE d.dname="SALES";
7 # 删除每个低于部门平均底薪的员⼯记录
8DELETE e FROM t_emp e JOIN (SELECT deptno,AVG(sal) avg FROM t_emp GROUP BY deptno) t ON e.deptno=t.deptno WHERE sal<avg;
9 # 删除员⼯KING和他直接下属的记录
10DELETE e FROM t_emp e JOIN (SELECT empno FROM t_emp WHERE ename="KING") t =t.empno pno;
11 # 删除SALES部门的员⼯及没有部门的员⼯
12DELETE e FROM t_emp e LEFT JOIN t_dept d ON e.deptno=d.deptno WHERE d.dname="SALES" OR e.deptno IS NULL;
13 # 绕过事务机制直接删除全表数据
14TRUNCATE TABLE t_emp;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。