欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

浅谈SQL之主键、外键约束

程序员文章站 2023-11-09 16:25:28
浅谈sql之主键、外键约束   约束:顾名思义就是一种限制,在表或列的层次设置约束,确保数据的有效性和完整性。   sql server中约束的主要分类...

浅谈sql之主键、外键约束
 

约束:顾名思义就是一种限制,在表或列的层次设置约束,确保数据的有效性和完整性。

 

sql server中约束的主要分类:

 

unique约束(唯一性约束)

 

防止一个特定的列中两个记录具有相同的值。可设置多个

check约束(核查约束)

通过检查一个或多个字段的输入值是否符合设定的检查条件来强制数据的完整性。

 

not null约束

确保列必须具有一个值,否则记录不能插入

primary   key约束(主键约束)

 

只能有一个主键约束,是unique约束和not null约束的组合

foreign key约束(外键约束)

 

外键约束定义了表之间的关系

 

在所有的约束当中,primary key约束是最常用、最重要的。要理解应用主外键约束,还是要把主外键含义搞懂才行。

 

主键:是一个或多个字段,能唯一标识表中的每个记录。

 

外键:包含另一个表中的主键值,能确定另一个表记录的字段,用于保持数据的一致性。

 

比如:

 

学籍表(学号,姓名,性别,班级,电话)

 

其中每个学生的学号是唯一的,学号就是一个主键;

 

课程表(课程编号,课程名,地点)

 

课程编号是唯一的,它就是一个主键;

 

有时只靠一个字段不足以唯一标识一条记录,例如:

 

成绩表(学号,课程编号,成绩,姓名)

 

成绩表中的任何一个字段都无法唯一标识一条记录,学号和课程编号的组合才可以唯一标识一条记录,所以学号和课程编号的组合才是一个主键。

 

成绩表中的学号不是成绩表的主键,但是它和学籍表中的学号相对应,且学籍表中的学号是学籍表的主键,这时则称成绩表中的学号是学籍表的外键;同理成绩表中的课程编号是课程表的外键。

 

理解了主外键后,运用起来才会得心应手。