DDL(Data Definition Language,数据定义语言)是 SQL 语言的一部分,用于定义和管理数据库中的数据结构,包括创建、修改、删除数据库对象(如数据库、表、视图、索引等)。
常见的 DDL 语句及其功能:
- 创建数据库
sql
CREATE DATABASE [IF NOT EXISTS] 数据库名 [CHARACTER SET 字符集] [COLLATE 排序规则];
示例:创建一个名为company
的数据库
sql
CREATE DATABASE IF NOT EXISTS company CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- 删除数据库
sql
DROP DATABASE [IF EXISTS] 数据库名;
示例:删除company
数据库
sql
DROP DATABASE IF EXISTS company;
- 创建表
sql
CREATE TABLE [IF NOT EXISTS] 表名 (字段名1 数据类型 [约束条件] [COMMENT '注释'],字段名2 数据类型 [约束条件] [COMMENT '注释'],...[表级约束]
) [COMMENT '表注释'] [其他选项];
示例:创建员工表emp
sql
CREATE TABLE IF NOT EXISTS emp (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '编号',name VARCHAR(50) NOT NULL COMMENT '姓名',age TINYINT UNSIGNED COMMENT '年龄',hire_date DATE COMMENT '入职日期'
) COMMENT '员工信息表';
修改表
- 添加字段
sql
ALTER TABLE 表名 ADD 字段名 数据类型 [约束] [COMMENT '注释'];
- 修改字段数据类型
sql
ALTER TABLE 表名 MODIFY 字段名 新数据类型;
- 修改字段名和数据类型
sql
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
- 删除字段
sql
ALTER TABLE 表名 DROP 字段名;
- 修改表名
sql
ALTER TABLE 旧表名 RENAME TO 新表名;
删除表
sql
DROP TABLE [IF EXISTS] 表名;
- 创建索引
sql
CREATE [UNIQUE] INDEX 索引名 ON 表名(字段名);
- 删除索引
sql
DROP INDEX 索引名 ON 表名;
DDL 语句执行后会自动提交事务,对数据库结构的修改是永久性的。在执行 DROP 等危险操作时,应格外谨慎,最好先做好数据备份