mysql基础6 列属性(主键、自动增长、唯一键)

主键

primary key,在一张表中,有且只有一个字段,里面的值具有唯一性

创建主键

系统提供了两种增加主键地方式

1、直接在需要当作主键的字段之后,增加primary key属性来确定主键

mysql基础6 列属性(主键、自动增长、唯一键)_第1张图片

2、在所有字段之后增加primary key选项:primary key(字段信息)

mysql基础6 列属性(主键、自动增长、唯一键)_第2张图片

表后增加

基本语法:alter table 表名 add primary key(字段名)

mysql基础6 列属性(主键、自动增长、唯一键)_第3张图片

 

查看主键

1、查看表结构:desc 表名

2、查看表的创建语句:show create table 表名

 

删除主键

基本语法:alter table 表名 drop primary key;

mysql基础6 列属性(主键、自动增长、唯一键)_第4张图片

复合主键

mysql基础6 列属性(主键、自动增长、唯一键)_第5张图片

主键约束

主键一旦增加,那么对应的字段有数据要求

1、当前字段对应的数据不能为空

2、当前字段对应的数据不能有任何重复

mysql基础6 列属性(主键、自动增长、唯一键)_第6张图片 

主键分类

主键分类采用的是主键所对应的字段的业务意义分类

业务主键:主键所在的字段,具有业务意义(学生ID,课程ID)

逻辑主键:自然增长的整型(应用广泛)

自动增长

自动增长,当给定某个字段属性之后,该列的数据在没有提供确定数据的时候,系统会根据之前已经存在的数据进行自动增加后填充数据。

原理

自动增长的原理:

1、在系统中有维护一组数据,用来保存当前使用了自动增长属性的字段,记住当前对应的数据值,在给定一个指定的步长

2、当用户进行数据插入的时候,如果没有给定值,系统在原始值上再加上步长变成新的数据

3、自动增长的触发:给定属性的字段没有提供值

4、自动增长仅用于数值

使用自动增长

基本语法:在字段之后增加一个属性 auto _increment

mysql基础6 列属性(主键、自动增长、唯一键)_第7张图片

触发自增长插入数据,不给定具体值

mysql基础6 列属性(主键、自动增长、唯一键)_第8张图片

修改自动增长

1、查看自增长:自增长一旦触发后,会自动的在表选项中增加一个选项(一张表最多只能拥有一个自增长)

mysql基础6 列属性(主键、自动增长、唯一键)_第9张图片

2、修改基本语法:alter table 表名 auto_increment = 整数;

mysql基础6 列属性(主键、自动增长、唯一键)_第10张图片

删除自增长

字段后不再保留auto increment属性

通过重置字段属性来处理:alter table 表名 modify 字段名 字段属性

mysql基础6 列属性(主键、自动增长、唯一键)_第11张图片

自增长初始设置

在系统中,有一组变量用来维护自增长的初始值和步长

show variables like 'auto_increment%';

mysql基础6 列属性(主键、自动增长、唯一键)_第12张图片

注意:

1、一张表只有一个自增长:自增长会上升到表选项中

2、如果数据插入中没有触发自增长(给定了数据),那么自增长不会表现,而系统的会默认增加

3、自增长修改的时候,值可以较大,但是不能比当前已有的自增长字段的值小

唯一键

唯一键:unlque key,用来保证对应的字段中的数据唯一的。

主键也可以用来保证字段数据唯一性,但是一张表只有一个主键

1、唯一键在一张表中可以有多个

2、唯一键允许字段数据为null,null可以有多个(null不参与比较)

创建唯一键

基本用法:

1、直接在表字段之后增加唯一键标识符:unique[key]

mysql基础6 列属性(主键、自动增长、唯一键)_第13张图片

2、在所有的字段之后使用unique key(字段列表)

mysql基础6 列属性(主键、自动增长、唯一键)_第14张图片

3、在创建玩表之后也可以增加唯一键

alter table 表名 add unique key(字段列表)

mysql基础6 列属性(主键、自动增长、唯一键)_第15张图片

查看唯一键

desc 表名称

插入数据可以为空,非空不允许重复

在查看表创建语句的时候,会看到与主键不同的一点,多出一个“名字”

mysql基础6 列属性(主键、自动增长、唯一键)_第16张图片

删除唯一键

一个表中允许存在多个唯一键

基本语法:alter table 表名称 drop index 唯一键名称;

mysql基础6 列属性(主键、自动增长、唯一键)_第17张图片

修改唯一键:先删除后增加

复合唯一键

唯一键与主键一样可以使用多个字段来共同保证唯一性;

一般主键都是单一字段(逻辑主键),而其他需要唯一性的内容都是用唯一键来处理。

mysql基础6 列属性(主键、自动增长、唯一键)_第18张图片

你可能感兴趣的:(mysql)