表的插入、更新、删除、合并操作_19_通过表关联删除记录
生活随笔
收集整理的這篇文章主要介紹了
表的插入、更新、删除、合并操作_19_通过表关联删除记录
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ?通過表關(guān)聯(lián)刪除記錄
需求描述
需求:刪除dept表里deptno和temp相同的記錄,但數(shù)據(jù)不可再恢復(fù).
解決方法:這里通過DELETE FROM tableNAME A JOIN tableName B …方式來刪除數(shù)據(jù).
注: 數(shù)據(jù)庫數(shù)據(jù)集SQL腳本詳見如下鏈接地址
員工表結(jié)構(gòu)和數(shù)據(jù)初始化SQL腳本
SQL代碼
-- Sql server: BEGIN TRANSELECT * FROM dept;DELETE FROM deptFROM dept AJOIN temp BON A.deptno = B.deptnoSELECT * FROM dept;ROLLBACK TRAN--Mysql: BEGIN; SELECT * FROM dept A; -- JOIN temp B -- ON A.deptno = B.deptnoDELETE A FROM? dept A INNER JOIN temp B ON A.deptno = B.deptno AND B.deptno=40;--或者見下 DELETE dept FROM? dept,temp WHERE dept.deptno = temp.deptno AND temp.deptno=40;SELECT * FROM dept; -- 不難發(fā)現(xiàn),這里dept表里deptno=40的記錄被刪除了. ROLLBACK;執(zhí)行結(jié)果
-- Oracle: INSERT INTO dept VALUES(50,'Production','Nanjing'); INSERT INTO temp(deptno,deptname,loc,empno,ename,sal) SELECT 50,'Production','Nanjing',7369,'SMITH2',1000 FROM DUAL; DELETE FROM dept WHERE EXISTS (SELECT 1 FROM TEMP WHERE dept.deptno = temp.deptno)總結(jié)
以上是生活随笔為你收集整理的表的插入、更新、删除、合并操作_19_通过表关联删除记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宝马三系倒车音响声不减怎么回事
- 下一篇: 家常豆腐 做法?