zoukankan      html  css  js  c++  java
  • SQL Server —— 主键和外键

    一、定义

    1.1、什么是主键和外键

    关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。

    比如:

    学生表(学号,姓名,性别,班级)
    其中每个学生的学号是唯一的,学号就是一个主键。

    课程表(课程编号,课程名,学分)

    其中课程编号是唯一的,课程编号就是一个主键。

    成绩表(学号,课程号,成绩)
    成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键。

    1.2、主键和外键的作用

    (1)、为了维护关系数据库的完整性

    主键是能确定一条记录的唯一标识,比如,一条记录包括身份证号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。

    外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

    (2)、起约束作用

    外键取值规则:空值或参照的主键值。

    • 插入非空值时,如果主键表中没有这个值,则不能插入。
    • 更新时,不能改为主键表中没有的值。
    • 删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
    • 更新主键记录时,同样有级联更新和拒绝执行的选择。

    1.3、主键、外键和索引的区别

    区别 主键 外键 索引
    定义 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 该字段没有重复值,但可以有一个空值
    作用 用来保证数据完整性 用来和其他表建立联系用的 是提高查询排序的速度
    个数 主键只能有一个 一个表可以有多个外键 一个表可以有多个唯一索引
  • 相关阅读:
    CQUOJ 10819 MUH and House of Cards
    CQUOJ 9920 Ladder
    CQUOJ 9906 Little Girl and Maximum XOR
    CQUOJ 10672 Kolya and Tandem Repeat
    CQUOJ 9711 Primes on Interval
    指针试水
    Another test
    Test
    二分图匹配的重要概念以及匈牙利算法
    二分图最大匹配
  • 原文地址:https://www.cnblogs.com/xulinjun/p/11646899.html
Copyright © 2011-2022 走看看