主键约束

一个表中可以有多个列,一个列中的数据有可能会重复.如学生信息表中,若有两个学生重名,那么姓名列的数据将会出现重复现象。那么在为学生统计分数的时候,如何才能更加精确的找到一个学生呢?这就需要为学生信息表设置一个主键。

主键是不允许有重复数据的列,能够唯一地确认记录,与该记录的其他字段有没有重复无关。如学生信息表,即使重名的学生姓名、性别、年龄等信息都相同,只要不是一个人,就可以为他们定义不同的主键来确定不同学生。

主键是表的标识列,在MySQL中支持主键组的使用,即使多个字段作为一个主键来使用。这一组字段中的每个字段,作为主键的构成缺一不可。对主键的操作即对这组字段的操作。

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

基于以上两个用途,在设计物理层面的主键时需要遵循以下原则:

1、MySQL主键通常是单列的,以便提高连接和筛选操作的效率。但是MySQL支持复合主键的使用。

2、主键通常不需要更换,能够唯一地标识一行数据。

3、MySQL主键通常是对用户没有意义的。

4、MySQL主键最好不要包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

5、MySQL主键通常由计算机自动生成,如对主键添加自增约束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值