目录
一、约束
二、约束操作
1、primary key约束
2、unique约束
3、check 约束
4、default 约束
5、foreign key 约束
一、约束
SQL Server 2012 的 6种约束类型
- null \ not null -- 为空 \不为空,设置字段列是否允许为空
- primary key -- 主键约束,设置字段为主键
- unique -- 唯一性,设置字段具有唯一性
- check -- 设置字段的取值范围
- default -- 设置字段的默认值
- foreign key -- 设置外键,设置字段为外键,与其他表建立联系
二、约束操作
1、primary key约束
-- 1、建表时,添加主键约束
create table student
(
学号 int primary key,
姓名 nchar(8),
身份证号 char(18),
性别 nchar(1)
)
-- 2、修改表时,添加主键约束
语法:alter table <表名> add constraint <约束名> primary key (字段名)
create table student
(
学号 int,
姓名 nchar(8),
身份证号 char(18),
性别 nchar(1),
)
ALTER TABLE student
ADD CONSTRAINT pk_ts PRIMARY KEY (学号)
-- 3、删除主键约束
语法:alter table <表名> drop constraint <约束名>
ALTER TABLE student
DROP CONSTRAINT pk_ts
2、unique约束
-- 建表时,设置唯一性
create table student
(
学号 int,
姓名 nchar(8),
身份证号 char(18) unique,
性别 nchar(1),
)
-- 修改表时,设置唯一性
语法:alter table <表名> add constraint <约束名> unique (字段名)
create table student
(
学号 int,
姓名 nchar(8),
身份证号 char(18),
性别 nchar(1),
)
ALTER TABLE student
ADD CONSTRAINT ue_ts UNIQUE (身份证号)
-- 删除唯一性约束
语法:alter table <表名> drop <约束名>
ALTER TABLE student
ADD CONSTRAINT ue_ts
3、check 约束
-- 创建时,设置范围约束
create table sc
(
学号 int,
课程号 nchar(8),
成绩 int check ( 成绩 >=0 and 成绩 <= 100),
)
-- 修改时,设置范围约束
语法:alter table <表名> add constraint <约束名> check(成绩 >=0 and 成绩 <= 100)
ALTER TABLE sc
ADD CONSTRAINT cj_sc check (成绩 >=0 and 成绩 <= 100)
-- 删除范围约束
语法:alter table <表名> drop <约束名>
ALTER TABLE sc
DROP CONSTRAINT cj_sc
4、default 约束
-- 创建时,设置范围约束
create table student
(
学号 int,
姓名 nchar(8),
身份证号 char(18),
性别 nchar(1) default '男',
)
-- 修改时,设置默认值
语法:alter table <表名> add constraint <约束名> default '默认值'
ALTER TABLE test
ADD CONSTRAINT dt_st default '男'
-- 删除默认约束
语法:alter table <表名> drop <约束名>
ALTER TABLE student
DROP dt_ts
5、foreign key 约束
-- 创建时,添加 foreign key
create table student
(
学号 int primary key,
姓名 nchar(8),
身份证号 char(18),
性别 nchar(1),
)
create table sc
(
学号 int foreign student(学号),
课程号 nchar(8),
成绩 int,
)
-- 修改时,设置外键
语法:alter table <表名> add constraint <约束名> foreign key (外键字段) references <关联的表名> (关联字段)
ALTER TABLE sc
ADD CONSTRAINT fk_sc foreign key (学号) REFERENCES student (学号)
-- 删除外键约束
语法:alter table <表名> drop <约束名>
ALTER TABLE sc
DROP CONSTRAINT fk_sc