1.非空约束
1.1创建非空约束
通过 not null 关键字来创建非空约束
[CONSTRAINT <约束名>] not null
1.2修改非空约束
1.修改tb_Student中的非空约束,让ID字段允许为 null
ALTER TABLE tb_Student
ALTER column ID int null
2.主键约束
2.1创建主键约束
使用 PRIMARY KEY 创建主键约束
1.创建表Employee,将字段ID设置为主键约束
CREATE TABLE Employee
(
ID int CONSTRAINT PK_ID PRIMARY KEY,
Name char(50),
Sex char(2),
Age int
)
注意:PK_ID为用户自定义的主键约束的名称,主键约束的名称必须是合法的标识符
**
2.2在现有表中创建主键约束
关键字
ALTER TABLE table_name
ADD
CONSTRAINT constraint_name
PRIMARY KEY[CLUSERED | NONCLUSTERED]
{(column...)}
- CONSTRAINT:表示创建约束的关键字
- constraint_name:创建约束的名称
- PRIMARY KEY:表示创建的约束为主键约束
- CLUSERED | NONCLUSTERED:表示 PRIMARY KEY 或UNIQUE约束创建聚集和非聚集索引的关键字,PRIMARY KEY 约束默认创建的为 CLUSERED UNIQUE默认创建的为 NONCLUSTERED
1.将tb_Student中的ID字段设置为主键约束
ALTER TABLE tb_Student
ADD
CONSTRAINT PRM_ID PRIMARY KEY(ID)
2.3修改,删除主键约束
根据自定义的主键约束名称删除主键约束
1.删除tb_Student中的主键约束
ALTER TABLE tb_Student
DROP CONSTRAINT PRM_ID
3.唯一约束
唯一约束用来实施列集中值的强制唯一性,根据UNIQUE约束,表中的任何两行都不能有相同的列值,另外,主键也实施强制唯一性,但是主键不允许NULL作为一个唯一值
3.1创建唯一约束
1.在数据库中创建数据表Employee,并将字段设置为唯一约束
CREATE TABLE Employee
(
ID int CONSTRAINT UQ_ID UNIQUE,
Number char(20),
Name nvarchar(20),
Age int,
Sex char(2)
)
3.2在现有表中创建唯一约束
1.将Employee中的Number设置为UNIQUE
ALTER TABLE Employee
ADD
CONSTRAINT UQ_NUMBER UNIQUE(Number)
3.3删除唯一性约束
1.删除Employee中Number的唯一性约束
ALTER TABLE Employee
DROP CONSTRAINT UQ_NUMBER
4.check约束
check约束可以强制域的完整性,check约束类似于FOREIGN KEY约束,可以控制放入列的值。但是,他们在确定有效值的方法上有所不同,FOREIGN KE约束是从其他表中获取到有效字段,而check约束通过不基于其他列中的数据的逻辑表达式来确定有效值
4.1创建check约束
1.创建Employee表,并将字段Sex设置约束检查,在输入性别字段时,只能接受“男”“女”,而不能接受其他数据
CREATE TABLE Employee
(
ID int,
Name char(20),
Sex char(2) CONSTRAINT CK_SEX CHECK(Sex in ('男', '女')),
Age int
)
4.2在现有表则创建check约束
1.修改Employee表,是得Sex字段只能接受 “女”,不能接受其他字段
ALTER TABLE Employee
ADD CONSTRAINT CK_SEX_1 CHECK(Sex in ('女'))
4.3删除check约束
1.删除Employee中的check约束
ALTER TABLE Employee
DROP CONSTRAINT CK_SEX_1
5.默认约束
在创建或修改表时可以通过DEFAULT 来创建默认值,默认值可以是计算结果为常量的任何值,如常量,内置函数或数学表达式,这将为每一列分配一个常量表达式作为默认值
5.1创建默认约束
1.创建Employee表,设置Sex字段的默认约束为 “女”
CREATE TABLE Employee
(
ID int,
Name char(20),
Sex char(2) CONSTRAINT DEF_SEX DEFAULT '女',
Age int
)
5.2在现有表中创建默认约束
1.再Eployee表中创建默认约束,设置Sex默认值为 “男”
ALTER TABLE Employee
ADD CONSTRAINT DEF_SEX_1 DEFAULT '男'
FOR Sex
5.3删除默认约束
1.删除Employee中的Sex字段的默认约束
ALTER TABLE Employee
DROP CONSTRAINT DEF_SEX_1
6.外键约束
6.1创建外键约束
1.创建表 Laborage 创建外键约束,该约束把 Laborage 中的编号 (ID) 字段和表 Employee 再的ID字段关联起来
CREATE TABLE Laborage
(
ID int,
Wage money
CONSTRAINT FK_ID FOREIGN KEY(ID) REFERENCES Employee(ID)
)
6.2在现有表中创建外键约束
1.将 Employee 表中的 ID 字段设置为 Laborage中的外键
ALTER TABLE Laborage
ADD CONSTRAINT FK_ID FOREIGN KEY(ID) REFERENCES Employee(ID)
6.3删除外键约束
1.删除 Laborage 中的外键约束
ALTER TABLE Laborage
DROP CONSTRAINT FK_ID