约束限制

#约束条件: 约束条件是在类型之外为字段附加的限制
强调:
如果标的类型为innodb存储引擎,那么在创建表时,必须定义一个主键
如果不指定,innodb存储 引擎会自上而下寻找一个不为空且唯一字段的当做主键
1.primary key
设置以后可以加速查询,作为索引,如果没有指定会从上到下找一个不为空且唯一的 就好比 unique not null (不为空且唯一) 如果都没指定就没有主键
重点!!!
每个表里必须有一个主键 而且只能出现一次 主键可以联合主键相当于只有一次
通常primary key 与auto_increment(递增)合用
2.unique key (字段不能重复)
ps: create table t25(x char(5) unique);

2.1 联合唯一
create table services(
id int ,
name char(16),
port int,
unique key(ip,port)
);#意思是两个值结合必须唯一 单独重复 不错

3设置字段后不能为空
not null 设置字段后不能为空


create table dep (
dep_id int primary key auto_increment,
dep_name char(10),
dep_comment char(60)
);

create table emp(
id int primary key auto_increment,
name char(16),
gender enum('male','female') not null default 'male',
dep_id int,
foreign key(dep_id) references dep(dep_id)
);

insert into emp(name,dep_id) values
('alex',1),
('egon',2),
('lxx',1),
('wxx',1),
('wenzhou',3));
insert into dep(dep_name,dep_comment) values
('教学部','辅导学生学习'),
('外交部','辅导学生学习'),
('技术部','辅导学生学习');
delete from tb1;强调此命令趋势可以将表里的所有记录都删掉 但是不会将auto_increment的递增 重置为0 ,此命令主要是删除某条记录的一般用法delete from tb1 where id>10;

如要清空表 是哟个 truncate 表明 可以重置auto_increament
原文地址:https://www.cnblogs.com/LoganY/p/9299754.html