文章目录
一、 约束条件介绍
约束条件与数据类型的宽度一样,都是可选参数
作用:用于保证数据的完整性和一致性
主要分为:
primary key 标识该字段为该表的主键,可以唯一的标识记录
foreign key 标识该字段为该表的外键
unique 标识该字段的值是唯一的
not null 标识该字段不能为空
auto_increment 标识该字段的值自动增长(整数类型,而且为主键)
default 为该字段设置默认值
unsigned 无符号(正负号)
zerofill 使用0填充
二、 添加数据的两种方式
常用第二种
insert into t1 values(...); # 按照字段顺序一一传值
insert into t1(name) values(...); # 指名道姓的传值
三、 not null(非空)
create table t2(
id int,
name varchar(32) not null
);
insert into t2(name) values(''); # ''也是非空
四、default (默认值)
create table t3(
id int,
name char(32),
gender enum('male','female','others') default 'male'
);
五、 unique(唯一)
# 单列唯一
create table t4(
id int,
name varchar(32) unique
);
# 多列唯一
create table t5(
id int,
host varchar(32),
port int,
unique(host,port)
);
多列唯一
六、 primary key(主键)
1.单从限制角度上来看 主键相当于是非空且唯一
id int primary key == id int not null unique
create table t6(
id int primary key
);
2.InnoDB存储引擎规定了在创建表的时候必须有且只有一个主键
1.为什么之前创建表的时候没有主键也可以呢?
当表中没有任何的约束条件字段,为了能够顺利的创建出表,InnoDB存储引擎会采用内部隐藏的字段作为主键
隐藏意味着我们无法使用到,主键其实可以帮助我们加快数据的查询速度
2.没有主键但是有非空且唯一的字段 那么会自动将该字段升级为主键
create table t7(
id int,
age int not null unique,
pwd int not null unique
);
结论:我们在创建表的时候一般都会创建一个id字段(序号\编号)
并且我们会将该字段设置为主键
id int primar