1、主键:若某一个属性组(注意是组)能唯一标识一条记录,该属性组就是一个主键。主键不能重复,且只能有有一个,也不允许为空。定义主键主要是为了维护关系数据库的完整性。
2、外键: 外键用于与另一张表的关联,是能确定另一张表记录的字段。外键是另一个表的主键,可以重复,可以有多个,也可以是空值。定义外键主要是为了保持数据的一致性。
3、简单来说就是把两个表关联起来。同样的一个名字在两个表中:如stu(name,sex)和表grade(name,cou),如果name是表stu中的主键,并且name也是表grade中的主键,那么表stu中的name就是表grade的外键了。
4、外键取值规则:空值或参照的主键值。插入非空值时,如果主键表中没有这个值,则不能插入。更新时,不能改为主键表中没有的值。删除主键表记录时,可以在建外键时选定外键记录一起级联删除还是拒绝删除。更新主键记录时,同样有级联更新和拒绝执行的选择。SQL的主键和外键就是起约束作用。
5、索引的主要作用为了提高查询速度。主键就是唯一索引。外键是两张表之间做连接关系时用的。一般是某一张表的一个外键字段引用另一张表的主键。
在关系型数据库中,数据结构有逻辑结构和物理结构。物理结构指存储在物理介质上的数据文件的结构。逻辑结构即关系,也就是一张张的二维表。表中的一列即为一个字段(属性),代表的是实体的一个属性。表中的一行即为一条记录。
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 :学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
用户表(用户名、密码、登录级别)
其中用户名是唯一的, 用户名就是一个主键
上机记录表(卡号,学号,姓名、序列号)
上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键
上机记录表中的序列号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键
定义主键和外键主要是为了维护关系数据库的完整性,总结一下:
主键是能确定一条记录的唯一标识,比如,一条记录包括身份z号,姓名,年龄。身份z号是唯一能确定这个人的,其它都可能有重复,所以,身份z号是主键。
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,就可以是A表的外键。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)