![MySQL入门很轻松(微课超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/406/32858406/b_32858406.jpg)
4.5 删除数据表
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P91_23967.jpg?sign=1739597238-YEfSZEF8hHZmnPNhO31rvau8JUHBI9uS-0-d9b873f48e31228af978dd4f2c5c7a9a)
对于不再需要的数据表,可以将其从数据库中删除。本节将详细讲解数据库中数据表的删除方法。
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,说明数据表删除成功。
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3619.jpg?sign=1739597238-aVxAxbhpLz4Xnfr219Bfu1V9dwJ2Dm0t-0-c4b3a7b7527ae69b73a4cdf3683f2d8d)
图4-26 删除表emp_01
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3620.jpg?sign=1739597238-tTnuLtDO3OWVaCUjYwnnRKzQ8RpmNJaB-0-eff8c7ebf11966d1b6b6f3e408c2a266)
图4-27 数据表删除成功
4.5.2 删除被其他表关联的主表
在数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。如果必须要删除,可以先删除与它关联的子表,再删除父表,只是这样会同时删除两个表中的数据。如果想要单独删除父表,只需将关联的表的外键约束条件取消,然后再删除父表即可。
【实例14】删除存在关联关系的数据表。
在数据库mydbase中创建两个关联表,首先,创建表tb_1,SQL语句如下:
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_23969.jpg?sign=1739597238-1Y5s99GD70AExQEaaBUsugmIIFiwbbef-0-00369951e64bb1f3c96844846c59048d)
执行结果如图4-28所示。
接下来创建表tb_2,SQL语句如下:
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_23970.jpg?sign=1739597238-DejaITazCUprlK9Goj2JnWt3V9QJEi7m-0-864e5328370a1109f3013e6331fb0a08)
执行结果如图4-29所示。
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3699.jpg?sign=1739597238-t8pldGsBBQbdArWgxXoZEnZ0V9NgLVP6-0-b3f495315ba42ff72788b7f098c83da8)
图4-28 创建数据表tb_1
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3700.jpg?sign=1739597238-gwm3jcsUwECPAXVpQLYQNL45KVK2kmsp-0-3afc4e0d2f88846f0bb9d0b9a149057b)
图4-29 创建数据表tb_2
使用SHOW CREATE TABLE命令查看表tb_2的外键约束,SQL语句如下:
SHOW CREATE TABLE tb_2\G
执行结果如图4-30所示,从结果可以看到,在数据表tb_2上创建了一个名称为fk_tb_dt的外键约束。
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P93_3713.jpg?sign=1739597238-WzpPGc8qamrmqOLVAtsVIpBvWt7MiXxT-0-e47be81aa319d0ac5e152c08bfc05276)
图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之间的关联关系。
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P93_3733.jpg?sign=1739597238-AU43r3olrmw0u89QZgOPRqsHdO3KgF34-0-d7348d8cb759887adbf3eb631b9e86b1)
图4-31 直接删除父表
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P93_3734.jpg?sign=1739597238-SSONjtSqm2kbclpa1JuYAs5hRjxVOmjz-0-85c213b399375b920ddad5fd87351576)
图4-32 取消表的关联关系
此时,再次输入删除语句,将原来的父表tb_1删除,SQL语句如下:
DROP TABLE tb_1;
执行结果如图4-33所示。最后通过“SHOW TABLES;”语句查看数据表列表,结果如图4-34所示,可以看到,数据表列表中已经不存在名称为tb_1的表。
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P93_3745.jpg?sign=1739597238-VfhWuuRYtitIWUUIuPIdGgGXsAb96SED-0-230cfdbc3154c081a8fabfa738d559a6)
图4-33 删除父表tb_1
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P93_3746.jpg?sign=1739597238-hxVS6yPlMJOwSnvRDuA2cjh7EA9vFjN7-0-af6bdb09c8fa092eb94209a60ce16d91)
图4-34 查看数据表列表