SQL数据定义语言DDL全解析

数据定义功能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; -- 核心语句:清空表数据,保留表结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值