DELETE与DROP 在数据库中的使用方法和区别

2023-11-11

DML(data manipulation language)数据操纵语言:就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作。
DML 语句都是显式提交,执行完之后,处理的数据,都会放在回滚段中(除了 SELECT 语句),等待用户进行提交(COMMIT)或者回滚 (ROLLBACK),当用户执行 COMMIT / ROLLBACK 后,放在回滚段中的数据就会被删除。

DDL(data definition language)数据库定义语言:DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上。比如:CREATE、ALTER、DROP等。
DDL 语句都是隐式提交。就是说,不用进行 COMMIT / ROLLBACK

DCL(Data Control Language)数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。这个比较少用到。


DELETE 语句

DELETE 语句用于删除表中的行。

DELETE FROM 表名称 WHERE 列名称 =
  • 删除某行

    DELETE FROM users WHERE user_id = '2'; 
    

在这里插入图片描述

  • 删除所有行

    可以在不删除表的情况下删除所有的行。这意味着表的结构、属性和索引都是完整的:

    DELETE FROM table_name
    

    或者:

    DELETE * FROM table_name
    

DROP 语句

通过使用 DROP 语句,可以轻松地删除索引、表和数据库。

  • DROP TABLE 语句用于删除表(表的结构、属性以及索引也会被删除):

    DROP TABLE 表名称
    
  • DROP DATABASE 语句用于删除数据库:

    DROP DATABASE 数据库名称
    
  • 如果我们仅仅需要除去表内的数据,但并不删除表本身,那么我们该如何做呢?请使用 TRUNCATE TABLE 命令(仅仅删除表格中的数据):

     TRUNCATE TABLE 表名称
    

DELETE与DROP 区别

  • DELETE是DML,执行DELETE操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。DROP是DDL,会隐式提交,所以,不能回滚,不会触发触发器。

  • DELETE可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。DROP语句删除表结构及所有数据,并将表所占用的空间全部释放。

  • DELETE语句不影响表所占用的extent,高水线(high watermark)保持原位置不变。DROP语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程/函数将保留,但是变为invalid状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DELETE与DROP 在数据库中的使用方法和区别 的相关文章

随机推荐

  • 怎么使用 js 动态生成海报?

    方案一 DOM gt canvas gt image 将目标 DOM 节点绘制到 canvas 画布 然后利用 canvas 相关的 API 以图片形式导出 可简单标记为绘制阶段和导出阶段两个步骤 绘制阶段 选择希望绘制的 DOM 节点 根
  • svn 恢复删除的文件

    本文转载至 http stackoverflow com questions 497670 whats a simple way to undelete a file in subversion If you just did svn rm
  • Retrofit 2.5框架使用与源码分析

    Retrofit 框架使用 请求内容与返回值 使用PostMan进行请求测试 请求 https api github com search repositories q android 返回值 Header 外链图片转存失败 源站可能有防盗
  • C语言中协程(coroutine)实现

    C语言协程库实现说明 代码实现 1 当前支持的功能概览 1 1 创建任意数量协程并在协程中yield include
  • 更新一个表的字段值等于另一个表的字段值

    在进行数据库操作时 有时我们需要把两个关联表中的某个字段同步 即把表1中字段A的值赋值到表2的字段B中 表1和表2通过字段C关联 SQL语句如下所示 Sql sever 和MySql的写法稍有不同 SQL Sever 写法1 update
  • 文件或目录损坏且无法读取怎么删除文件或目录

    解决方法有几种 1 尝试为文件重命名 如果可以重命名的话 运行cmd 打开任务管理器 结束explorer进程 切换到cmd命令提示符状态下输入 Del 文件名 后就可以删除文件了 这种方法只适用于可以重命名的文件 在进行操作时先关闭其他一
  • SpringMvc进阶

    SpringMvc进阶 SpringMVC引言 一 常用注解 二 参数传递 三 返回值 SpringMVC引言 在Web应用程序开发中 Spring MVC是一种常用的框架 它基于MVC Model View Controller 模式 提
  • Java中的抽象类和接口

    目录 一 什么是抽象类 抽象类在实现多态中的意义 二 接口是什么 通过接口实现多态 三 抽象类和接口的区别 各位铁汁们大家好呀 今天让我们继续学习java 看看java中的抽象类和接口到底是什么 一 什么是抽象类 我们之前学过什么是类 那么
  • Jackson常用方法以及jacksonUtil工具类

    前言 项目中我们通常使用ajax返回json数据格式的形式进行前后端数据交互 所以会用到java数据json数据互相转化 通常我们的做法是在项目中创建一个工具类进行转化处理 如下 我的demo包含了项目中常用的jacksonUtil类 以及
  • JDBC连接MySQL出现误com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database

    JDBC连接MySQL出现误com mysql jdbc exceptions jdbc4 MySQLSyntaxErrorException Unknown database test 问题原因 在用连接池进行MySQL连接时出错找不到改
  • UE_sqlite使用

    UE sqlite使用 PS 参考文档 https blog csdn net object article details 102785739 sqlite官方 https www sqlite org download html
  • 结构体中成员的引用

    结构体如下 struct student int num char name 20 char sex float score 1 结构体的初始化 struct student aa 1001 zhang M 80 5 2 引用整个结构体 s
  • Qt中的Q_D宏和d指针

    1 ZTS7QObject 一 Q D的在文件中的提法 Q D的设置意在方便地获取私有类指针 文件为qglobal h 下面的 是宏定义的连字符 假设类名是A 那么A Private翻译过来就是APrivate 1 define Q D C
  • MySQL服务无法启动。服务没有报告任何错误。问题解决!

    项目场景 提示 MySQL服务无法启动 服务没有报告任何错误 问题解决 问题描述 在启动MySQL是遇到问题 提示mysql服务无法启动 服务没有报告任何错误 原因分析 我这里的问题主要是因为你的data文件夹中有影响启动的文件 注意 清空
  • MyBatis-Plus&Druid

    MyBatis Plus Druid MyBatis Plus 核心功能 Spring Boot 集成 Druid 数据源 MyBatis Plus MyBatis Plus 简称 MP 是一个MyBatis 的增强工具 在MyBatis
  • 中兴e8820刷openwrt_中兴E8820V2(电信天翼宽带类似新路由3歌华链)-拆机及OpenWrt固件...

    本帖最后由 yumeimm 于 2020 12 20 10 53 编辑 2020 12更新 增加Openwrt v19 07 5固件 2020 10更新 添加openwrt v19 07 4固件 2020 05更新 添加openwrt v1
  • 什么是NAT?

    NAT是一种地址转换技术 它可以将IP数据报文头中的IP地址转换为另一个IP地址 并通过转换端口号达到地址重用的目的 NAT作为一种缓解IPv4公网地址枯竭的过渡技术 由于实现简单 得到了广泛应用 NAT解决了什么问题 随着网络应用的增多
  • 设计模式--装饰器模式

    装饰器模式 属于结构型模式基本原理 创建一个装饰器用来对一个现有对象添加新功能 不改变对象结构主要流程 1 根据对象创建一个修饰类 该修饰类要保持方法签名完整 2 在修饰类中根据需求添加新的功能 3 使用时将对象或对象的引用传入修饰类中 注
  • rabbitmq简介

    开发十年 就只剩下这套Java开发体系了 gt gt gt 1 AMQP AMQP协议是一个高级抽象层消息通信协议 RabbitMQ是AMQP协议的实现 它主要包括以下组件 1 1 Server broker 接受客户端连接 实现AMQP消
  • DELETE与DROP 在数据库中的使用方法和区别

    DML data manipulation language 数据操纵语言 就是我们最经常用到的 SELECT UPDATE INSERT DELETE 主要用来对数据库的数据进行一些操作 DML 语句都是显式提交 执行完之后 处理的数据