MySQL中的删除:drop,delete,truncate的区别和联系
MySQL中drop,delete,truncate都可以用于删除,那么它们之间的区别是什么呢?首先我们先来学习一下这三个命令。注:本篇文章主要介绍对于表的删除
一、drop命令
drop是DDL(数据定义语言),用于整张表的删除,删除的时候不仅删除了表中的数据,还删除了表结构。(也就是使用drop删除表后,数据库中便查询不到该表)
语法:drop table 表名;
注:drop命令后不可使用where等命令。
二、delete命令
delete是DML(数据操作语言),用于对表中数据的删除,不会删除表结构,也就是说即使你使用delete from 表名;将表中所有数据都删除了,该表依然存在。
delete的删除原理:在InnoDB数据库引擎下,将要删除的数据添加一个删除标记,该表的实际大小不会产生变化。
语法:delete from 表名 where 字段名 = 值;(where后面的语句可以不要,表示删除整张表的数据)
![delete删除表中元素
三、truncate命令
truncate是DDL(数据定义语言),使用该命令可以删除表中所有数据,但不会删除表结构。但是该命令不能添加查询条件。
truncate的删除原理是重新创建一个表(不包含数据),然后将原来的表删除。
语法:truncate table 表名;
四、drop VS delete VS truncate
4.1 相同点
- 都可以删除整张表中的数据
4.2 不同点
- 删除的范围:drop(删除表中所有数据及表结构)>truncate(删除表中所有数据)>=delete(删除表中所有数据或部分数据)
- 查询条件:delete可以使用查询条件进行表中数据删除,drop和truncate不可以
- 命令类型:delete属于DML,drop和truncate属于DDL
- 数据能否恢复:delete删除的数据可以恢复,但是drop和truncate删除的数据不能恢复
- 执行效率:drop>truncate>delete
MySQL中的删除:drop,delete,truncate的区别和联系相关推荐
- 转 Oracle 删除表,oracle 中删除表 drop delete truncate 的区别
相同点,使用drop delete truncate 都会删除表中的内容 drop table 表名 delete from 表名(后面不跟where语句,则也删除表中所有的数据) truncate ...
- mysql 删除视图 命令_在MySQL中,删除视图使用(????)命令。
在MySQL中,删除视图使用(????)命令. 答:DROP 设计的优点之一就在于其在命令执行上的刚性 答:职能式 4月15日作业 答:笔记 喘证的主要临床特征是 答:呼吸急促,甚至张口抬肩,鼻翼煽动 ...
- 删除binlog mysql_mysql中删除binlog的方法?mysql中如何删除binlog?
需求描述: 在mysql中如何删除binlog,因为随着数据库的运行,mysql中产生的binlog会越来越大,有可能把磁盘撑爆了,所以记录下删除 binlog的方法. 操作过程: 1.通过系统参数控 ...
- 记MySQL中如何删除某个字段中的某个字符
问题描述: 问题:项目中对以逗号分隔的字符串进行指定字符修改删除时,会导致其它字符无法使用. 原因分析: SQL语句拼写错误.遗漏replace()中的第三个参数,漏写了,. 错误的写法: updat ...
- MySQL中索引与视图的用法与区别详解
索引与视图是我们在日常使用mysql必不可少的一部分,最近在学习中看到一本书中关于这方法写的不错,所以这篇文章主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关资料,需要的朋友可以参考借鉴, ...
- mysql中 REPLACE INTO 和 INSERT INTO 的区别
mysql中 REPLACE INTO 和 INSERT INTO 的区别 REPLACE INTO 和 INSERT INTO 功能类似,都是像表中插入数据,不同点在于:REPLACE INTO 首 ...
- php普通索引和唯一索引,MySQL中普通索引和唯一索引的区别详解
本篇文章介绍了MySQL中普通索引和唯一索引的区别,讲解很详细,希望对学习MySQL的朋友有帮助! 需要注意的是: redo log中的数据,可能还没有 flush 到磁盘,磁盘中的 Page 1 和 ...
- MySQL+create+base,MySQL中CREATE DATABASE和CREATE SCHEMA的区别
MySQL中CREATE DATABASE和CREATE SCHEMA的区别 create schema 是创建模式 create database 是创建数据库 但进入MySQL不用选择任何数据库即 ...
- mysql中的where和having子句的区别
mysql中的where和having子句的区别 having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句 ...
- MySQL中char,varchar和text的区别
MySQL中char,varchar和text的区别 java程序中的string类型,在mysql数据表中可以有三种对应的类型:char,varchar和text. char,varchar和tex ...
最新文章
- 软件设计师备考知识05--设计模式
- 互联网协议 — IPSec 安全隧道协议
- 驱动WDK7600在VC6.0下的编译开发配置环境
- ubuntu16.04 uninstall cuda 9.0 completely and install 8.0 instead
- IIS网站服务器性能优化指南
- maven的启动类和MAVEN_OPTS参数
- Struts2使用!动态方法调用无效
- kubeadmin 安装 k8s集群
- windows消息定义
- CrtInvertedIdx
- TreeView无限极分类绑定(从数据库读取数据源)
- Gitlab的develop角色的人没有权限无法提交的问题解决方案
- Head first servlet and jsp学习笔记
- PyFlink 社区扶持计划正式上线!
- python开发转行渗透测试_月薪45K的大牛用Python开发一款密码攻击测试器!密码形同虚设!...
- HTTP与Tcp协议下双工通信的差异
- Java故障定位方法总结
- 虚拟机Class文件结构笔记
- python调用woff_修改Python脚本以批量转换目录中的所有“WOFF”文件
- rtmp中flv和flv文件的区别
热门文章
- 计算机网络 之 DNS (Domain Name System)域名服务器
- 应用Microchip dsPIC芯片日志——烧录出现的问题
- 软件测试之---测试设计方法
- 25.(cesium篇)cesium军事标绘-攻击箭头采集(燕尾)
- rails rjs select method help
- STM32学习记录0002-STM32初探
- redis第三方软件medis
- 接口开放平台,我的一些思考
- 【Django】有效解决django.core.exceptions.ImproperlyConfigured: Requested setting EMAIL_FROM, but settings
- Weakly-Supervised Physically Unconstrained Gaze Estimation论文翻译