Mysql实例mysql中delete、truncate删除操作详解
《Mysql实例mysql中delete、truncate删除操作详解》要点: MYSQL学习本节内容: MYSQL学习一,Delete语句 MYSQL学习首先,delete单表语法: ??? [WHERE where_definition] ??? [ORDER BY ...] ??? [LIMIT row_count] MYSQL学习其次,delete多表语法: ??? tbl_name[.*] [,tbl_name[.*] ...] ??? FROM table_references ??? [WHERE where_definition] 或 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] ??? FROM tbl_name[.*] [,tbl_name[.*] ...] ??? USING table_references ??? [WHERE where_definition] ? MYSQL学习如果您编写的DELETE语句中没有WHERE子句,则所有的行都被删除.当您不想知道被删除的行的数目时,有一个更快的办法,就是用TRUNCATE TABLE. MYSQL学习DELETE语句支持以下修饰符: MYSQL学习QUICK修饰符会影响到在删除操作中索引端结点是否合并.当用于被删除的行的索引值被来自后插入的行的相近的索引值代替时,DELETE QUICK最为适用.在此情况下,被删除的值留下来的空间被重新使用. MYSQL学习未充满的索引块跨越某一个范围的索引值,会再次发生新的插入.当被删除的值导致出现未充满的索引块时,DELETE QUICK没有作用.在此情况下,使用QUICK会导致未利用的索引中出现废弃空间. MYSQL学习如果您打算从一个表中删除许多行,使用DELETE QUICK再加上OPTIMIZE TABLE可以加快速度.这样做可以重新建立索引,而不是进行大量的索引块合并操作. MYSQL学习用于DELETE的MySQL唯一的LIMIT row_count选项用于告知服务器在控制命令被返回到客户端前被删除的行的最大值.本选项用于确保一个DELETE语句不会占用过多的时间.您可以只重复DELETE语句,直到相关行的数目少于LIMIT值为止. MYSQL学习如果DELETE语句包括一个ORDER BY子句,则各行依照子句中指定的顺序进行删除.此子句只在与LIMIT联用是才起作用. MYSQL学习可以同时删除许多个表中的行,并使用其它的表进行搜索: --或者 DELETE FROM t1,t2 USING t1,t3 WHERE t1.id=t2.id AND t2.id=t3.id; MYSQL学习当搜索待删除的行时,这些语句使用所有三个表,但是只从表t1和表t2中删除对应的行. MYSQL学习以上例子显示了使用逗号操作符的内部联合,但是多表DELETE语句可以使用SELECT语句中允许的所有类型的联合,比如LEFT JOIN. MYSQL学习当引用表名称时,您必须使用别名(如果已给定): MYSQL学习进行多表删除时支持跨数据库删除,但是在此情况下,您在引用表时不能使用别名. MYSQL学习目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择. MYSQL学习二,TRUNCATE语句 MYSQL学习对于InnoDB表,如果有需要引用表的外键限制,则TRUNCATE TABLE被映射到DELETE上;否则使用快速删减(取消和重新创建表).使用TRUNCATE TABLE重新设置AUTO_INCREMENT计数器,设置时不考虑是否有外键限制. MYSQL学习对于其它存储引擎,TRUNCATE TABLE与DELETE FROM有以下几处不同: MYSQL学习只要表定义文件tbl_name.frm是合法的,则可以使用TRUNCATE TABLE把表重新创建为一个空表,即使数据或索引文件已经被破坏. MYSQL学习TRUNCATE TABLE是在MySQL中采用的一个Oracle SQL扩展. MYSQL学习以上为大家介绍了mysql中delete、truncate语句的用法,希望对大家有所赞助. 编程之家PHP培训学院每天发布《Mysql实例mysql中delete、truncate删除操作详解》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |