注意:设置性别直接用enum,不要用char、varchar!!!
一、显示宽度与0填充
在为某个字段设置整数类型时,可以为其设置指定宽度,但是必须与zerofill连用
语法:
整型(显示宽度)
char 和 varchar后的括号设置字符个数
但是整型后的()是设置显示宽度 填充的0也只是影响显示宽度,但是不影响数值本身 如:int(6)
二、列属性
create table 表名(字段名 列类型 列属性)【表选项】
1、列类型vs列属性
列类型主要用于约束单独的一个字段在整行中的取值限制。
列属性主要用于约束单独的一个字段在整列中的取值限制。
2、null值
在mysql中,如果未全部字段插入数值,那么没有插入数据的字段会默认填充为null
3、not null
drop table if exists test_null;
如果存在,那么就删除表
not null主要用于约束当前字段不允许为null值,(不允许mysql用null值来进行填充) 如下图:
但是当对not null字段不插入东西时,会出现如下:
此时显示默认值不为null,是别的东西
4、default
因此需要设置默认值default值
注意 用default设置值时,不需要写=号!!!!
当对设置里默认值的字段插入数据时,会显示如下:
注意下面两种情况:
①、
②、
5、unique
注意:unique在key中显示
独一无二的
如下,设置完unique后,插入两个相同学号201601450204
注意:unique在key中显示
注意:unique约束不允许出现重复值,但是允许为null,原因是null值根本不等于null.如下插入俩不输入学号的值会显示null
6、primary key
primary 主要的意思
key 键,字段
primary key 重要的字段,此处的重要并不是对用户来说,而是对mysql而言,主要体现在对数据的查找中
没有设置主键primary key的情况下
当设置完主键primary key后,如下
当插入重复主键时:
结果:
当插入主键为null时:
结果:
7、auto_increment
必须在主键或者唯一键才能只用,而且必须是整型字段,但是大多数情况都是与primary key联合使用
设置主键自动增加
增加主键自动添加功能如图:
设置完自动添加主键后,插入数据时,注意 insert语法时,要把s_id,也就是主键处,设置为默认(写为默认default)default.如下图:
打乱顺序插入,看自增长怎么插入新的:
使用查看表的结构语句,查看自增长:
8、模拟主键
创建如下的表:
多创建一个具有相同属性的字段
**提示:一个表中只能有一个主键
一个表中可以有多个唯一键
一个表中只能有一个自增长**
9、复合主键
mysql中,可以有两个字段同时构成一个主键,只有当插入的两个字段完全一样时,才会出错,如下几个图所示:
10、备注 comment
mysql 中,创建的表会随着时间的推移,逐渐忘记字段名当时我们设置的是什么意思,所以,我们在创建表的时候,使用comment 来备注,如下图备注及查看