88bf必发娱乐SQL 表的完整性

约束

建立:主外键,约束。(删除主表的时候,同时删除子表;更新主表的时候更新子表)

非空约束 –NN,ont null constraint

1.建表时定义主键

  Create table 表名

   (

        Sno int identity(1,1),

        Sname nvarchar(20),

        –设置主键

        Primary key (Sno)

   )

必须填写数据不能为空

2.添加主外键

添加主键

alter table 表名

add constraint PK_表名_Sno

primary key(id)

参照完整性1.建表时定义外键

create table 表名

  (

      sno int identity(1,1) primary key,

      cno int not null,

      foreign key(cno) References

      表名2(Cno)

      on Delete cascade     –级联删除

      on update cascade    –级联更新

      — on delete on action 
删除管制

  )

添加外键

   alter table 表名

   add constraint FK_表名_表名2

   Foreign key(cid) references 表名2(cid)

用户定义完整性1.非空约束

   alter table 表名

   alter column name varchar(20) not null

–指定表 Student
添加名为NN_Student_sClassId非空约束(指定列名sClassId),括号输入表达式

3.唯一约束

   alter table 表名

   add constraint UQ_表名_列名 unique(列)

alter table Student add constraint NN_Student_sClassId check(sClassId
is not null)

4.检查约束

   alter table 表名

   add constraint CK_表名_列名 check(age>5)

 

5.默认约束

   alter table 表名

   add constraint DF_表名_列名 default(‘男’)

   for gender

主键约束 –PK,primary key
constraint

6.删除约束 

  alter table 表名 drop constraint DF_表名_列

 

唯一且不为空

–指定表 Student 添加名为PK_Student_sId主键约束(指定列名sId)

alter table Student add constraint PK_Student_sId primary key(sId)

 

唯一约束 –UQ,unique constraint

唯一,允许为空,但是同样的数据只能出现一次

–指定表 Student 添加名为UQ_Student_sName唯一约束(指定列名sName)

alter table Student add constraint UQ_Student_sName unique(sName)

    

默认约束 –DF,default
constraint

设置默认值

–指定表 Student
添加名为DF_Student_sName默认约束(指定列名sBirthday),获取当前日期

alter table Student add constraint DF_Student_sName default(getdate())
for sBirthday

 

–指定表 Student
添加名为DF_Student_sName默认约束(指定列名sBirthday),指定日期  

alter table Student add constraint DF_Student_sName
default(‘1995-12-12’) for sBirthday  

–指定表 Student
添加名为DF_Student_sName默认约束(指定列名sSex),指定性别

alter table Student add constraint DF_Student_sSex default(‘男’) for
sSex     

 

检查约束 –CK,check constraint

设置范围以及格式限制

–指定表 Student 添加名为
CK_Student_sSex检查约束(指定列名sSex),限制为’男’或者’女’

alter table Student add constraint CK_88bf必发娱乐,Student_sSex check(sSex=’男’ or
sSex=’女’)   

–指定表 Student 添加名为
CK_Student_sSex检查约束(指定列名sAge),限制为0-100之间的数字

alter table Student add constraint CK_Student_sAge check(sAge>=0
and sAge<=100)   

 

外键约束  –FK,foreign key
constraint

表关系

alter table Student add constraint Fk_Student_sClassId foreign
key(sClassId) references Class(cId)

–指定表Student添加sClassId外键为Class的主键cId

on delete cascade on update  cascade –级联删除 –级联更新

 

删除约束

alter table Student drop Constraint NN_Student_sClassId   
–删除指定表中的约束

 

创建表时设置列的约束

create table Users

(

     uId int identity(1,1) primary key,–创建了一个列名为
uId的列,并设置了主键约束

     uName nvarchar(8) not null
unique,创建了一个列名为uName的列,并设置了唯一约束

     uSex nchar(1) not null check(uSex=’男’ or uSex=’女’)
default(‘男’),–设置了非空和默认约束

     uBirthday datetime,–创建了一个列名为uBirhday的列,并没有设置约束

     uAge int not null check(uAge>0 and uAge<100)
default(18),–设置了非空、检查、默认约束

 )