1.约束类型
1.1 主键约束(唯一且非空,一个表只能有一个)
1.2 外键约束(多表关联)
1.3.唯一约束 (唯一可以有一个空,可以有多个唯一约束)
1.4 检查约束(限制字段填写的内容,可以写正则表达式)
1.5 默认约束(给字段添加默认值)
2.约束创建
2.1.创建表的时候同步创建约束
2.2.创建表结束以后添加约束
3.创建表的时候同步创建约束
3.1. 主键约束创建语法
Create table 表名称(
ID varchar(50) primary key
)
3.2.默认约束创建语法
Create table 表名称(
sex varchar (20) default('女')
)
3.3.检查约束创建语法
Create table 表名称(
sex varchar(20) check(sex='男' or sex='女')
age int check(age>0 and age<100)
age int check(age between 0 and 100)
)
3.4.唯一约束创建语法
Create table 表名称(
name varchar(40) unique
)
3.5.外键约束创建语法
Create table 表名称(
字段名称 foreign key references 关联的表(关联字段)
)
4.创建表以后添加约束
4.1.语法
alter table 表名称 add constrain 名称 约束内容
4.2.主键约束
alter table 表名称 add constrain pk_id primary key(字段名称)
4.3.唯一约束
alter table 表名称 add constrain uq_xx unique(字段名称)
4.4.外键约束
alter table 表名称 add constrain fk_xx foreign key(字段名称)references 关联的表(关联字段)
4.5.检查约束
alter table 表名称 add constrain ck_xx check(条件表达式)
4.6.默认约束
alter table 表名称 add constrain df_xx default '默认值' for 字段名称
题目:
在SQL Server中,假设有一个名为Students的表,包含以下字段:
StudentID (int): 学生的唯一标识符
FirstName (nvarchar(50)): 学生的名字
LastName (nvarchar(50)): 学生的姓氏
Age (int): 学生的年龄
Email (nvarchar(100)): 学生的电子邮件地址
DepartmentID (int): 学生所在部门的ID
请根据以下要求,为Students表创建适当的约束:
确保StudentID字段是主键。
确保FirstName和LastName字段都不允许为空,并且长度不超过50个字符。
确保Age字段的值在18到30之间(包含18和30)。
确保Email字段的值是唯一的,并且符合电子邮件地址的格式(例如:user@example.com)。
为DepartmentID字段创建一个外键约束,它引用另一个名为Departments的表的DepartmentID字段。
所有内容使用sql创建
Create table Departments(
DepartmentID int primary key
)
Create table Students(
StudentID int primary key,
FirstName nvarchar(50) not null,
LastName nvarchar(50) not null,
Age int check(age between 18 and 30),
Email nvarchar(100) check(Email like '%@%.%'),
DepartmentID int foreign key references Departments(DepartmentID)
)