sql 语句系列(删库跑路系列)[八百章之第七章]
SQL 系列 语句 第七章 八百 删库
2023-09-14 09:01:09 时间
前言
最开心的章节,没有之一。
删除违反参照完整性的记录
EMP 是员工表,DEPT 是部门表 DEPTNO是部门编号
delete from EMP where not exists (
select null from DEPT where EMP.DEPTNO=DEPT.DEPTNO
)
delete from EMP where DEPTNO not in(
select DEPTNO from DEPT
)
删除重复数据
删除名字相同的员工:
delete from EMP where
EMPNO not in(select MIN(EMPNO) from EMP group by ENAME)
原理很简单,保留ENAME 相同的一项即可。
删除被其他表参照的记录
这里面的意思,不是说因为一个表是另外一张表的外键,而无法删除。
而是说,根据一张表来删除另外一张表。
dept_accidents 是一张部门发生事故的表
select * from dept_accidents
现在有一个需求,就是删除出现3次事故的部门的员工删除。
delete from EMP
where DEPTNO in(select deptno from dept_accidents group by deptno having count(*)>=3)
相关文章
- 存储过程系列之存储过程具体操作过程及sql数据库调用
- SQL Server调优系列基础篇
- sql 语句系列(记录时间差)[八百章之第十八章]
- sql 语句系列(众数中位数与百分比)[八百章之第十五章]
- sql 语句系列(加减乘除与平均)[八百章之第十四章]
- sql 语句系列(字符串之裂开)[八百章之第十三章]
- sql 语句系列(列举非索引外键)[八百章之第九章]
- sql 语句系列(多表之链二)[八百章之第四章]
- PL/SQL的存储过程和函数(原创)
- sql 语句系列(闰年)[八百章之第十九章]
- sql 语句系列(分割ip)[八百章之第十四章]
- sql 语句系列(列举系列)[八百章之第八章]
- Atitit sql之道 艾龙著 attilax 1. Ddl dml3 2. Crud3 3. 高级sql3 3.1. Merge3 3.2. 数据库翻页 limit offset系列
- 【SQL开发实战技巧】系列(九):一个update误把其他列数据更新成空了?Merge改写update!给你五种删除重复数据的写法!
- 【SQL开发实战技巧】系列(十七):数据仓库中时间类型操作(初级)确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数
- 【SQL开发实战技巧】系列(十三):讨论一下常用聚集函数&通过执行计划看sum()over()对员工工资进行累加
- 【SQL开发实战技巧】系列(十一):拿几个案例讲讲translate|regexp_replace|listagg|wmsys.wm_concat|substr|regexp_substr常用函数