从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

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

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

    • Spring基础
  • 主流框架

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

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 新闻合订本
    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

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

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

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

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

    • Spring基础
  • 主流框架

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

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 新闻合订本
    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

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

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • 计算机简史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

  • 数据库

    • 教程概述
    • 数据的存储
    • 数据库的安装
    • 数据库的启停与连接
    • 数据库的管理
    • 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 时,请大家仔细阅读使用手册,多加注意,便利的工具往往还是会存在一些不足之处的。 ‍ (完)

上次更新: 2025/5/5 17:15:09
数据的插入
数据的更新

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

最近更新
01
新闻合订本 2025-10
10-31
02
2025 年 10 月记
10-30
03
用 AI 批量优化思源笔记排版
10-15
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式