day03-Mysql数据库--主键和自增长

Mysql数据库–主键和自增长

主键

主键: primary key,主要的键. 一张表只能有一个字段可以使用对应的键, 用来唯一的约束该字段里面的数据, 不能重复: 这种称之为主键.(主键一定是索引,但索引不一定是主键)
一张表只能有最多一个主键.

增加主键

SQL操作中有多种方式可以给表增加主键: 大体分为三种.

方案1: 在创建表的时候,直接在字段之后,跟primary key关键字(主键本身不允许为空)

优点: 非常直接; 缺点: 只能使用一个字段作为主键

方案2: 在创建表的时候, 在所有的字段之后, 使用primary key(主键字段列表)来创建主键(如果有多个字段作为主键,可以是复合主键)
在这里插入图片描述
方案3: 当表已经创建好之后, 额外追加主键: 可以通过修改表字段属性, 也可以直接追加.
Alter table 表名 add primary key(字段列表);
在这里插入图片描述
前提: 表中字段对应的数据本身是独立的(不重复)

主键约束

主键对应的字段中的数据不允许重复: 一旦重复,数据操作失败(增和改)
主键不能为空null和空

在这里插入图片描述

更新主键 & 删除主键

没有办法更新主键: 主键必须先删除,才能增加.

Alter table 表名 drop primary key;
在这里插入图片描述

主键分类

在实际创建表的过程中, 很少使用真实业务数据作为主键字段(业务主键,如学号,课程号); 大部分的时候是使用逻辑性的字段(字段没有业务含义,值是什么都没有关系), 将这种字段主键称之为逻辑主键.

Create table my_student(
Id int primary key auto_increment comment ‘逻辑主键: 自增长’, – 逻辑主键
Number char(10) not null comment ‘学号’,
Name varchar(10) not null
)

自动增长

自增长: 当对应的字段,不给值,或者说给默认值,或者给NULL的时候, 会自动的被系统触发, 系统会从当前字段中已有的最大值再进行+1操作,得到一个新的在不同的字段.

自增长通常是跟主键搭配.

新增自增长

自增长特点: auto_increment
1.任何一个字段要做自增长必须前提是本身是一个索引(key一栏有值)
案例:
如果一个字段是主键,并且还是自增长,如果直接删除主键会报错。
原因:自增长前提是该字段是索引,因为主键一定是索引,如果把主键删除就失去了自增长的前提。

在这里插入图片描述
2.自增长字段必须是数字(整型)
在这里插入图片描述
3.一张表最多只能有一个自增长
在这里插入图片描述

自增长使用

当自增长被给定的值为NULL或者默认值的时候会触发自动增长.
在这里插入图片描述
自增长如果对应的字段输入了值,那么自增长失效: 但是下一次还是能够正确的自增长(从最大值+1)
在这里插入图片描述
如何确定下一次是什么自增长呢? 可以通过查看表创建语句看到.
在这里插入图片描述

修改自增长

自增长如果是涉及到字段改变: 必须先删除自增长,后增加(一张表只能有一个自增长)

修改当前自增长已经存在的值: 修改只能比当前已有的自增长的最大值大,不能小(小不生效)
Alter table 表名 auto_increment = 值;
在这里插入图片描述

向上修改可以
在这里插入图片描述

思考: 为什么自增长是从1开始?为什么每次都是自增1呢?
所有系统的变现(如字符集,校对集)都是由系统内部的变量进行控制的.
查看自增长对应的变量: show variables like ‘auto_increment%’;
在这里插入图片描述
可以修改变量实现不同的效果: 修改是对整个数据修改,而不是单张表: (修改是会话级)
Set auto_increment_increment = 5; – 一次自增5
在这里插入图片描述
测试效果: 自动使用自增长
在这里插入图片描述

删除自增长

自增长是字段的一个属性: 可以通过modify来进行修改(保证字段没有auto_increment即可)
Alter table 表名 modify 字段 类型;
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值