目录
列属性
简单属性
null属性
默认值
列描述
主键
创建主键
查看主键
删除主键
主键约束
主键分类
自动增长
原理
使用自动增长
修改自动增长
删除自动增长
初始设置
细节问题
唯一键
创建唯一键
查看唯一键
删除唯一键
修改唯一键
复合唯一键
列属性
简单属性
列属性又称为字段属性,在mysql中共有6个属性,null,默认值,列描述,主键,唯一键和自动增长
null属性
null属性,代表字段为空
如果对应的值为YES表示该字段可以为空值
注意:
在设计表的时候,尽量不要让数据为空
默认值
default:默认值,当字段被设计的时候,如果允许默认条件下,用户不进行数据的插入,那么就可以使用事先准备好的数据来填充,通常填充的是NULL
测试:不给当前字段提供插入值
从图中可以发现age字段使用默认值18进行填充
default关键字的另外一层使用,显示的告知字段使用默认值,在进行数据插入的时候,对字段值直接使用default
列描述
comment:专门用于给开发人员进行维护的一个注释说明
基本语法:
comment 字段描述;
查看comment,必须通过查看表创建语句
主键
顾名思意,主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性
创建主键
随表创建
系统提供了两种增加主键的方式
方案一:直接在需要当作主键的字段之后,增加primary key属性来确定主键
方案二:在所有字段之后增加primary key选项,primary key(字段信息)
表后增加
基本语法:
alter table 表名 add primary key(字段);
查看主键
方案一:查看表结构
方案二:查看表的创建语句
删除主键
基本语法:
alter table 表名 drop primary key;
复合主键
案例:有一张学生选修课表,一个学生可以选修多个选修课,一个选修课也可以由多个学生来选,但是一个学生在一个选修课中只有一个成绩。
主键一般用在中间表,学生有学生表,课程有课程表,学生与课程的中间表my_score就用复合主键
主键约束
主键一旦增加,那么对对应的字段有数据要求
1、当前字段对应的数据不能为空;
2、当前字段对应的数据不能有任何重复;
数据重复后报错:
主键分类
主键分类采用的是主键所对应的字段业务意义分类
业务主键:主键所在的字段,具有业务意义(学生ID,课程ID)
逻辑主键:自然增长的整型(应用广泛)
自动增长
自动增长,auto_increment,当给定某个字段该属性之后,该列的数据在没有提供确定数据的时候,系统会根据之前已经存在的数据进行自动增加后填充。
通常自动增长用于逻辑主键。
原理
1、系统中有维护一组数据用来保存当前使用了自动增长属性的字段,记住当前对应的数据值,再给定一个指定的步长;
2、当用户进行数据插入的时候,如果没有给定值,系统在原始值上再增加上步长变成新的数据;
3、自动增长的触发,给定属性的字段没有提供值;
4、自动增长只适用于数值;
使用自动增长
基本语法:
在字段之后增加一个属性auto_increment
修改自动增长
1、查看自增长,自增长一旦触发之后,会自动的在表选项中增加一个选项(一张表最多只能拥有一个自增长)
2、表选项可以通过修改表结构来实现
基本语法:
alter table 表名 auto_increment=数值;
删除自动增长
删除自增长,就是在字段属性之后不再保留auto_increment,当用户修改自增长所在字段时,如果没有看到auto_increment属性,系统会自动清除该自增长
初始设置
在系统中,有一组变量用来维护自增长的初始值和步长
细节问题
1、一张表只有一个自增长,自增长会上升到表选项中
2、如果数据插入中没有触发自增长(给定了数据),那么自增长不会表现
3、自增长修改的时候,值可以较大,但是不能比当前已有的自增长字段的值小
唯一键
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;
2、在所有的字段之后使用unique key(字段列表);
create table my_unique2(
id int primary key auto_increment,
username varchar(10),
unique key(username)
)charset utf8;
3、在创建完表之后也可以增加唯一键;
alter table 表名 add unique key(字段列表);
查看唯一键
唯一键效果:在不为空的情况下不允许重复
在查看表创建语句的时候,会看到与主键不同的一点:多出一个“名字”
删除唯一键
index:关键字,唯一键是索引的一种(提升查询效率)
基本语法:
alter table 表名 drop index 唯一键名字;
修改唯一键
先删除后增加
复合唯一键
唯一键与主键一样,可以使用多个字段共同保证唯一性
一般主键都是单一字段(逻辑主键),而其他需要唯一性的内容都是由唯一键来处理
本文地址:https://blog.csdn.net/qq_43802023/article/details/112604273