数据定义功能DDL(Data Definition Language)是 SQL 的主要功能之一。利用数据定义功能可以完成创建(CREATE)、修改(ALTER)、删除(DROP)、清空(TRUNCATE)数据表结构以及创建、删除索引等操作。
创建数据表
数据表定义包含定义表名、字段名、字段数据类型、字段的属性、主键、外键与参照表、表约束规则等。
在 SQL 语言中使用 CREATE TABLE 语句来创建数据表。
语法格式
CREATE TABLE 表名 (
-- 字段1:通常为主键(唯一标识记录)
字段名1 数据类型
[PRIMARY KEY] -- 主键约束(必选,确保唯一性和非空)
[自增规则], -- 可选,如AUTO_INCREMENT(MySQL)、SERIAL(PostgreSQL),
-- 字段2~N:业务字段(按需求定义)
字段名2 数据类型
[NOT NULL] -- 非空约束(可选,表字段必填)
[UNIQUE] -- 唯一约束(可选,表字段值不重复)
[DEFAULT 默认值] -- 可选,字段无输入时的默认值
[CHECK (条件表达式)], -- 可选,限制字段值范围,
-- 其他字段...
字段名N 数据类型
[约束条件1]
[约束条件2]
);
格式各部分说明
CREATE TABLE orders (
order_id INT
PRIMARY KEY
AUTO_INCREMENT, -- 主键+自增,
user_id INT
NOT NULL, -- 非空(关联用户表主键),
order_amount DECIMAL(10,2)
NOT NULL
CHECK (order_amount > 0), -- 非空+金额为正,
order_status VARCHAR(20)
DEFAULT '待支付', -- 默认状态,
create_time TIMESTAMP
DEFAULT CURRENT_TIMESTAMP -- 默认当前时间
);
修改表结构
ALTER TABLE 语句用于修改表的结构。
功能包括增加字段、删除字段、修改字段的类型和大小等。
(1)修改字段类型及大小,格式为
ALTER TABLE <表名> ALTER <字段名> <数据类型> (<大小>)
【 例 】 使用 SQL 语句修改表,修改 Order 表的“order_status”字段,将该字段长度改为10字符。
ALTER TABLE orders ALTER order_status VARCHAR(10);
(2)添加字段,格式为
ALTER TABLE <表名> ADD 字段名> <数据类型> (<大小>)
【 例 】 使用 SQL 语句修改表,为 Order表增加一个“address_remark(收货地址备注)”字段(VARCHAR字符串类型,长度200)。
ALTER TABLE orders ADD COLUMN address_remark VARCHAR(200); -- 字符类型用VARCHAR,长度200
(3)删除字段,格式为
ALTER TABLE <表名> DROP <字段名>
【 例 】 使用 SQL 语句修改表,删除 Student 表的“address_remark(收货地址备注)”字段。
ALTER TABLE orders DROP COLUMN address_remark; -- 核心语句:删除指定字段
删除数据表
DROP TABLE 语句用于删除表,包括表中数据及表结构(字段、约束、索引等)。
格式为:
DROP TABLE < 表名 >
【 例 】 使用 SQL 语句删除表 Order 。
DROP TABLE Order; -- 核心语句:删除指定的Order表
清空数据表
TRUNCATE TABLE 语句用于清空表(保留结构)。
格式为:
TRUNCATE TABLE <表名>
【 例 】 使用 SQL 语句清空表 Order 。
TRUNCATE TABLE Order; -- 核心语句:清空表数据,保留表结构