![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=1739526915-Gn9KETjaTlhTTo0RE31NQ3sgiOnXath0-0-9854f77d052cf56353d3cc56d7b9dc62)
对于不再需要的数据表,可以将其从数据库中删除。本节将详细讲解数据库中数据表的删除方法。
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=1739526915-TbaN4RIFDGKo4V4NlCxWlgMjvZfKwEAZ-0-0a29f0d2c08ea3dfebba2a0631181c72)
图4-26 删除表emp_01
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3620.jpg?sign=1739526915-IuhKJrf42ObReJ4G5vX6NG72MRqpYJEk-0-bc8fedd89dcf0e799e4bf7ac20686e13)
图4-27 数据表删除成功
4.5.2 删除被其他表关联的主表
在数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。如果必须要删除,可以先删除与它关联的子表,再删除父表,只是这样会同时删除两个表中的数据。如果想要单独删除父表,只需将关联的表的外键约束条件取消,然后再删除父表即可。
【实例14】删除存在关联关系的数据表。
在数据库mydbase中创建两个关联表,首先,创建表tb_1,SQL语句如下:
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_23969.jpg?sign=1739526915-6k7IQ8IfG2Db5uFP3ZKwNVdVFWa3N5cZ-0-3ac47f1c94c75d39d4828a7a0927fd48)
执行结果如图4-28所示。
接下来创建表tb_2,SQL语句如下:
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_23970.jpg?sign=1739526915-4VNCQ1hlGV31b4PtrXURWPpUdH3Rp4GO-0-9dda4441133f31c48bf1edd159d1be5c)
执行结果如图4-29所示。
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3699.jpg?sign=1739526915-SFC1ssNW8A56n4T3LsVKtlv3j8fmygps-0-75eaaa5e517248570680616b41bf9dd4)
图4-28 创建数据表tb_1
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P92_3700.jpg?sign=1739526915-jX6mf685noszoBQggJmcpQugRgVpIjw0-0-e88a928d4810084be155c229cb29aee2)
图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=1739526915-p4K7lXwFYDaoWcaooZrPOZHzh9mXQwQe-0-6977b86ef1887ede785fd2ae32651261)
图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=1739526915-pXn2rY3Jek7MJbXoFb5Wc4MFXkqonwUa-0-1c4a177874993e9ea968f0571bfa1cd4)
图4-31 直接删除父表
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P93_3734.jpg?sign=1739526915-cYNLL9aFHOE0u3XGzkJiduMIem0RN0tc-0-96bb504b4b198860c6d13b030341068b)
图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=1739526915-vIS3V5fYyR2OVI88smEOTTLUECpXWSTk-0-5065058438658e08bd0af3fea31483ad)
图4-33 删除父表tb_1
![](https://epubservercos.yuewen.com/D53A3A/17640317506035206/epubprivate/OEBPS/Images/Figure-P93_3746.jpg?sign=1739526915-e0DcUYtegDplNpFLxdUBKbO3w4xzQ287-0-3cf364f9bebc2ad00e4ca5fbf71bca92)
图4-34 查看数据表列表