位置: 编程技术 - 正文

mysql 删除操作(delete+TRUNCATE)(mysql中删除语句怎么写)

编辑:rootadmin

推荐整理分享mysql 删除操作(delete+TRUNCATE)(mysql中删除语句怎么写),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql删除key,mysql的删除,mysql的删除,mysqli删除,在mysql中删除数据,mysql的删除,mysql8.0删除,mysqli删除,内容如对您有帮助,希望把文章链接给更多的朋友!

delete

语法

单表语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]多表语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] 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]如果您编写的DELETE语句中没有WHERE子句,则所有的行都被删除。当您不想知道被删除的行的数目时,有一个更快的方法,就是用TRUNCATE TABLE。

DELETE语句支持以下修饰符:

&#;如果您指定LOW_PRIORITY,则DELETE的执行被延迟,直到没有其它客户端读取本表时再执行。&#; 对于MyISAM表,如果您使用QUICK关键词,则在删除过程中,存储引擎不会合并索引端结点,这样可以加快部分种类的删除操作的速度。&#;在删除行的过程中,IGNORE关键词会使MySQL忽略所有的错误。(在分析阶段遇到的错误会以常规方式处理。)由于使用本选项而被忽略的错误会作为警告返回。在MyISAM表中,被删除的记录被保留在一个带链接的清单中,后续的INSERT操作会重新使用旧的记录位置。要重新使用未使用的空间并减小文件的尺寸,则使用OPTIMIZE TABLE语句或myisamchk应用程序重新编排表。OPTIMIZE TABLE更简便,但是myisamchk速度更快。

QUICK修饰符会影响到在删除操作中索引端结点是否合并。当用于被删除的行的索引值被来自后插入的行的相近的索引值代替时,DELETE QUICK最为适用。在此情况下,被删除的值留下来的空间被重新使用。

未充满的索引块跨越某一个范围的索引值,会再次发生新的插入。当被删除的值导致出现未充满的索引块时,DELETE QUICK没有作用。在此情况下,使用QUICK会导致未利用的索引中出现废弃空间。

如果您打算从一个表中删除许多行,使用DELETE QUICK再加上OPTIMIZE TABLE可以加快速度。这样做可以重新建立索引,而不是进行大量的索引块合并操作。

用于DELETE的MySQL唯一的LIMIT row_count选项用于告知服务器在控制命令被返回到客户端前被删除的行的最大值。本选项用于确保一个DELETE语句不会占用过多的时间。您可以只重复DELETE语句,直到相关行的数目少于LIMIT值为止。

如果DELETE语句包括一个ORDER BY子句,则各行按照子句中指定的顺序进行删除。此子句只在与LIMIT联用是才起作用。例如,以下子句用于查找与WHERE子句对应的行,使用timestamp_column进行分类,并删除第一(最旧的)行:

DELETE FROM somelog WHERE user = 'jcole' ORDER BY timestamp_column LIMIT 1;可以同时删除许多个表中的行,并使用其它的表进行搜索:

mysql 删除操作(delete+TRUNCATE)(mysql中删除语句怎么写)

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,不过,您不能在一个多表DELETE语句中使用ORDER BY或LIMIT。

当引用表名称时,您必须使用别名(如果已给定):

DELETE t1 FROM test AS t1, test2 WHERE ...

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

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

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

TRUNCATE

语法

TRUNCATE [TABLE] tbl_nameTRUNCATE TABLE用于完全清空一个表。从逻辑上说,该语句与用于删除所有行的DELETE语句等同,但是在有些情况下,两者在使用上有所不同。

对于InnoDB表,如果有需要引用表的外键限制,则TRUNCATE TABLE被映射到DELETE上;否则使用快速删减(取消和重新创建表)。使用TRUNCATE TABLE重新设置AUTO_INCREMENT计数器,设置时不考虑是否有外键限制。

对于其它存储引擎,TRUNCATE TABLE与DELETE FROM有以下几处不同:

&#;删减操作会取消并重新创建表,这比一行一行的删除行要快很多。&#;删减操作不能保证对事务是安全的;在进行事务处理和表锁定的过程中尝试进行删减,会发生错误。&#;被删除的行的数目没有被返回。&#;只要表定义文件tbl_name.frm是合法的,则可以使用TRUNCATE TABLE把表重新创建为一个空表,即使数据或索引文件已经被破坏。&#;表管理程序不记得最后被使用的AUTO_INCREMENT值,但是会从头开始计数。即使对于MyISAM和InnoDB也是如此。MyISAM和InnoDB通常不再次使用序列值。&#;当被用于带分区的表时,TRUNCATE TABLE会保留分区;即,数据和索引文件被取消并重新创建,同时分区定义(.par)文件不受影响。TRUNCATE TABLE是在MySQL中采用的一个Oracle SQL扩展。

转自

mysql导入sql文件报错 ERROR 今天导入sql总是提示错误ERROR(HY):LostconnectiontoMySQLserverduringqueryERROR(HY):MySQLserverhasgoneawayNoconnection.Tryingtoreconnect...ERROR(HY):Can'tconnecttolocalMySQ

MAC系统中添加MYSQL开机启动的方法 1.添加文件touch/Library/LaunchDaemons/com.mysql.mysql.plist2.添加内容xmlversion="1.0"encoding="UTF-8"!DOCTYPEplistPUBLIC"-//Apple//DTDPLIST1.0//EN""

Mac上安装MySQL过程分享 1.下载MySQL下载地址,选择要下载的版本,建议选择DMG安装包,用着比较方便。2.解压并安装DMG包中的mysql-5.6.-osx.7-x_.pkg,然后安装MySQLStartupItem.pkg。

标签: mysql中删除语句怎么写

本文链接地址:https://www.jiuchutong.com/biancheng/324369.html 转载请保留说明!

上一篇:小型Drupal数据库备份以及大型站点MySQL备份策略分享(小型数据库软件有哪些)

下一篇:SQLServer中防止并发插入重复数据的方法详解(sql server 防止表锁死)

  • 计提增值税会计科目是什么
  • 新注册公司没有员工怎么报个税
  • 票据承兑和贴现市场上最主要的交易对象是( )
  • 注销公司账面余额要全部清零吗
  • 事业单位补发
  • 总产值和主营业务收入
  • 个人购买商业保险怎么抵扣个税
  • 递延收益为什么要摊销
  • 付现金给别的公司是否可以开具发票呢?
  • 工程多少金额需要投标
  • 燃油税改革了谁的钱包
  • 广告费扣除年限
  • 补提以前年度无形资产摊销税务处理
  • 母公司拨款给子公司的账务处理
  • 购买机动车怎样抵扣进项税
  • 怎么快速关闭电脑屏幕快捷键
  • win7如何隐藏任务栏正在游戏的图标
  • 货物质量赔偿需要改变收入吗合法吗
  • awk命令怎么用
  • 继续涉入资产会计处理
  • 售后回购不符合法律规定
  • 年末结转利润分配账户的借方余额表示
  • 企业股权转让所得可以弥补亏损吗
  • php和apache
  • Smarty3配置及入门语法
  • vue process.env.node_env
  • php获取文件后缀名的方法
  • Vue Element UI 中 el-table 树形数据 tree-props 多层级使用避坑
  • 黄金零售环节增值税的缴纳
  • 企业购买预付卡怎么做账
  • vue-introjs
  • html+css+js网页设计期末作业付源码
  • od输出结构
  • chrome网上应用商店在哪
  • python怎么打开mac本地文件
  • 织梦cms官网
  • 结转制造费用金额
  • 小微怎么开专票
  • 个人对个人大额转账用途怎么写
  • 出差自己开车去开会怎么报销交通费
  • 减值准备需要确认递延所得税资产吗
  • 利润表一般采用
  • 固定资产折旧指标有哪些
  • 工伤在门诊的收据能报销吗
  • 个人如何开增值税普通电子发票
  • 结转费用后利润怎么算
  • 收到发票未抵扣,收票方也可以开红字信息表吗?
  • 其他权益工具投资公允价值变动计入什么科目
  • 应付账款周转率越大说明什么
  • 资本公积转增股本所有者权益会变吗
  • 减免与抵免
  • 自查时发现以前的事情
  • 中标违约保证金怎么退
  • 固定资产的主要特征
  • 应付账款的主要风险点
  • 财务费用利息收入怎么记账
  • 收到快递赔付款怎么做账
  • 做内账需要什么资料
  • 会计凭证的审核的注意事项有哪些
  • 商业会计机构的组织形式
  • 数据库更新数据
  • MySql 5.6.35 winx64 安装详细教程
  • 台式电脑二级网页打不开怎么办
  • 怎样取消开机磁盘自动检查
  • xp怎么安装framework
  • windowsserver2008r2密码重置
  • 把winpe安装至系统盘
  • winxp系统笔记本电脑如何开启无线网络
  • win10 directx9
  • js日期选择框
  • cocos怎么用
  • js中创建函数的方法
  • opengl使用教程
  • fiori开发工具
  • 安卓wifi打不开解决
  • unity怎么调用方法
  • python批量执行命令
  • ajax链式调用
  • 新车交了购置税后给什么凭证
  • 个人所得税app可以更改电话号码吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设