C

雅轩聊科技 2024-07-15 17:20:39

哈喽,你好啊,我是雷工!

在创建完表格后还需要添加一些约束条件,以下为添加各种约束的相关笔记。

01 主键约束

要对一个列加主键约束的话,该列就必须要满足的条件就是非空;

主键约束为非空,不重复,

格式为:

alter table 表格名称 add constraint 约束名称 增加约束的类型 (列名)

这里要对表格Peoples的PeopleId列添加主键约束,

T-SQL代码如下:

--创建“主键”约束primary keyif exists(select * from sysobjects where name='pk_PeopleId')alter table Peoples drop constraint pk_PeopleIdalter table Peoplesadd constraint pk_PeopleId primary key (PeopleId)

02 check约束

check约束就是给一列数据进行了限制;

格式为:

alter table 表名称 add constraint 约束名称 增加约束的类型 (列名 (约束条件))

此处要求Peoples表中的年龄范围在20-40之间,要求身份证长度为18;

T-SQL代码如下:

--创建检查约束checkif exists(select * from sysobjects where name='ck_Age')alter table Peoples drop constraint ck_Agealter table Peoplesadd constraint ck_Age check (Age between 20 and 40) --创建身份证的长度检查约束if exists(select * from sysobjects where name='ck_PeopleIdNo')alter table Peoples drop constraint ck_PeopleIdNoalter table Peoplesadd constraint ck_PeopleIdNo check (len(PeopleIdNo)=18)

03 unique约束

unique约束就是给列的数据追加的不重复的约束类型;

格式为:

alter table 表名称 add constraint 约束名称 增加约束的类型 (列名 (约束条件))

此处要求身份证号和考勤卡号不能重复;

T-SQL代码如下:

--创建唯一约束uniqueif exists(select * from sysobjects where name='uq_PeopleIdNo')alter table Peoples drop constraint uq_PeopleIdNoalter table Peoplesadd constraint uq_PeopleIdNo unique (PeopleIdNo)if exists(select * from sysobjects where name='uq_CardNo')alter table Peoples drop constraint uq_CardNoalter table Peoplesadd constraint uq_CardNo unique (CardNo)

04 默认约束

默认约束就是让该列的数据默认为一定的数据;

格式为:

alter table 表名称 add constraint 约束名称 约束类型 (默认值)for 列名

此处要求地址列无输入时默认为:地址不详;绩效的更新时间和考勤表的打卡时间,默认为获取当前时间;

T-SQL代码如下:

--创建默认约束if exists(select * from sysobjects where name='df_PeopleAddress')alter table Peoples drop constraint df_PeopleAddressalter table Peoplesadd constraint df_PeopleAddress default ('地址不详' ) for PeopleAddressif exists(select * from sysobjects where name='df_UpdateTime')alter table Performances drop constraint df_UpdateTimealter table Performancesadd constraint df_UpdateTime default (getdate() ) for UpdateTimeif exists(select * from sysobjects where name='df_DTime')alter table Attendance drop constraint df_DTimealter table Attendanceadd constraint df_DTime default (getdate() ) for DTime

05 外键约束

外键约束是用于两个表之间数据完整性和一致性的一种机制,它定义在一个表的字段上,引用另一个表的主键字段,外键约束确保引用表中的数据与被引用表中的数据保持一致,防止破坏两个表之间的关联关系。

格式为:

alter table 表名称 add constraint 约束名称 约束类型 (列名)references 被引用的表名称(列名)

T-SQL代码如下:

--创建外键约束if exists(select * from sysobjects where name='fk_GroupId')alter table Peoples drop constraint fk_GroupIdalter table Peoplesadd constraint fk_GroupId foreign key (GroupId) references Groups(GroupId)if exists(select * from sysobjects where name='fk_PeopleId')alter table Performances drop constraint fk_StudentIdalter table Performancesadd constraint fk_PeopleId foreign key(PeopleId) references Peoples(PeopleId)

06 后记

以上为该实例中个数据表所需的约束,有记录不当或有更好的实现方法的可以留言讨论;

有更多相关话题也可以在交流群内沟通。

0 阅读:0

雅轩聊科技

简介:感谢大家的关注