博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL中的关联更新和关联删除
阅读量:6968 次
发布时间:2019-06-27

本文共 1159 字,大约阅读时间需要 3 分钟。

在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,这里只做演示用。

转载地址:http://mgisl.baihongyu.com/

你可能感兴趣的文章
sed运用实例一——基于变量的动态替换
查看>>
centos下搭建svn的安装过程
查看>>
Html 常见问题
查看>>
网站安全检测之图片验证码
查看>>
PB 级数据处理挑战,Kubernetes如何助力基因分析?
查看>>
vue cle新建vue项目
查看>>
配置网络、远程登录
查看>>
阿里架构师干货分享——eureka分布式框架demo
查看>>
GitHub十周岁HanLP自然语言处理包用户量超越CoreNLP
查看>>
Pycharm上Django的使用 Day2
查看>>
5.22-zabbix监控Nginx
查看>>
JVM基础系列开篇:为什么要学虚拟机?
查看>>
unicode字符串转list的方法
查看>>
OSChina 周五乱弹 —— 草莓味的唇膏是什么味道?
查看>>
OSChina 周三乱弹 ——纪念Bob Taylor
查看>>
OSChina 周一乱弹 ——爱丽三个小时没吃鱼罐头了
查看>>
OSChina 周六乱弹 ——程序员还是大学生的时候 带啥去上学
查看>>
PHP Web服务出现</SOAP-ENV:Envelop -> Misses the la...
查看>>
大整数类
查看>>
nginx在linux环境下安装
查看>>