CREATE TABLE table_dept( id INT NOT NULL PRIMARY KEY IDENTITY(1,1), name NVARCHAR(20) NOT NULL COMMENT('部门名称') -- 带注释的列)CREATE TABLE table_employee( id INT NOT NULL PRIMARY KEY IDENTITY(1,1), --设置主键,自增(标识种子和标识增量均为 1), name COLLATE Chinese_PRC_CIAS NOT NULL UNIQUE, --不允许为 NULL 的列,列排序规则设为 Chinese_PRC_CIAS,并添加 Unique 约束 age INT 18 NOT NULL DEFAULT 18 CONSTRAINT CK_age CHECK(age > 0 AND age < 120), -- 带约束的列,且默认值为 18 gender NCHAR(1) NOT NULL DEFAULT ('男'), deptId INT CONSTRAINT FK_table_employee_dept FOREIGN KEY --外键约束 REFERENCES dept(id) -- 关联 dept 表的 id 字段 ON UPDATE CASCADE -- 外键约束更新规则设为“层叠” ON DELETE SET NULL -- 外键约束删除规则设为“置 NULL”)CREATE TABLE table_order( id INT IDENTITY(1,1) PRIMARY KEY, price decimal(17,2) NOT NULL, num INT NOT NULL, total AS (price * num))
二、修改数据表
1、简单字段操作
ALTER TABLE table_dept ALTER COLUMN name NVARCHAR(25) COLLATE Chinese_PRC_CI_AS NOT NULL -- 修改字段ALTER TABLE table_dept ADD remark NVARCHAR(50) -- 添加字段 remarkALTER TABLE table_dept DROP COLUMN remark -- 删除字段
2、CHECK 约束操作
ALTER TABLE table_employee ADD CONSTRAINT CK_gender (gender ='男' OR gender ='女') -- 添加 CHECK 约束ALTER TABLE table_employee WITH NOCHECK ADD -- 不对已有数据检查,CHECK 默认会对原有数据检查 CONSTRAINT CK_gender (gender ='男' OR gender ='女') -- 添加 CHECK 约束ALTER TABLE table_employee NOCHECK CONSTRAINT CK_gender,CK_age -- 禁用多个约束ALTER TABLE table_employee NOCHECK CONSTRAINT ALL -- 禁用所有约束ALTER TABLE table_employee CHECK CONSTRAINT CK_gender,CK_age -- 启用多个约束ALTER TABLE table_employee CHECK CONSTRAINT ALL -- 启用所有约束ALTER TABLE table_employee DROP CK_gender -- 删除约束
3、主键操作
ALTER TABLE table_dept ALTER COLUMN id INT NOT NULL -- 修改列将主键去除ALTER TABLE table_dept ADD CONSTRAINT PK_id PRIMARY KEY(id) -- 添加主键