SQL中的關聯更新和關聯刪除


在SQL中,經常用到關聯查詢,比如select a.* from A a inner join B b on a.PId=b.FId where 條件,SQL中也支持類似的關聯更新和關聯刪除。

關聯更新語法:

update a set a.字段=” from A a inner join B b on a.PId=b.FId where 條件

關聯刪除語法:

delete from a from A a inner join B b on a.PId=b.FId where 條件

注解:A,B為表名,a.PId為A表的主鍵,B.FId為B表的外鍵,關聯A表

通過上面的語法,可以發現from 后面是一樣的。

下面是我寫的一個小例子。

建立兩個表:用戶表 User和博客表 Blog,如下圖所示:

執行以下腳本插入測試數據:

insert into [User](UserName,[Password],Memo) values (‘張三’,’123456′,”)
insert into [User](UserName,[Password],Memo) values (‘李四’,’123456′,”)
insert into [User](UserName,[Password],Memo) values (‘王五’,’123456′,”)

insert into Blog(Title,UserId) values (‘標題1′,1)
insert into Blog(Title,UserId) values (‘標題2′,2)
insert into Blog(Title,UserId) values (‘標題3′,3)
insert into Blog(Title,UserId) values (‘標題4′,3)
insert into Blog(Title,UserId) values (‘標題5′,3)

執行更新操作:

將發表了博客標題為“標題1”的用戶的備注設置為”發表了一篇名為(標題1)博客的用戶”,SQL如下:

update u set u.Memo=’發表了一篇名為(標題1)博客的用戶’ from [User] u
inner join Blog b on u.UserId=b.UserId where b.Title=’標題1′

執行刪除操作:

刪除UserId為3的用戶發表的所有博客,SQL如下:

delete from b from Blog b inner join [User] u on u.UserId=b.UserId where u.UserId=3

上面的關聯刪除可以直接寫成delete from Blog where UserId=3,這里只做演示用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM