- MySQL入门很轻松(微课超值版)
- 云尚科技
- 848字
- 2021-03-29 01:04:57
4.5 删除数据表
对于不再需要的数据表,可以将其从数据库中删除。本节将详细讲解数据库中数据表的删除方法。
4.5.1 删除没有被关联的表
在MySQL中,使用DROP TABLE可以一次删除一个或多个没有被其他表关联的数据表。语法格式如下:
DROP TABLE [IF EXISTS]表1,表2,…,表n;
主要参数介绍如下。
- 表n:指要删除的表的名称,后面可以同时删除多个表,只需将删除的表名一次写在后面,相互之间用逗号隔开。
【实例13】删除数据表emp_01,输入如下语句:
DROP TABLE emp_01;
执行结果如图4-26所示。
使用“SHOW TABLES;”语句查看当前数据库中所有的数据表,查看结果如图4-27所示。从执行结果可以看出,数据库中已经没有了数据表emp_01,说明数据表删除成功。
图4-26 删除表emp_01
图4-27 数据表删除成功
4.5.2 删除被其他表关联的主表
在数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。如果必须要删除,可以先删除与它关联的子表,再删除父表,只是这样会同时删除两个表中的数据。如果想要单独删除父表,只需将关联的表的外键约束条件取消,然后再删除父表即可。
【实例14】删除存在关联关系的数据表。
在数据库mydbase中创建两个关联表,首先,创建表tb_1,SQL语句如下:
执行结果如图4-28所示。
接下来创建表tb_2,SQL语句如下:
执行结果如图4-29所示。
图4-28 创建数据表tb_1
图4-29 创建数据表tb_2
使用SHOW CREATE TABLE命令查看表tb_2的外键约束,SQL语句如下:
SHOW CREATE TABLE tb_2\G
执行结果如图4-30所示,从结果可以看到,在数据表tb_2上创建了一个名称为fk_tb_dt的外键约束。
图4-30 查看数据表的结构
下面直接删除父表tb_1,输入删除语句如下:
DROP TABLE tb_1;
执行结果如图4-31所示,可以看到,如前面所述,在存在外键约束时,父表不能被直接删除。
接下来,解除关联子表tb_2的外键约束,SQL语句如下:
ALTER TABLE tb_2 DROP FOREIGN KEY fk_tb_dt;
语句执行结果如图4-32所示,将取消表tb_1和tb_2之间的关联关系。
图4-31 直接删除父表
图4-32 取消表的关联关系
此时,再次输入删除语句,将原来的父表tb_1删除,SQL语句如下:
DROP TABLE tb_1;
执行结果如图4-33所示。最后通过“SHOW TABLES;”语句查看数据表列表,结果如图4-34所示,可以看到,数据表列表中已经不存在名称为tb_1的表。
图4-33 删除父表tb_1
图4-34 查看数据表列表