MySQL入门很轻松(微课超值版)
上QQ阅读APP看书,第一时间看更新

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 查看数据表列表