博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数据库】主键、外键、索引
阅读量:6282 次
发布时间:2019-06-22

本文共 877 字,大约阅读时间需要 2 分钟。

设有3个表:

学生表(学号,姓名,性别,班级)

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

成绩表(学号,课程号,成绩)

 

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

举例:学生表的学号,课程表的课程编号,成绩表的(学号,课程号)属性组

 

外键:用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性

举例:成绩表中的学号,就是学生表的外键。

 

SQL的主键和外键的约束:

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

(1)插入非空值时,如果主键表中没有这个值,则不能插入。

(2)更新时,不能改为主键表中没有的值。

(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。

(4)更新主键记录时,同样有级联更新和拒绝执行的选择。

 

索引:在数据库中,索引的含义与日常意义上的“索引”一词并无多大区别(想想小时候查字典),它是用于提高数据库表数据访问速度的数据库对象。

A)索引可以避免全表扫描。多数查询可以仅扫描少量索引页及数据页,而不是遍历所有数据页。

B)对于非聚集索引,有些查询甚至可以不访问数据页。
C)聚集索引可以避免数据插入操作集中于表的最后一个数据页。
D)一些情况下,索引还可用于避免排序操作。  

 

聚集索引:叶结点也即数据结点,所有数据行的存储顺序与索引的存储顺序一致。 

非聚集索引:表数据存储顺序与索引顺序无关。对于非聚集索引,叶结点包含索引字段值及指向数据页数据行的逻辑指针,该层紧邻数据页,其行数量与数据表行数据量一致。

 

主键、外键和索引的区别

 

定义:

 主键--唯一标识一条记录,不能有重复的,不允许为空

 外键--表的外键是另一表的主键, 外键可以有重复的, 可以是空值

 索引--该字段没有重复值,但可以有一个空值

 

作用:

 主键--用来保证数据完整性

 外键--用来和其他表建立联系用的

 索引--是提高查询排序的速度

 

个数:

 主键--主键只能有一个

 外键--一个表可以有多个外键

 索引--一个表可以有多个唯一索引

 

参考资料:

1.

2.

3.

转载地址:http://qdxva.baihongyu.com/

你可能感兴趣的文章
rowid去重(转)
查看>>
恋爱侧面观
查看>>
Ubuntu14.04运行lsdslam与问题解决
查看>>
python字典常见操作
查看>>
POJ1201Intervals(差分约束系统)
查看>>
jquery源码
查看>>
python机器学习入门(Day6:Decision tree)
查看>>
杭电 2899 题解题报告
查看>>
php 多条件查询
查看>>
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
查看>>
mysql 对返回的值是null进行判断和重新赋值
查看>>
【以前的空间】link cut tree
查看>>
Javascript诞生记:C语言和Self语言X的产物
查看>>
rpm包制作介绍及实战操作讲解02(学生分享)
查看>>
趣谈 | Python为什么受欢迎的本质,知道的人寥寥无几?
查看>>
学会拒绝摔倒“哭泣”,拒绝接受“溺爱”
查看>>
交换机惹祸两起
查看>>
话里话外:成功CEO的用人之道——用人所长
查看>>
使用TS Session Broker实现终端服务负载均衡
查看>>
谁比谁傻?
查看>>