从 01 开始 从 01 开始
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • 数据库
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Node
  • Windows 使用技巧
  • 最全面的输入法教程
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 各大平台
  • 远程控制
  • RSS
  • 图片类工具
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 反腐
  • GFW
  • 404 内容
  • 审查与自我审查
  • 互联网
  • 2022
  • 2023
  • 2024
  • 2025
  • 关于本站
  • 关于博主
  • 网站动态
  • 公告栏
  • 友人帐
  • 从零开始搭建一个博客
  • 搭建邮件服务器
  • 本站分享
  • 文章分类
  • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • 数据库
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Node
  • Windows 使用技巧
  • 最全面的输入法教程
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 各大平台
  • 远程控制
  • RSS
  • 图片类工具
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 反腐
  • GFW
  • 404 内容
  • 审查与自我审查
  • 互联网
  • 2022
  • 2023
  • 2024
  • 2025
  • 关于本站
  • 关于博主
  • 网站动态
  • 公告栏
  • 友人帐
  • 从零开始搭建一个博客
  • 搭建邮件服务器
  • 本站分享
  • 文章分类
  • 文章归档
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

  • Git

  • 计算机小知识

  • 数据库

    • 教程概述
    • 数据的存储
    • 数据库的安装
    • 数据库的启停与连接
    • 数据库的管理
    • SQL 概述
    • 表的管理
    • SELECT 基础
    • 运算符
    • 聚合查询
    • 数据的排序
    • 数据的插入
    • 数据的删除
      • DROP TABLE​ 和 DELETE​
      • DELETE 语句的基本语法
      • 为 delete 指定条件
      • truncate
    • 数据的更新
    • 事务
    • 视图
    • 子查询
    • 函数
    • 谓词
    • CASE 表达式
    • 集合运算
    • 联结查询-JOIN
    • SQL 入门小结
    • 更多数据库
    • MySQL 的数据类型
    • 命令行的一些用法
    • 用户与权限管理
    • MySQL 的权限管理
    • mysqldump
    • mysqladmin
    • Liquibase
    • 表注释与字段注释
    • 编码类型
  • 计算机基础
  • 数据库
2023-11-22
目录

数据的删除

# 110.数据的删除

如果想将整个表删掉,可以使用 DROP TABLE 语句,但如果只想删除表中的数据,需使用 DELETE 语句。

‍ ‍

# DROP TABLE​ 和 DELETE​

两者的区别:

① DROP TABLE​语句 可以将表完全删除。删除之后再想插入数据,就必须使用 CREATE TABLE​ 语句重新创建。

② DELETE​语句 会留下表(容器),而删除表中的全部数据,因此可以通过 INSERT​ 语句再次向表中插入数据。

本节就是重点介绍 delete 语句。不管使用哪种方法删除数据,都要慎重,一旦误删,恢复数据是十分困难的。

‍

# DELETE 语句的基本语法

基本语法:

DELETE FROM <表名>;
1

使用该语句,就会删除表中的全部数据。

‍

例如清空 Product 表:

DELETE FROM Product;
1

注意:

  • 如果忘了写 FROM,会出错。原因是删除对象不是表,而是表中的数据行(记录)。这样想的话就很容易理解了吧 。
  • 如果写了多余的列名,也会出错,因为 DELETE 语句的对象是行而不是列,所以 DELETE 语句无法只删除部分列的数据(要删除列请使用 alter)

与 INSERT 语句相同,数据的更新也是以记录为基本单位进行的。下一节将要学习的 UPDATE 语句也是如此。

‍

# 为 delete 指定条件

想删除部分数据行时,可以像 SELECT 语句那样使用 WHERE 子句指定删除条件。语法:

DELETE FROM <表名>
 WHERE <条件>;

1
2
3

‍

假设我们要删除销售单价(sale_price )大于等于 4000 日元的数据:

DELETE FROM Product
 WHERE sale_price >= 4000;

1
2
3

‍

与 SELECT 语句不同的是,DELETE 语句中不能使用 GROUP BY 、 HAVING 和 ORDER BY 三类子句,而只能使用 WHERE 子句。

这也很好理解,GROUP BY 和 HAVING 是用来分组展示数据的,而 ORDER BY 是用来排序的,在删除表中数据时它们都起不到什么作用。

‍

# truncate

标准 SQL 中用来从表中删除数据的只有 DELETE 语句。

但是,很多数据库产品中还存在另外一种被称为 truncate 的语句。这些产品主要包括 Oracle、SQL Server、PostgreSQL、MySQL 和 DB2。truncate 是舍弃的意思,使用方法:

TRUNCATE <表名>;
1

truncate 只能删除表中的全部数据,不能指定条件。也正是因此,它删除数据比 delete 快很多。在需要删除全部数据行时,使用 truncate 可以缩短执行时间。

‍

此外,产品不同需要注意的地方也不尽相同。例如在 Oracle 中,把 TRUNCATE 定义为 DDL,而不是 DML。

因此,Oracle 中的 TRUNCATE 不能使用 ROLLBACK (事务的操作,后续会讲)。执行 TRUNCATE 的同时会默认执行 COMMIT 操作。

使用 TRUNCATE 时,请大家仔细阅读使用手册,多加注意,便利的工具往往还是会存在一些不足之处的。

‍

(完)

上次更新: 2024/12/4 21:15:24
数据的插入
数据的更新

← 数据的插入 数据的更新→

最近更新
01
2025 年 2 月记
02-28
02
最全面的浏览器教程-完结撒花
02-16
03
这个工具可以轻松搞到你的浏览器账户密码!
02-15
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式