zoukankan      html  css  js  c++  java
  • 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,这里只做演示用。

    作者:BobTian
    出处http://nianming.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    欢迎访问我的个人博客:程序旅途
  • 相关阅读:
    #454. 【UER #8】打雪仗
    6496. 【GDOI2020模拟03.08】圣痕
    6495. 【GDOI2020模拟03.08】死星
    6494. 【GDOI2020模拟03.08】勘探
    NOI Online划水记
    6482. 【GDOI2020模拟02.22】代数几何(algebraic)
    6493. 【GDOI2020模拟03.04】迷宫
    6492. 【GDOI2020模拟03.04】多项式
    6491. 【GDOI2020模拟03.04】铺路
    #76. 【UR #6】懒癌
  • 原文地址:https://www.cnblogs.com/nianming/p/2703651.html
Copyright © 2011-2022 走看看