最新消息:

重蔚php学习第三十一天笔记——MySQL数据库字段属性

PHP zhongweiziliudi 191浏览 0评论

跟在字段类型后面,用来修饰字段的一些额外的信息。

mysql的字段属性:null/not null,default,primary key,unique key,comment,auto_increment

null/not null:表示字段数据可以或者不可以为空

在创建表,如果没有给指定字段添加not null,默认是可以为空

重蔚php学习第三十一天笔记——MySQL数据库字段属性

一旦数据有不能为空的,那么就必须插入值

重蔚php学习第三十一天笔记——MySQL数据库字段属性

可以为空的数据,在进行数据插入时,可以不插入数据

重蔚php学习第三十一天笔记——MySQL数据库字段属性

重蔚php学习第三十一天笔记——MySQL数据库字段属性

通常不会让一个数据为空,因为空数据没有任何意义。

如果不想使用空数据,通常是搭配default,默认值使用

default:表示字段的默认值

语法:default ‘默认值’

1.不给有默认值的字段添加值

重蔚php学习第三十一天笔记——MySQL数据库字段属性

2.在需要使用默认值的字段值处,使用default关键字

重蔚php学习第三十一天笔记——MySQL数据库字段属性

如果没有为字段指定默认值,系统默认字段默认值为空(除非指定了not null)

primary key:一张表的主键,一张表只能有一个,主键值不能为空

用来严格区分记录的唯一性,其次提升查询的效率,主键是一个索引

如何给表添加主键?

1.与其他属性一样,创建表时在字段后面添加(添加之前必须保证该字段的所有值不重复)

重蔚php学习第三十一天笔记——MySQL数据库字段属性

主键说明

重蔚php学习第三十一天笔记——MySQL数据库字段属性

效果

重蔚php学习第三十一天笔记——MySQL数据库字段属性

2.创建表时,单独指定主键

语法:primary key(字段名,字段名) —–》复合主键 primary key(id)

重蔚php学习第三十一天笔记——MySQL数据库字段属性

主键说明

重蔚php学习第三十一天笔记——MySQL数据库字段属性

效果

重蔚php学习第三十一天笔记——MySQL数据库字段属性

3.主键添加,通过修改表的形式

表中没有主键,而又希望添加一个主键,如表中有一个ID并未重复

alter table 表名 modify id int primary key;– 通过修改表属性来设定主键

alter table 表名 add primary key (字段名,字段名); — 通过添加主键形式

删除主键:

语法:alter table 表名 drop primary key;

重蔚php学习第三十一天笔记——MySQL数据库字段属性

如果想实现换字段做主键:先删除已有主键—》添加一个新主键

unique key:唯一键,表示当前字段的值不能重复,可以为空,空不在判断范围之内

一张表只能有一个主键,但是又有可能存在其他字段不允许重复,就使用unique key

语法:

1.unique key的添加语法与primary key的添加基本一致

重蔚php学习第三十一天笔记——MySQL数据库字段属性

2.也可以使用表字段后面添加唯一键

unique key (字段列表) – 与主键一样,可以创建复合唯一键

3.采用修改表的形式添加唯一键

重蔚php学习第三十一天笔记——MySQL数据库字段属性

unique key不能比较null,所以里面可以插入多个null值

重蔚php学习第三十一天笔记——MySQL数据库字段属性

唯一键的约束效果

重蔚php学习第三十一天笔记——MySQL数据库字段属性

删除unique key:

语法:alter table 表名 drop unique key; — 错误的语法

原因:primarykey具有唯一性,有额外的权限,而unique key可能存在多个,而且其权限没有那么高。mysql没有提供专门的删除唯一键的语法,把唯一键当做普通索引处理的。

alter table 表名 drop index 索引名

对于单字段唯一键,索引名使用是就是对应的字段名

索引名称不能使用单引号,只能使用反引号

重蔚php学习第三十一天笔记——MySQL数据库字段属性

如果想指定索引名字

unique key ‘索引名字’ (字段);

comment:注释,写字表的创建语句里面,用于其他人去查看表的时候方便理解

SQL中支持的注释有三种

— :两个中划线+一个空格,表示,当前行空格后面的内容为注释,sql执行的时候请忽略

#:当前行后面的代码为注释,请忽略

/**/:块注释,内部的所有内容为注释,请忽略掉

comment:是一个属性,表示里面内容是注释,不需要执行

注释会被忽略掉,而comment属性会被保留

重蔚php学习第三十一天笔记——MySQL数据库字段属性

auto_increment:自动增长,要求是整型,一张表只有一个自动增长,自动增长的字段必须是索引字段

一般情况下,自动增长都是搭配主键使用。

自动增长指的是当某个自动增长的列没有被插入值,或者插入null值的时候就会触发自动增长,从而实现自动增长。如果该字段被插入值,那么自动增长就会不执行。

重蔚php学习第三十一天笔记——MySQL数据库字段属性

实现自动增长

重蔚php学习第三十一天笔记——MySQL数据库字段属性

自动增长原理

1. 当一条数据插入,直接使用自动增长的时候,系统分配了一个1,当第一条插入完之后,该值会变成2,等待下一条插入

重蔚php学习第三十一天笔记——MySQL数据库字段属性

2 自增长跟PHP索引数组的下标一样,会根据当前最大的那个值加1。

为什么系统能够从1开始进行自动增长?而为什么每次又是自动增加1?

系统是通过系统里面的配置文件来识别。

show variables like ‘auto_increment%’;

重蔚php学习第三十一天笔记——MySQL数据库字段属性

作业:大家自己回去修改自动增长的起始值和自增长变量。

关联文章:重蔚php学习第三十一天笔记——数据库校对集及存储引擎及乱码

重蔚php学习第三十一天笔记——MySQL数据库字段类型

转载请注明:PHP学习 » 重蔚php学习第三十一天笔记——MySQL数据库字段属性

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址