我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQL 表的删除(DROP TABLE)和更新(ALTER TABLE)

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQL 表的删除(DROP TABLE)和更新(ALTER TABLE)

SQL 表的删除(DROP TABLE)和更新(ALTER TABLE)

目录
  • 一、表的删除(DROP TABLE 语句)
  • 二、表定义的更新(ALTER TABLE 语句)
  • 三、向 Product 表中插入数据
  • 请参阅

学习要点

  • 使用 DROP TABLE 语句来删除表。

  • 使用 ALTER TABLE 语句向表中添加列或者从表中删除列。

一、表的删除(DROP TABLE 语句)

此前介绍的都是关于 Product 表的内容的创建,下面我们就来介绍一下删除表的方法。删除表的 SQL 语句非常简单,只需要一行 DROP TABLE 语句即可。

KEYWORD

  • DROP TABLE 语句

语法 3 删除表时使用的 DROP TABLE 语句

DROP TABLE <表名>;

如果想要删除 Product 表,只需要像代码清单 3 那样书写 SQL 语句即可 [1]

代码清单 3 删除 Product

DROP TABLE Product;

DROP 在英语中是“丢掉”“舍弃”的意思。需要特别注意的是,删除的表是无法恢复的 [2]。即使是被误删的表,也无法恢复,只能重新创建,然后重新插入数据。

如果不小心删除了重要的业务表,那就太悲剧了。特别是存储了大量数据的表,恢复起来费时费力,请大家务必注意!

法则 12

删除了的表是无法恢复的。

在执行 DROP TABLE 语句之前请务必仔细确认。

二、表定义的更新(ALTER TABLE 语句)

有时好不容易把表创建出来之后才发现少了几列,其实这时无需把表删除再重新创建,只需使用变更表定义的 ALTER TABLE 语句就可以了。 ALTER 在英语中就是“改变”的意思。下面就给大家介绍该语句通常的使用方法。

KEYWORD

  • ALTER TABLE 语句

首先是添加列时使用的语法。

语法 4 添加列的 ALTER TABLE 语句

ALTER TABLE <表名> ADD COLUMN <列的定义>;

特定的 SQL

Oracle 和 SQL Server 中不用写 COLUMN

ALTER TABLE <表名> ADD <列名> ;

另外,在 Oracle 中同时添加多列的时候,可以像下面这样使用括号。

ALTER TABLE <表名> ADD (<列名>,<列名>,……);

例如,我们可以使用代码清单 4 中的语句在 Product 表中添加这样一列,product_name_pinyin(商品名称(拼音)),该列可以存储 100 位的可变长字符串。

代码清单 4 添加一列可以存储 100 位的可变长字符串的 product_name_pinyin

DB2 PostgreSQL MySQL

ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(100);

Oracle

ALTER TABLE Product ADD (product_name_pinyin VARCHAR2(100));

SQL Server

ALTER TABLE Product ADD product_name_pinyin VARCHAR(100);

反之,删除表中某列使用的语法如下所示。

语法 5 删除列的 ALTER TABLE 语句

ALTER TABLE <表名> DROP COLUMN <列名>;

特定的 SQL

Oracle 中不用写 COLUMN

ALTER TABLE <表名> DROP <列名> ;

另外,在 Oracle 中同时删除多列的时候,可以像下面这样使用括号来实现。

ALTER TABLE <表名> DROP (<列名>,<列名>,……);

例如,我们可以使用代码清单 5 中的语句来删除之前添加的 product_name_pinyin 列。

代码清单 5 删除 product_name_pinyin

SQL Server DB2 PostgreSQL MySQL

ALTER TABLE Product DROP COLUMN product_name_pinyin;

Oracle

ALTER TABLE Product DROP (product_name_pinyin);

ALTER TABLE 语句和 DROP TABLE 语句一样,执行之后无法恢复。误添的列可以通过 ALTER TABLE 语句删除,或者将表全部删除之后重新再创建。

法则 13

表定义变更之后无法恢复。

在执行 ALTER TABLE 语句之前请务必仔细确认。

三、向 Product 表中插入数据

最后让我们来尝试一下向表中插入数据。从下一章开始,大家将会使用插入到 Product 表中的数据,来学习如何编写操作数据的 SQL 语句。

Product 表中插入数据的 SQL 语句如代码清单 6 所示。

代码清单 6 向 Product 表中插入数据的 SQL 语句

SQL Server PostgreSQL

-- DML :插入数据
BEGIN TRANSACTION;------------------①

INSERT INTO Product VALUES ("0001", "T恤衫", "衣服", 1000, 500, "2009-09-20");
INSERT INTO Product VALUES ("0002", "打孔器", "办公用品", 500, 320, "2009-09-11");
INSERT INTO Product VALUES ("0003", "运动T恤", "衣服", 4000, 2800, NULL);
INSERT INTO Product VALUES ("0004", "菜刀", "厨房用具", 3000, 2800, "2009-09-20");
INSERT INTO Product VALUES ("0005", "高压锅", "厨房用具", 6800, 5000, "2009-01-15");
INSERT INTO Product VALUES ("0006", "叉子", "厨房用具", 500, NULL, "2009-09-20");
INSERT INTO Product VALUES ("0007", "擦菜板", "厨房用具", 880, 790, "2008-04-28");
INSERT INTO Product VALUES ("0008", "圆珠笔", "办公用品", 100, NULL,"2009-11-11");

COMMIT;

特定的 SQL

DBMS 不同,代码清单 6 中的 DML 语句也略有不同。

在 MySQL 中运行时,需要把 ① 中的 BEGIN TRANSACTION; 改写成

START TRANSACTION;

在 Oracle 和 DB2 中运行时,无需使用 ① 中的 BEGIN TRANSACTION;(请予以删除)。

这些在不同的 DBMS 中使用的 DML 语句,可以从这里下载。

使用插入行的指令语句 INSERT,就可以把表 2 中的数据都插入到表中了。开头的 BEGIN TRANSACTION 语句是开始插入行的指令语句,结尾的 COMMIT 语句是确定插入行的指令语句。这些指令语句将会在 数据的插入 中详细介绍,大家不必急于记住这些语句。

专栏

表的修改

本节将名为 Product 的表作为例子进行了讲解,估计会有些读者在匆忙中把表名误写成了 Poduct,创建出了名称错误的表,这可怎么办呢?

如果还没有向表中插入数据,那么只需要把表删除,再重新创建一个名称正确的表就可以了。可是如果在发现表名错误之前就已经向表中插入了大量数据,再这样做就麻烦了。毕竟插入大量的数据既费时又费力。抑或起初决定好的表名,之后又觉得不好想换掉,这种情况也很麻烦。

其实很多数据库都提供了可以修改表名的指令(RENAME)来解决这样的问题。例如,如果想把 Poduct 表的名称变为 Product,可以使用代码清单 A 中的指令。

KEYWORD

  • RENAME

代码清单 A 变更表名

Oracle PostgreSQL

ALTER TABLE Poduct RENAME TO Product;

DB2

RENAME TABLE Poduct TO Product;

SQL Server

sp_rename "Poduct", "Product";

MySQL

RENAME TABLE Poduct to Product;

通常在 RENAME 之后按照 <变更前的名称>、<变更后的名称> 的顺序来指定表的名称。

各个数据库的语法都不尽相同,是因为标准 SQL 并没有 RENAME,于是各个数据库便使用了各自惯用的语法。如上所述,在创建了错误的表名,或者想要保存表的备份时,使用这些语句非常方便。但美中不足的是,由于各个数据库的语法不同,很难一下子想出恰当的指令。这时大家就可以来参考本专栏。

请参阅

  • 数据库是什么
  • 数据库的结构
  • SQL 概要
  • 表的创建
  • 表的删除和更新

(完)


  1. 随后还需使用 Product 表来学习相关知识,请不要删除 Product 表。如果已经删除,请重新创建 Product 表。 ↩︎

  2. 其实很多 RDBMS 都预留了恢复的功能,但还是请大家认为是无法恢复的。 ↩︎

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQL 表的删除(DROP TABLE)和更新(ALTER TABLE)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SQL 表的删除(DROP TABLE)和更新(ALTER TABLE)

目录一、表的删除(DROP TABLE 语句)二、表定义的更新(ALTER TABLE 语句)三、向 Product 表中插入数据请参阅学习要点使用 DROP TABLE 语句来删除表。使用 ALTER TABLE 语句向表中添加列或者从表中删除列。一、表的删
SQL 表的删除(DROP TABLE)和更新(ALTER TABLE)
2018-04-30

关于SQL表中drop table和delete table的区别

问题:使用阿里云的maxcompute产品发现有中间表的产生,需要删除。 删表是一个比较危险的操作,这次给了个机会就想尝试下,记得在mysql表中有两种操作,drop与delete,但是在maxcompute产品中尝试时,该产品只支持dro
2023-01-28

关于SQL表中drop table和delete table的区别

删表是一个比较危险的操作,这次给了个机会就想尝试下,记得在mysql表中有两种操作,drop与delete,但是在maxcompute产品中尝试时,该产品只支持drop操作。这里说下二者操作的区别,需要的朋友可以参考下
2023-01-28

深入解析Golang中链表的插入、删除、更新和查询操作

Golang 中链表的增删改查操作详解链表(linked list)是一种常见的数据结构,它由一组结点(node)组成,每个结点包含数据和指向下一个结点的指针。相比于数组,链表的优势在于插入和删除操作的时间复杂度为 O(1),而不受链表长
深入解析Golang中链表的插入、删除、更新和查询操作
2024-01-29

编程热搜

目录