DDL与DML解析
在数据库中,可以把 SQL 分为两个部分:数据定义语言 (DDL)和数据操作语言 (DML) 。
一、DDL(Data Definition Language,数据定义语言)
核心作用:定义 / 修改数据库、表、视图等对象「结构」,而非数据,操作后通常自动提交事务(无法回滚)。
命令 | 功能描述 | 典型场景 & 代码示例 |
---|---|---|
CREATE | 创建数据库 / 表 / 视图 / 索引等对象 | 1. 创建数据库: 2. 创建表: |
ALTER | 修改现有对象的结构(字段、约束等) | 1. 新增字段: 2. 修改字段类型: |
DROP | 删除数据库 / 表 / 视图等对象(不可逆!) | 1. 删除表: 2. 删除数据库: |
TRUNCATE | 清空表中所有数据(保留表结构,速度比 DELETE 快) | TRUNCATE TABLE user; (注意:会重置自增主键,无法回滚) |
RENAME | 重命名表 / 数据库(部分数据库支持) | MySQL:RENAME TABLE user TO sys_user; |
**二、DML(Data Manipulation Language,数据操纵语言)**
核心作用:增删改查数据库表的「数据」,支持事务控制(可回滚)。
命令 | 功能描述 | 典型场景 & 代码示例 |
---|---|---|
SELECT | 查询表中的数据(最常用) | 1. 全量查询: 2. 条件查询: |
INSERT | 向表中插入新数据 | 1. 指定字段插入: 2. 全字段插入: |
UPDATE | 修改表中已有数据 | 条件更新(必加 WHERE!否则全表修改):UPDATE user SET age = 23 WHERE name = 'Alice'; |
DELETE | 删除表中的数据 | 条件删除:DELETE FROM user WHERE age < 18; (无 WHERE 则删除全表数据,可回滚) |