SQL常用的约束语句

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)
   
)

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值