在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

MySQL中增删改查语法的示例分析

138次阅读
没有评论

共计 2295 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章给大家分享的是有关 MySQL 中增删改查语法的示例分析的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

普通的单表更新或删除 sql 大家肯定滚瓜烂熟, 但你有用过连表更新或删除的 sql 吗, 这个在表间关联来做更新和删除操作非常有用. 

————————– 

————————–

您也可以执行包括多个表的 UPDATE 操作。table_references 子句列出了在联合中包含的表。该语法在 13.2.7.1 节,“JOIN 语法”中进行了说明。以下是一个例子:

UPDATE items,month SET items.price=month.price

WHERE items.id=month.id;

以上的例子显示出了使用逗号操作符的内部联合,但是 multiple-table UPDATE 语句可以使用在 SELECT 语句中允许的任何类型的联合,比如 LEFT JOIN。

注释:您不能把 ORDER BY 或 LIMIT 与 multiple-table UPDATE 同时使用。

在一个被更改的 multiple-table UPDATE 中,有些列被引用。您只需要这些列的 UPDATE 权限。有些列被读取了,但是没被修改。您只需要这些列的 SELECT 权限。

如果您使用的 multiple-table UPDATE 语句中包含带有外键限制的 InnoDB 表,则 MySQL 优化符处理表的顺序可能与上下层级关系的顺序不同。在此情况下,语句无效并被 回滚。同时,更新一个单一表,并且依靠 ON UPDATE 功能。该功能由 InnoDB 提供,用于对其它表进行相应的修改。请参见 15.2.6.4 节,“FOREIGN KEY 约束”。

目前,您不能在一个子查询中更新一个表,同时从同一个表中选择。

—————————————

举例说明: 比如我现在有个主文章表, 和一个文章附表, 主文章表里存放一些文章的 title,category 分类, 添加时间, 和更新时间之类的基本信息, 附文章表里放文章的内容.

我现在要更新主, 附表里 id 为 1 的文章内容, 我可以执行以下 sql:

update a left join b on a.id=b.a_id set a.title= aaaaa ,b.body= bbbb where a.id=1www~phperz~com

再看 delete 的联表删除  www~phperz~com

mysql 手册中的描述

您可以在一个 DELETE 语句中指定多个表,根据多个表中的特定条件,从一个表或多个表中删除行。不过,您不能在一个多表 DELETE 语句中使用 ORDER BY 或 LIMIT。

table_references 部分列出了包含在联合中的表。此语法在 13.2.7.1 节,“JOIN 语法”中进行了说明。 www~phperz~com

对于第一个语法,只删除列于 FROM 子句之前的表中的对应的行。对于第二个语法,只删除列于 FROM 子句之中(在 USING 子句之前)的表中的对应的行。作用是,您可以同时删除许多个表中的行,并使用其它的表进行搜索:

DELETE t1, t2 FROM t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;

或:

DELETE FROM t1, t2 USING t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;

当搜索待删除的行时,这些语句使用所有三个表,但是只从表 t1 和表 t2 中删除对应的行。

以上例子显示了使用逗号操作符的内部联合,但是多表 DELETE 语句可以使用 SELECT 语句中允许的所有类型的联合,比如 LEFT JOIN。

本语法允许在名称后面加.*,以便与 Access 相容。

如果您使用的多表 DELETE 语句包括 InnoDB 表,并且这些表受外键的限制,则 MySQL 优化程序会对表进行处理,改变原来的从属关系。在这种情况下,该语句出现错误并返回到前面的步骤。要避免此错误,您应该从单一表中删除,并依靠 InnoDB 提供的 ON DELETE 功能,对其它表进行相应的修改。

注释:当引用表名称时,您必须使用别名(如果已给定): php 程序员站

DELETE t1 FROM test AS t1, test2 WHERE …

进行多表删除时支持跨数据库删除,但是在此情况下,您在引用表时不能使用别名。举例说明:phperz~com

DELETE test1.tmp1, test2.tmp2 FROM test1.tmp1, test2.tmp2 WHERE …

目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择。

————————————

现在我们还对刚才那二个表举例, 删除主, 附表里 id 为 1 的文章内容, 我可以执行以下 sql:

delete a,b from a left join b on a.id=b.a_id where a.id=1

注意我给加红的地方, 如果你只删除多个表中的某个表里的数据, 则在 delete 后面只跟那个表的名子, 我举的例子是同时删除 a 和 b 中 aid= 1 的数据, 也就是同时删二个表的数据. php 程序员站

如图:

 

注: 本文以是 mysql 来讲解的, 其他的比如 sql server ,access,oracle 等也有他们各自不同的语法, 用时请各位根据手册上的语法自自己摸索. 

感谢各位的阅读!关于“MySQL 中增删改查语法的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计2295字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 四虎影视国产在线观看精品 | 久久久噜噜噜久久老司机 | 一区视频在线 | 四虎影院免费网址 | 国产福利片在线 易阳 | 国产精品视频分类一区 | 91美女在线播放 | 国产婷婷色一区二区三区 | 国产欧美日韩亚洲 | 男女做爰全过程免费视频 | 久草国产精品 | 免费人成视频在线 | 午夜亚洲福利 | 久久亚洲精品一区成人 | 一级福利 | 亚洲av成人一区二区三区av | 欧美日韩1区2区 | 欧洲精品在线视频 | 色偷偷综合 | 免费精品国产人妻国语 | 亚洲精品免费视频 | 成人短视频在线观看免费 | 色成人综合网 | 无码人妻丰满熟妇区96 | 一个人看的免费高清视频日本 | 天天干天天插天天操 | 一本一本久久a久久精品综合麻豆 | 久久成人精品 | 无套内谢的新婚少妇国语播放 | 成人午夜性a一级毛片美女 成人午夜性影院视频 | 国产美女视频一区二区三区 | 亚洲成人偷拍自拍 | 国产三级在线精品男人的天堂 | 亚洲色欲色欲www在线播放 | 亚洲国产精品久久久久婷蜜芽 | 欧美国产精品 | 澳门一级特黄真人毛片 | 美女一级毛片免费观看 | 国产真实伦对白在线播放 | 最爽爱爱高潮免费视频 | 日本一区二区三区四区 |