数据库:“主键”

数据库☞主键

本文主要是根据对数据库的相应学习,并对数据库中的一个重要的知识点——主键 进行总结!
中间也会穿插其他的一些知识点,例如外键、关系型数据库吖等。



前言

主键的应用是很重要的,这对于数据库的设计十分重要!

关系型数据库总结—易理解!

泛型【在整理中~后贴哦】


一、概念

主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。

二、设计原则

关系数据库依赖于主键【它是数据库物理模式的基石】。
主键在物理层面上只有两个用途:
(1)惟一地标识一行。
(2)作为一个可以被外键有效引用的对象。

  • 原则1:主键应当是对用户没有意义的

其实从设计角度来说主键对用户无意义最好,为什么呢?
主键最主要的作用就是保证实体的完整性,加快数据库的操作速度。但往往在范式的规范下,有时候主键的组成不止由单属性组成,此时在操纵数据库中的数据时会比较麻烦 。
另外,有初学者会想,主键不是唯一么?主键也不能为空等等。很多时候简单的表格会以用户名这种作为主键,但是不要忘记当用户数量过于庞大时,会带来很多的麻烦,亦或者说,如果你想用唯一属性可以使用UNIQUE,而主键有时候有自增的功能可以省去很多的麻烦等等。

  • 原则2: 主键应该是单列的

就像我上一个原则里说的一样,主键有时候会由多属性组成,此时操作起来会出现很多问题(DuplicateKeyException…),主键应该是单列的以便提高连接和筛选操作的效率。

  • 原则3:永远也不要更新主键

主键在实际中是可以被更新的,但是设计的时候最好考虑的是不要更新主键。

  • 原则4:主键不应包含动态变化的数据

如时间戳、创建时间列、修改时间列等这些动态变化的数据不应该被定义为主键;主键是不可被直接修改的。


三、SQL定义主键约束(实体完整性)

在实例说明之前,先说一下主键的作用:

(1)保证实体的完整性;
(2)加快数据库的操作速度;
(3)在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复;
(4)DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

栗子:(具体的e-r图等,在这篇文章☞关系型数据库总结—易理解!都有介绍,可以观看哦~)
读者表 Reader

/*
* 单属性:主键只有一个属性组成
*/
/*一、主键约束:列级完整性约束*/
CREATE TABLE m_reader
(
rno varchar(10) PRIMARY KEY,       --- 设置为主键 /*列级完整性约束条件*/
rname varchar(10) UNIQUE not NULL,  
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值