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

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

120次阅读
没有评论

共计 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字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 亚洲一二区 | 亚洲精品成人无码中文毛片不卡 | 天天躁夜夜躁狠狠综合 | 国产福利啪啪 | 国产亚洲欧美在线播放网站 | 国产激情一区二区三区 | www.日本黄| 久久国产首页 | 97se亚洲国产综合在线 | 日本一区不卡 | 欧美日韩一区二区三区视频播 | 少妇激情av一区二区三区 | 免费的一级毛片 | 在线99视频| 西西人体大胆瓣开下部自慰 | 236宅片在线观看 | 国产hs免费高清在线观看 | 自拍偷拍福利 | 亚洲精品国产熟女久久久 | 开心五月色婷婷综合开心网 | 亚洲精品国产专区一区 | 成人黄色免费网站 | 亚洲人成网站在线在线 | 亚洲 欧美 字幕 一区 在线 | 国产精品成人四虎免费视频 | 久久久久亚洲av无码a片软件 | 中文字幕人妻熟女人妻 | 亚洲日韩欧美视频 | 国产综合视频在线观看 | 久久性综合亚洲精品电影网 | 黄视频在线免费看 | 午夜禁18男欢女爱视频 | 韩日一级片 | 看全色黄大色黄大片 视频 看全色黄大色黄大片毛片 看全色黄大色黄大片色黄看的 | 亚洲人色婷婷成人网站在线观看 | 一二三四国语在线观看视频 | 福利盒子在线视频免费 | 亚洲精品无码久久久久去q 亚洲精品无码久久久久牙蜜区 | 亚洲熟女一区二区三区 | 少妇又紧又色又爽又刺激视频 | 伊人艹|