本教程介绍如何使用SQLDROP TABLE语句删除数据库中的一个或多个表。
1. SQL DROP TABLE语句简介
随着数据库在应用过程不断的数据增加,有时需要从数据库中删除过时的冗余表或不用的表。 要删除表,可使用DROP TABLE语句。
以下是DROP TABLE语句的语法。
DROP TABLE [IF EXISTS] table_name;
要删除现有表,可在DROP TABLE子句后指定表的名称。 如果要删除的表不存在,则数据库系统会发出错误。
为了防止删除不存在的表的错误,使用可选子句IF EXISTS。 如果使用IF EXISTS选项,如果删除一个不存在的表,数据库系统将不会抛出任何错误。 某些数据库系统会发出警告或通知。
注意,有些数据库系统不支持IF EXISTS选项。 支持IF EXISTS选项的是MySQL,PostgreSQL和SQL Server 2016。
DROP TABLE语句永久删除表的数据和结构,某些数据库系统要求表中的记录必须为空时才能从数据库中删除。 这有助于防止意外删除仍在使用的表。
要删除表中的所有数据,可以使用DELETE或TRUNCATE TABLE语句。
要删除由另一个表的外键约束引用的表,必须在删除表之前禁用或删除外部约束。
2. SQL DROP TABLE示例
下面创建一个用于练习DROP TABLE语句的新表。
以下语句创建一个名为demo_contacts的新表,用于存储员工的紧急联系人。
CREATE TABLE demo_contacts ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, relationship VARCHAR(50) NOT NULL, employee_id INT NOT NULL );
以下语句用于删除demo_contacts表:
DROP TABLE demo_contacts;
3. SQL DROP TABLE - 删除多个表
DROP TABLE语句允许同时删除多个表。 为此,需要在DROP TABLE子句之后指定逗号分隔表名称的列表,如下所示:
DROP TABLE table_name1,table_name2,...;
然后,数据库系统逐个删除指定的所有表。
在本教程中,我们已经学习了如何使用SQLDROP TABLE语句删除数据库中的一个或多个表。