1. DROP TABLE [IF EXISTS] <表名1> [ , <表名2> , <表名3> …];

1.语法说明如下:

  • <表名>:被删除的表名。DROP TABLE 语句可以同时删除多个表,用户必须拥有该命令的权限。
  • 表被删除时,所有的表数据和表定义会被取消,所以使用本语句要小心。
  • 表被删除时,用户在该表上的权限并不会自动被删除。
  • 参数IF EXISTS用于在删除前判断删除的表是否存在,加上该参数后,在删除表的时候,如果表不存在,SQL 语句可以顺利执行,但会发出警告(warning)。

注:在删除表的同时,表的结构和表中所有的数据都会被删除,因此在删除数据表之前最好先备份,以免造成无法挽回的损失。

2.示例演示

  1. drop table 表名;
  2. drop table table_1
  3. -- 若表存在,直接删除,不存在则报错 Unknown table 'runoob_backup1'
  4. DROP TABLE `runoob_backup1`
  5. -- 无论存在不存在都不会报错,如果不存在会发出警告
  6. 0 行受到影响, 1 个警告
  7. 执行耗时 : 0.001 sec
  8. 传送时间 : 1.028 sec
  9. 总耗时 : 1.029 sec
  10. Note Code : 1051
  11. Unknown table 'runoob_backup1'

3.关联场景

  1. CREATE TABLE tb_school ( id INT ( 11 ) PRIMARY KEY, name VARCHAR ( 22 ) );
  2. CREATE TABLE tb_classroom (id INT(11) PRIMARY KEY,schoolId INT(11),
  3. CONSTRAINT fk_emp_school FOREIGN KEY(schoolId) REFERENCES tb_school(id)
  4. )

如果主父两张表存在关联关系,直接删除主表会报错,方法如下
image.png
方法1:先删除子表,在删除主表

  1. DROP TABLE IF EXISIS tb_classroom
  2. DROP TABLE IF EXISIS tb_shool

方法2:取消外键关系,在删除

  1. ALTER TABLE tb_classroom DROP FOREIGN KEY fk_emp_school
  2. DROP TABLE IF EXISIS tb_shool