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
| 操作 | DROP | TRUNCATE | DELETE |
|---|---|---|---|
| 删除内容 | 表结构+数据 | 仅数据 | 仅数据 |
| 速度 | 快 | 很快 | 慢 |
| 回滚 | 不可 | 不可 | 可以 |
| 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)
);注意事项
- DROP 操作不可恢复
- 删除前务必备份
- 检查外键依赖
- 使用 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 约束