2020-09-21
作用:用于保证数据的完整性和一致性
部分约束条件
1.primary key : 标识该字段该表的主键,唯一的标识记录,不能为空(unique + not null)
2.foreing key : 标识该字段为该表的外键,实现表与表之间的关联
3.not null : 标识该字段不能为空
4.unique key : 标识该字段的值是唯一的,可以为空,一张表中允许有多个字段使用该约束
5.auto_increment : 标识该字段的值自动增长(必须是整数类型,且为主键,一张表里只能设置一个字段自增)
6.default : 为该字段设置默认值
7.unsigned : 无符号,正数
8.zerofill : 使用0填充,例00002
补充:
不设置not null时,默认为null
不设置default默认值时,入插入记录时不给字段赋值,此字段就为空
例:
sex enum('male','female') not null default 'male' #sex字段为枚举类型,不能为空,默认赋值为male
age int unsigned not null default 20 #age字段必须为正值(无符号),不能为空,默认值为20
索引(index,unique)是数据结构
例子:
1.主键
mysql> create table t7(hostname char(20) primary key,ip char(150));
mysql> create table t9(hostname char(20),ip char(150),primary key(hostname));
2.联合主键
mysql> create table t9(hostname char(20),ip char(150),primary key(hostname,ip));
mysql> alter table t10 drop primary key; #删除主键
3.索引(优化查询速度)
mysql> create table t12(hostname char(20) primary key,ip char(150),index (ip));
mysql> create table t101(hostname char(20) primary key,ip char(150),index hn(ip)); #给索引起名hn
mysql> create index hn on t105(ip);
mysql> alter table t101 drop index hn; #删除index索引
4.外键(一般不用,耦合性太高)
mysql> create table t1(id int,manager char(10) primary key) engine = innodb;
mysql> create table t2(id int,admin char(10),foreign key (admin) references t1 (manager)) engine = innodb;