1. 空属性与默认值
create table tt6(age tinyint not null,name varchar(5) not null,sex char(2) default '男');
创建一个名为tt6的字段,age字段为tinyint型,不可为空,name字段为varchar(5),不可为空,sex字段为char(2)类型,默认值为男。
当给字段设置为not null后,向字段中添加数据时不可为空。
给字段设置默认值之后,即使不向字段赋值,那么也会有默认值。
2. 字段注释
alter table tt6 add class varchar(5) comment '班级' first;
表tt6的最前面添加一个class字段,comment可以注释此字段的含义为’班级’。
3. 补零操作
alter table tt6 modify age int(5) zerofill;
给类型后面加zerofil可以使得数据类型自动补0。
4. 主键
用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主键所在的列通常是整数类型。
- 创建表的时候在指定字段上设置主键
在类型后面加primary key
- 设置复合主键:
primary key(id,name)
将id,name同时都设为主键。
- 追加主键:
alter table tt10 add primary key(id);
- 删除主键:(删除全部主键)
alter table tt9 drop primary key;
5. 自增长
当对应的字段如果不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。
在字段类型后面加上auto_increment
自增长的特点:
- 任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
- 自增长字段必须是整数
- 一张表最多只能有一个自增长
查看自增长值的方法:
select last_insert_id();
show create table xxx
唯一键:
一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键:唯一键就可以解决表中有多个字段需要唯一性约束的问题。
唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较。
在字段后面加上uniqe
关键字
外键:
用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。当定义外键后,要求外键列数据必须在主表的主键列存在或为null。
foreign key (字段名) references 主表(列)
- 先创建主表:
- 创建从表:
首先向class中插入数据分别为编号为1的a班,编号为2的b班,之后在向student中插入编号为101的1班学生‘a’,编号为102的1班学生‘b’。这些都可以成功完成,当插入
编号为103的3班学生学生‘c’时出错,因为不存在3班这个编号。
此例子说明外键的数据必须在主键的数据中。
说明外键可以为空的例子:
附:
MuSQL表操作.
MySQL库操作.
MySQL常见数据类型.