五大约束

数据库中的五大约束:

 

1.----主键约束(Primay Key Coustraint) 唯一性,非空性

 

2.----唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个

 

3.----检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)

 

4.----默认约束 (Default Counstraint) 该数据的默认值

 

5.----外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列

【主键】
1.主键的注意事项?
主键默认非空,默认唯一性约束,只有主键才能设置自动增长,自动增长一定是主键,主键不一定自动增长;
2.设置主键的方式?
在定义列时设置:ID INT PRIMARY KEY
在列定义完之后设置:primary KEY(id)

【外键】

1.设置外键的注意事项:   

只有INNODB的数据库引擎支持外键,修改my.ini文件设置default-storage-engine=INNODB    外键必须与参照列的数据类型必须相同(数值型要求长度和无符号都相同,字符串要求类型相同,长度可以不同)。

2设置外键的语法:

   CONSTRAINT 外键名 FOREIGN KEY (外键字段)REFERENCES 参照表 (参照字段)    ON DELETE SET NULL ON UPDATE CASCADE 设置参照完整性

3.外键约束的参照操作?  

  参照表的完整性操作:当对参照表的参照字段进行删除或更新时,外键表中的外键如何应对;   

参照操作可选值:

 

1.----添加主键约束(将stuNo作为主键)

 

/*修改表 stuInfo 添加主键约束 设置主键列为 stuNo */

 

alter table stuInfo add constraint PK_stuNo primary key (stuNo)

 

2.----添加唯一约束(身份证号唯一,因为每个人的都不一样)

 

/*修改表 stuInfo 添加唯一约束 指定是那个列要建立这个约束*/

 

alter table stuInfo add constraint UQ_stuID unique(stuID)

 

3.----添加默认约束(如果地址不填 默认为“地址不详”)

 

/*修改表 stuInfo 添加默认约束 把学生住址 默认为 ‘地址不详’*/

 

alter table stuInfo add constraint DF_stuAddress default ('地址不详') for stuAddress

 

4.----添加检查约束 (对年龄加以限定 15-40岁之间)

 

/*修改表 stuInfo 添加对年龄的检查约束*/

 

alter table stuInfo add constraint CK_stuAge check (stuAge between 15 and 40)

 

/*修改表 stuInfo 添加对性别的约束*/

 

alter table stuInfo add constraint CK_stuSex check (stuSex='男' or stuSex='女')

 

5.----添加外键约束 (主表stuInfo和从表stuMarks建立关系,关联字段stuNo)

 

/*修改表 stuInfo 添加外键约束 外键列涉及到 表stuInfo的列*/

 

alter table stuInfo add constraint FK_stuNo foreign key(stuNo)references s

原文地址:https://www.cnblogs.com/skyhorseyk/p/7048883.html