mysql必知必会 - 主键

   什么是主键呢?主键又称PrimaryKey,是一列(或若干列),其值能够唯一区分表中的某一行。

   如何理解主键呢?可以唯一确定表中的某一行。例如在中国,身份证可以唯一确定某个人,那么身份证(某个列)其值能够唯一确认人群(表)中的某个人(某条记录)。再比如说某班中都两个叫王三,那么如何确认是具体某个王三呢,可能说高个的王三,矮个的王三,那么高矮+名称(若干列)可以唯一确定班级(表)中的确切的王三(行)!你上学时候的学号、上班时候的员工号、大街上的车牌号等等,都是某个类事物中的某列属性值,可以确认唯一的事物!

   主键在表中的作用是什么呢?唯一标识表中每行的列(或若干列)称为主键。如果没有主键,和现实生活中没有身份证一样,班里四五个王三,你想给某个王三大红包,叫一声后发现若干个王三,你可能顿时傻眼啦!所以如果没有主键,某种程度上没法安全地删除或者更新数据,那么大大削弱了数据库存储数据的作用。

   人如果没有身份证可以不可以生活呢?答案是可以的。同理,如果数据库的表中如果没有主键可以不可以使用呢?答案依旧是可以的。那么为什么应该还要使用主键呢?设计数据表时,每个表应该创建个主键,就像人应该需要身份证一样。没有身份证你无法买到火车票,没有主键同样实现不了主键才能实现的功能。


   主键的规则是什么呢?

   1.任意两行都具有不同的主键值;理解如下:不同的人必须拥有不同的身份证。

   2.每行都必须具有一个主键值,且主键值不允许为NULL值;理解如下:如果一个人有只能有一个身份证,并且身份证信息真实有效,不可能身份证信息被涂鸦了,或者身份证上的信息一片空白!

   多列构成主键的规则是什么呢?

   如果主键可以是多个列构成,即联合主键,那么所有的列值组合必须是唯一的,但是单个列的值可以不唯一。比如班里的叫王三的同学有两个,高矮+名字可以唯一确认某个人,那么高矮+名字就构成联合主键。

   主键好习惯是什么呢?

   1.不更新主键列的值。理解为你的身份证号码不要经常更换,这样警察叔叔会认为你捏造身份呢。

   2.不重用主键列的值。(如何理解呢?)

   3.不在主键列中使用可能会更改的值。现实生活理解参考,不要用你的名字做主键,因为你的名字如何修改啦,身份证信息、身份证系统、学籍系统、社保系统等等都会做数据修改的,如果用你的身份证号码来做关联,只要你的号码不变,都可以唯一确认你的信息。

   主键,是某个列或者某些列组成,可以唯一确定某条记录,然后在该记录上做数据的处理。因此主键不可以随意更改,在被其他数据关联引用之前可以修改,但是关联之后,由于主键修改造成的后果非常麻烦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值