Skip to content

DROP 删除表

DROP 语句用于删除数据库对象,如表、数据库、索引等。本章介绍 DROP 语句的使用方法。

删除表

基本语法

sql
DROP TABLE table_name;

删除单个表

sql
-- 删除表
DROP TABLE users;

-- 如果表存在则删除
DROP TABLE IF EXISTS users;

删除多个表

sql
-- 同时删除多个表
DROP TABLE users, orders, products;

删除数据库

sql
-- 删除数据库
DROP DATABASE mydb;

-- 如果数据库存在则删除
DROP DATABASE IF EXISTS mydb;

DROP vs TRUNCATE vs DELETE

操作DROPTRUNCATEDELETE
删除内容表结构+数据仅数据仅数据
速度很快
回滚不可不可可以
WHERE不支持不支持支持
触发器不触发不触发触发

删除索引

sql
-- 删除索引
DROP INDEX idx_name ON users;

-- MySQL 语法
ALTER TABLE users DROP INDEX idx_name;

删除视图

sql
-- 删除视图
DROP VIEW view_name;

-- 如果视图存在则删除
DROP VIEW IF EXISTS view_name;

实战示例

清理临时表

sql
-- 删除临时表
DROP TEMPORARY TABLE IF EXISTS temp_users;

重建表

sql
-- 删除并重建表
DROP TABLE IF EXISTS users;
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50)
);

注意事项

  1. DROP 操作不可恢复
  2. 删除前务必备份
  3. 检查外键依赖
  4. 使用 IF EXISTS 避免错误

最佳实践

sql
-- 1. 先检查表是否存在
SHOW TABLES LIKE 'users';

-- 2. 备份数据
CREATE TABLE users_backup AS SELECT * FROM users;

-- 3. 删除表
DROP TABLE IF EXISTS users;

小结

  • DROP TABLE:删除表
  • DROP DATABASE:删除数据库
  • DROP INDEX:删除索引
  • IF EXISTS:避免错误
  • 不可恢复,需谨慎

下一步: 学习 CONSTRAINTS 约束