MySQL列属性

列属性又称之为字段属性,在MySQL中一共有6个属性:null,默认值,列描述,主键,自动增长,唯一键

 

null属性

null属性:代表字段为空

MySQL列属性_第1张图片

如果对应的值为YES表示该字段可以为空

注意:

1、在这几表的时候,尽量不要让数据为空

2、MySQL的纪录长度为65535个字节,如果表中有字段允许为NULL,那么系统就会设计保留一个字节来存储NULL,最终有效存储长度为65534个字节

 

默认值

default:默认值,当字段被设计的时候,如果允许默认条件下,用户不进行数据的插入,那么就可以使用事先准备好的数据来填充,通常填充的是NULL

MySQL列属性_第2张图片

测试:不给当前字段提供数据值

MySQL列属性_第3张图片

default关键字的另外一种使用:显示的告知字段使用默认值:在进行数据插入的时候,对字段值直接使用default

 

列描述:

comment:是专门用于给开发人员进行维护的一个注释说明

语法:comment '字段描述';

create table my_comment(
name varchar(10) not null comment '当前是用户名,不能为空',
pass varchar(50) not null comment '密码不能为空'
)charset utf8;

查看comment不能用desc,必须通过查看表创建语句

MySQL列属性_第4张图片

 

主键

顾名思义:主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性

创建主键

1、随表创建

两种增加主键的方式

方案1:直接在需要当做主键的字段值后,增加primary key属性来确定主键

create table mypri1(
username varchar(10) primary key
)charset utf8;

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

create table mypri2(
username varchar(10),
primary key(username)
)charset utf8;

2、创后增加

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

create table mypri3(
username varchar(10)
)charset utf8;

alter table mypri3 add primary key(username);

查看主键

方案1:查看表结构

MySQL列属性_第5张图片

方案2:查看表的创建语句

MySQL列属性_第6张图片

删除主键

语法:alter table 表名 drop primary key;

MySQL列属性_第7张图片

复合主键

MySQL列属性_第8张图片

主键约束

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

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

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

 

自动增长

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

通常自动增长用于逻辑主键

原理:

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

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

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

4、自动增长只适用于数值

使用自动增长

语法:在字段值后增加一个属性: auto_increment

MySQL列属性_第9张图片

修改自动增长

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

MySQL列属性_第10张图片

2、表选项可以通过修改表结构来实现

alter table 表名 auto_increment = 值;

MySQL列属性_第11张图片

删除自动增长

删除自增长:就是在字段属性之后不再保留auto_increment

当用户修改自增长所在字段时,如果没有看到auto_increment属性,系统会自动清除该自增长

MySQL列属性_第12张图片

id的自增长属性已经不见,但是自增长数值保留

初始设置

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

查看自增长变量:show variables like 'auto_increment%';

MySQL列属性_第13张图片

细节问题

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

2、如果数据插入中没有触发自增长(给定了数据),那么自增长不会体现,但是会随着给定的值(数字)改变

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

 

唯一键

unique key 用来保证对应的字段中的数据唯一的

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

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

2、允许字段数据为NULL,NULL可以有多个

创建唯一键

创建唯一键与创建唯一键类似

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

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

3、在创建完表之后,alter table 表名 add unique key(字段列表)

 

查看唯一键

唯一键是属性,可以通过查看表结构来查看

MySQL列属性_第14张图片

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

MySQL列属性_第15张图片

删除唯一键

一个表中允许存在多个唯一键,因此删除的基本语法与主键不同

语法:alter table table 表名 drop index 唯一键名:

index 关键词

复合唯一键

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

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

 

你可能感兴趣的:(MySQL学习)