约束:顾名思义就是一种限制,在表或列的层次设置约束,确保数据的有效性和完整性。
SQL server中约束的主要分类:
UNIQUE 约束(唯一性约束) |
防止一个特定的列中两个记录具有相同的值。可设置多个 |
CHECK 约束(核查约束) |
通过检查一个或多个字段的输入值是否符合 设定的检查条件 来强制数据的完整性。 |
Not Null 约束 |
确保列必须具有一个值,否则记录不能插入 |
PRIMARY KEY约束(主键约束) |
只能有一个主键约束,是 UNIQUE 约束和 NOT NULL 约束的组合 |
FOREIGN KEY 约束(外键约束) |
外键约束定义了表之间的关系 |
在所有的约束当中, PRIMARY KEY约束是最常用、最重要的。要理解应用主外键约束,还是要把主外键含义搞懂才行。
主键:是一个或多个字段,能唯一标识数据库表中的每个记录。
外键:包含另一个表中的主键值,能确定另一个表记录的字段,用于保持数据的一致性 。
比如:
学籍表(学号,姓名,性别,班级,电话)
其中每个学生的学号是唯一的,学号就是一个主键;
课程表(课程编号,课程名,地点)
课程编号是唯一的,它就是一个主键;
有时只靠一个字段不足以唯一标识一条记录,例如:
成绩表(学号,课程编号,成绩,姓名)
成绩表中的任何一个字段都无法唯一标识一条记录,学号和课程编号的组合才可以唯一标识一条记录,所以学号和课程编号的组合才是一个主键。
成绩表中的学号不是成绩表的主键,但是它和学籍表中的学号相对应,且学籍表中的学号是学籍表的主键,这时则称成绩表中的学号是学籍表的外键;同理成绩表中的课程编号是课程表的外键。
理解了主外键后,运用起来才会得心应手。