数据库学习3-列属性(字段属性)

目录

列属性

简单属性

null属性

 默认值

列描述

主键

创建主键

查看主键

删除主键

主键约束

主键分类

自动增长

原理

使用自动增长

修改自动增长

删除自动增长

初始设置

细节问题

唯一键

创建唯一键

查看唯一键

删除唯一键

修改唯一键

复合唯一键


列属性

简单属性

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

null属性

null属性,代表字段为空

数据库学习3-列属性(字段属性)_第1张图片

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

注意:

在设计表的时候,尽量不要让数据为空

 默认值

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

数据库学习3-列属性(字段属性)_第2张图片

测试:不给当前字段提供插入值

数据库学习3-列属性(字段属性)_第3张图片

从图中可以发现age字段使用默认值18进行填充

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

数据库学习3-列属性(字段属性)_第4张图片

列描述

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

基本语法:

comment 字段描述;

数据库学习3-列属性(字段属性)_第5张图片

查看comment,必须通过查看表创建语句

主键

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

创建主键

随表创建

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

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

数据库学习3-列属性(字段属性)_第6张图片

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

数据库学习3-列属性(字段属性)_第7张图片

表后增加

基本语法:

alter table 表名 add primary key(字段);

数据库学习3-列属性(字段属性)_第8张图片

查看主键

方案一:查看表结构

数据库学习3-列属性(字段属性)_第9张图片

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

数据库学习3-列属性(字段属性)_第10张图片

删除主键

基本语法:

alter table 表名 drop primary key;

数据库学习3-列属性(字段属性)_第11张图片

复合主键

案例:有一张学生选修课表,一个学生可以选修多个选修课,一个选修课也可以由多个学生来选,但是一个学生在一个选修课中只有一个成绩。

数据库学习3-列属性(字段属性)_第12张图片

主键一般用在中间表,学生有学生表,课程有课程表,学生与课程的中间表my_score就用复合主键

主键约束

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

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

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

数据库学习3-列属性(字段属性)_第13张图片

数据重复后报错:

主键分类

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

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

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

自动增长

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

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

原理

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

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

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

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

使用自动增长

基本语法:

在字段之后增加一个属性auto_increment

数据库学习3-列属性(字段属性)_第14张图片

数据库学习3-列属性(字段属性)_第15张图片

修改自动增长

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

数据库学习3-列属性(字段属性)_第16张图片

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

基本语法:

alter table 表名 auto_increment=数值;

数据库学习3-列属性(字段属性)_第17张图片

删除自动增长

删除自增长,就是在字段属性之后不再保留auto_increment,当用户修改自增长所在字段时,如果没有看到auto_increment属性,系统会自动清除该自增长

数据库学习3-列属性(字段属性)_第18张图片

初始设置

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

数据库学习3-列属性(字段属性)_第19张图片

细节问题

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

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

数据库学习3-列属性(字段属性)_第20张图片

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

数据库学习3-列属性(字段属性)_第21张图片

唯一键

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

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

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

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

创建唯一键

创建唯一键与创建主键非常类似

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

-- 唯一键
create table my_unique1(
id int primary key auto_increment,
username varchar(10) unique
)charset utf8;

数据库学习3-列属性(字段属性)_第22张图片

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

create table my_unique2(
id int primary key auto_increment,
username varchar(10),
unique key(username)
)charset utf8;

数据库学习3-列属性(字段属性)_第23张图片

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

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

数据库学习3-列属性(字段属性)_第24张图片

查看唯一键

数据库学习3-列属性(字段属性)_第25张图片

唯一键效果:在不为空的情况下不允许重复

数据库学习3-列属性(字段属性)_第26张图片

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

数据库学习3-列属性(字段属性)_第27张图片

删除唯一键

index:关键字,唯一键是索引的一种(提升查询效率)

基本语法:

alter table 表名 drop index 唯一键名字;

数据库学习3-列属性(字段属性)_第28张图片

修改唯一键

先删除后增加

复合唯一键

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

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

 

 

你可能感兴趣的:(MySql,mysql,数据库,sql)