prefacio
Los capítulos más felices, ni siquiera uno.
Eliminar violan la integridad referencial de los registros
EMP es una mesa de profesores, DEPT es la tabla departamento es el número de departamento 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
)
Borrar datos duplicados
Los empleados se quiten el mismo nombre:
delete from EMP where
EMPNO not in(select MIN(EMPNO) from EMP group by ENAME)
El principio es muy simple, se puede mantener el mismo ENAME.
Eliminar referencia a otras tablas se registran
Hay un significado, no quiere decir que porque una tabla es una clave externa de otra tabla, y no se puede eliminar.
Por el contrario, para eliminar otra mesa basado en una tabla.
dept_accidents mesa es un departamento de accidentes
select * from dept_accidents
Ahora hay una demanda, es eliminar departamento del empleado apareció tres veces para eliminar el accidente.
delete from EMP
where DEPTNO in(select deptno from dept_accidents group by deptno having count(*)>=3)