跳到主要内容

什么是数据定义语言DDL

· 阅读需 3 分钟
素明诚
Full stack development

数据定义语言(Data Definition Language,简称DDL)是一组用于定义和管理数据库结构和对象的 SQL 语句。这些语句用于创建、修改和删除数据库中的各种对象,如数据库本身、表、索引、视图、存储过程和触发器等。DDL 主要用于描述数据库的模式(schema),即数据库的逻辑结构。

DDL 的主要操作

创建(CREATE)用于创建新的数据库对象。

创建数据库

CREATE DATABASE 数据库名;

创建表

CREATE TABLE 表名 (
列名1 数据类型 [约束],
列名2 数据类型 [约束],
...
);

修改(ALTER)用于修改现有的数据库对象。

修改表结构添加、修改或删除列。

-- 添加列
ALTER TABLE 表名 ADD COLUMN 列名 数据类型;

-- 修改列
ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型;

-- 删除列
ALTER TABLE 表名 DROP COLUMN 列名;

删除(DROP)用于删除数据库对象。

删除数据库

DROP DATABASE 数据库名;

删除表

DROP TABLE 表名;

重命名(RENAME)用于重命名数据库对象。

重命名表

RENAME TABLE 旧表名 TO 新表名;

**截断(TRUNCATE)**用于快速删除表中的所有数据,但保留表结构。

TRUNCATE TABLE 表名;

DDL 的特点

**自动提交,**DDL 语句在执行后会自动提交(Auto-Commit),无法通过事务回滚。因此,在执行 DDL 操作时需要格外谨慎。

影响数据库结构,DDL 直接影响数据库的结构和定义,而不仅仅是数据内容。

权限控制,执行 DDL 操作通常需要更高的数据库权限,普通用户可能无法执行某些 DDL 语句。

使用 DDL 的注意事项

备份数据,在执行可能影响数据的 DDL 操作(如 DROP、ALTER)之前,务必备份数据。

影响范围,了解 DDL 操作的影响范围,避免对生产环境造成不必要的影响。

事务管理,由于 DDL 语句会自动提交,需要在事务处理中慎重使用。

实际应用示例

创建一个名为employees的表

CREATE TABLE employees (
employee_id INT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
hire_date DATE
);

employees表中添加一个新的列salary

ALTER TABLE employees ADD COLUMN salary DECIMAL(10, 2);

删除employees

DROP TABLE employees;

DDL 是数据库管理中的基础部分,负责定义和管理数据库的结构