mysql列属性_数据库设计-列属性(字段属性)

目录

列属性

简单属性

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

null属性

null属性,代表字段为空

7ab1a1a50977e1fb80468afec36d569c.png

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

注意:

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

默认值

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

2bd8e8e9fdb181703ce6360df9833103.png

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

e30472c51c3a761f4e19ba359f58e0af.png

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

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

7bd5352e9738edda833fdde4fb177253.png

列描述

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

基本语法:

comment 字段描述;

1ba121ce287ee7499cf173ec61a9a3b0.png

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

主键

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

创建主键

随表创建

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

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

500742f0c404572562b01f9cdc69a424.png

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

fb90d91a2bcc98a83ac3ca86b9fd563a.png

表后增加

基本语法:

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

4c0de2eece1d3e0645dd65b2eb506720.png

查看主键

方案一:查看表结构

a210c1d8d6934c347457e58bf27776d7.png

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

1576627c63aa9f1ff5d37218b8ea42fa.png

删除主键

基本语法:

alter table 表名 drop primary key;

34b77c27e85716665ed6f281dba97f35.png

复合主键

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

adf003c523e98eef90c9511f0805bcb5.png

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

主键约束

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

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

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

904987f22270dff27fc1e1cdcf32f9f6.png

数据重复后报错:

555ee763f12dba919664cb40cf7ba41b.png

主键分类

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

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

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

自动增长

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

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

原理

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

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

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

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

使用自动增长

基本语法:

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

01f0b6a577330d050db30db3ddf601d0.png

f3cf06e976a1cfc8d61edbd5621f4bc3.png

修改自动增长

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

5b2a455e62b9d73750a8d108eab2ccf5.png

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

基本语法:

alter table 表名 auto_increment=数值;

37a9dbe6ffa7536c0df4dd9bb49bccc6.png

删除自动增长

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

d4fb6aa88d76704d85bf480dbbebfdbe.png

初始设置

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

a30df2bd6bff58bfd3cd1a83603cd156.png

细节问题

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

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

6f3c9d2d85ff4e75853caea987496c17.png

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

bd19f5c894da23ef201e95bf22bf943c.png

唯一键

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;

474b5edf3a4a8790d54bd25ee7157d45.png

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

create table my_unique2(

id int primary key auto_increment,

username varchar(10),

unique key(username)

)charset utf8;

056728b546d1107de1d9e39e75a945e1.png

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

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

6e8b3ac48d4a78f0babb82da6154ae40.png

查看唯一键

785b32825971c1910ec4b8f263865757.png

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

8d0dc94cd569ad4c6228bc4fe1e769a8.png

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

362e1c4fc16f50ed3403a7ebc28e1e93.png

删除唯一键

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

基本语法:

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

78da7bed41d84eb040cf5ee75818ce50.png

修改唯一键

先删除后增加

复合唯一键

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

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

本文地址:https://blog.csdn.net/qq_43802023/article/details/112604273

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

weixin_39638929

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值