注意:设置性别直接用enum,不要用char、varchar!!!

一、显示宽度与0填充
在为某个字段设置整数类型时,可以为其设置指定宽度,但是必须与zerofill连用
语法:
整型(显示宽度)
char 和 varchar后的括号设置字符个数
但是整型后的()是设置显示宽度 填充的0也只是影响显示宽度,但是不影响数值本身 如:int(6)
117.png

二、列属性
create table 表名(字段名   列类型  列属性)【表选项】
1、列类型vs列属性
列类型主要用于约束单独的一个字段在整行中的取值限制。
列属性主要用于约束单独的一个字段在整列中的取值限制。

118.png

2、null值
在mysql中,如果未全部字段插入数值,那么没有插入数据的字段会默认填充为null

119.png

3、not null
drop table if exists test_null;
如果存在,那么就删除表
not null主要用于约束当前字段不允许为null值,(不允许mysql用null值来进行填充) 如下图:
120.png

但是当对not null字段不插入东西时,会出现如下:
未设置not null 但是不插入年龄性别字段

设置not null 但是插入时,不对设置not null的字段插入出现情况
此时显示默认值不为null,是别的东西
4、default
因此需要设置默认值default值
注意 用default设置值时,不需要写=号!!!!
123.png

124.png
当对设置里默认值的字段插入数据时,会显示如下:
125.png
注意下面两种情况:
①、①
②、②
5、unique
注意:unique在key中显示
独一无二的
如下,设置完unique后,插入两个相同学号201601450204

128.png

130.png
注意:unique在key中显示
131.png
注意:unique约束不允许出现重复值,但是允许为null,原因是null值根本不等于null.如下插入俩不输入学号的值会显示null
132.png

133.png

6、primary key
primary 主要的意思
key 键,字段
primary key 重要的字段,此处的重要并不是对用户来说,而是对mysql而言,主要体现在对数据的查找中

134.png

没有设置主键primary key的情况下

135.png

136.png

当设置完主键primary key后,如下

137.png

当插入重复主键时:

138.png
结果:
139.png
当插入主键为null时:

140.png

结果:

141.png

7、auto_increment
必须在主键或者唯一键才能只用,而且必须是整型字段,但是大多数情况都是与primary key联合使用
设置主键自动增加
增加主键自动添加功能如图:

142.png

143.png

设置完自动添加主键后,插入数据时,注意 insert语法时,要把s_id,也就是主键处,设置为默认(写为默认default)default.如下图:

144.png

145.png

146.png

打乱顺序插入,看自增长怎么插入新的:

147.png

148.png

使用查看表的结构语句,查看自增长:

149.png

8、模拟主键
创建如下的表:
150.png

151.png

多创建一个具有相同属性的字段

152.png

153.png

**提示:一个表中只能有一个主键
一个表中可以有多个唯一键
一个表中只能有一个自增长**
9、复合主键
mysql中,可以有两个字段同时构成一个主键,只有当插入的两个字段完全一样时,才会出错,如下几个图所示:

154.png

155.png

156.png

157.png

10、备注 comment
mysql 中,创建的表会随着时间的推移,逐渐忘记字段名当时我们设置的是什么意思,所以,我们在创建表的时候,使用comment 来备注,如下图备注及查看

158.png

159.png

160.png