真正约束字段的是数据类型。
1.null/not null
数据库默认字段均为空,可以在数据类型后面约定 not null。
create table t(id int not null,name varchar(32) not null)
2.default
默认值:某一种数据会经常出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性地使用默认值。
数据在插入的时候不给该字段赋值,就使用默认值。
create table t1(name varchar(32) not null,gender char(2) '男');
3.comment
列描述,专门用来描述字段,会根据表创建语句保存,用来给程序员或DBA来进行了解。
注意:通过desc看不到注释的信息,通过show create语句可以看到。
4.zerofill
如果没有zerofill这个属性,int(10)中括号的数字是没有意义的。
alter table tt3 change a a int(5) unsigned zerofill;
5.primary key
用来唯一地约束该字段里的数据,不能重复,不能为空,一张表中最多只有一个主键。
注意定义:create table t(id int primary key,name varchar(32) primary key)是错误的;
create table t(id int,name varchar(32),primary key(id,name));是对的。
6.unique
唯一键。数据不能重复。唯一键允许为空,并且多个为空,空字段不做唯一性比较。
7.auto_increment
系统会从当前字段中已有的最大值+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。
自增长的特点:a.任何一个字段要做自增长,前提是本身是一个索引。b.自增长字段必须是整数。c.一张表最多只能有一个自增长。
8.外键
用于定义主表和从表的关系:外键的约束主要定义在从表上,主表必须是有主键约束或unique约束。当定义外键后,要求外键列数必须在主表的主键列存在或为空。
语法:foreign key(从表中的字段名) references 主表名(列名) 在从表中声明。