空属性
name varchar(20) not null
默认值
age tinyint unsigned default 0
默认值生效:数据在插入的时候不给该字段赋值,就使用默认值
列描述
sex char(2) default '男' comment '性别'
desc tablename //查看不到注释信息
show create table tablename //可以看到
zerofill属性
如果宽度小于设定的宽度,自动填充0
主键
-
创建表的时候直接在字段上指定主键
id int unsigned primary key comment '学号不能为空'
-
在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键,可以使用复合主键
create table tt14(
id int unsigned,
course char(10) comment '课程代码',
score tinyint unsigned default 60 comment '成绩',
primary key(id, course) //id和course为复合主键
);
这里第二种方式还可以在表创建好以后,进行追加主键
alter table 表名 add primary key(字段列表)
主键约束:主键对应的字段中不能够重复,一旦重复,操作失败
删除主键
alter table 表名 drop primary key
自增长
auto_increment:当对应的字段,不给值,会自动被系统触发,从当前字段中已有的最大值+1操作,得到一个新的不同的值,通常和主键搭配使用,作为逻辑主键
id int unsigned primary key auto_increment
条件
-
任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
-
自增长字段必须是整数
-
一张表最多只能有一个自增长
唯一键
一张表中往往需要多个字段都具有唯一性,但是主键只能有一个,唯一键就用来解决该问题
唯一键允许为空,而且可以多个为空,空字段不做唯一性比较
id char(10) unique comment '学号,不能重复,但可以为空'
外键
用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或者unique约束,当定义外键后,要求外键列数据必须在主表的主键存在或为空
foreign key (字段名) references 主表(列)