![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=1739177292-tZd4YCJWSgMFlysEWWN3TJy1QpsYtuVt-0-b368e0c1518b9b092cf69a55dc7300d2)
对于不再需要的数据表,可以将其从数据库中删除。本节将详细讲解数据库中数据表的删除方法。
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=1739177292-JCtTORPXPKuW7hNu90o5axMkvnrfQzCa-0-87f062f3603abfe924a1176b29ec09dc)
图4-26 删除表emp_01
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3620.jpg?sign=1739177292-X06xhTQf0e1HmzladsC2zs1UiPBQVUA4-0-c70227320fbd68e814cd4238ea609747)
图4-27 数据表删除成功
4.5.2 删除被其他表关联的主表
在数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。如果必须要删除,可以先删除与它关联的子表,再删除父表,只是这样会同时删除两个表中的数据。如果想要单独删除父表,只需将关联的表的外键约束条件取消,然后再删除父表即可。
【实例14】删除存在关联关系的数据表。
在数据库mydbase中创建两个关联表,首先,创建表tb_1,SQL语句如下:
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_23969.jpg?sign=1739177292-9ofHi2RyspKZolGYIFyB0KWAl74Qwvue-0-a7cc9eeccf6f808f4bf3814344f8ec43)
执行结果如图4-28所示。
接下来创建表tb_2,SQL语句如下:
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_23970.jpg?sign=1739177292-TS91QkU1lLvp4yYOgvzCCQm4KHrCvfmj-0-cd20a81911a2aca1393034c4f7fadbc5)
执行结果如图4-29所示。
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3699.jpg?sign=1739177292-xJE1Jq1VLjfJR41hehdpKs15LWy0j7mB-0-4f86db304995af94a52f794d61ec8fed)
图4-28 创建数据表tb_1
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3700.jpg?sign=1739177292-qlMlgGYoTkZbDqY1Ac7NUvwlxBdSHuRZ-0-e961ed6f03b30a8e91fc21802b450e8e)
图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=1739177292-frhdeQEp3N57Wu78kOx6VeX2guXxXYe5-0-7a8d75eb92fde4f24c001dea6b58f1a0)
图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=1739177292-grxw4FTED8aoLTp2nrYkIGs8ToK7q2O3-0-d21df0dfbc4ad4faca661829031879dd)
图4-31 直接删除父表
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P93_3734.jpg?sign=1739177292-IshvPkhjklMrn4G8cgtXaCdlHjMPV386-0-18c0174e0eb2a8132a0b25ce79c9a879)
图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=1739177292-pkwxQiXvRHnyDcCdQmvIx31SNamk10Cu-0-89b730deba570aab2ed737c64b60ef03)
图4-33 删除父表tb_1
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P93_3746.jpg?sign=1739177292-IQVR9mFuoZhUhohoNgcZKezamRvCwL5k-0-66f81bf8006181dc5d68a87fc7f360d6)
图4-34 查看数据表列表