存储引擎默认是innodb
对于innodb来说,每张表内必须有一个主键
primary key -----------标识该字段为主键,唯一的表示记录
foreign key-------------表示该字段为该表的外键。
not null--------------------标识该字段不能为空。
unique key -------------标识该字段值是唯一的。
auto_increment-------标识该字段为自动增长(整数类型,而且为主键)。
default-----------------为该字段的默认值。
unsigned------无符号
zerofill --------使用0填充
1、unsigned
unsigned----不能有符号
age int unsigned not null default 20----age必须是正数(无符号)不能为空,默认20
2、null
是否可空,null表示空,非字符串
not null —不可为空
null ------可空
3、unique key
unique key -------------标识该字段值是唯一的
方式一:
create table t1(id int unique,name char(4) unique);----id和name都是唯一的
方式二:
create table t1(id int,name char(6),unique(id),unique(name));
几个字段组合一起唯一,单个重复无所谓
create table t1(id int,name char(6),unique(id,name))
4、primary key
primary key---------字段的值不为空且唯一
单列做主键的方法:
方式一:not null unique
create table t1(id int not null unique,name char(6))----id为主键
方式二:字段后跟 primary key
create table t1(id int primary key,name char(6))-----id为主键
方式三:在所有字段后单独定义
create table t1(id int,name char(6),constraint ccc primary key(id))
id为主键,创建主键并命名ccc
多列做主键的方法:
create table t1(id int,name char(6),primary key(id,name));
5、auto_increment
约束该字段为自动增长,同时该字段必须被key约束
create table t1(id int primary key auto_increment,name char(6));
设置了id自动增长,在传值的时候id可以不填,会自动依次+1
6、foreign key
关联表与表
比如员工表(emp)和部门表(dep)
先创建被关联的部门表
create table dep(id int primary key,
name char(6) not null
);
这里的id 一定要保证唯一
再创建关联的员工表
create table emp(
id int primary key,
name char(6) not null,
dep_id int,
constraint fk_name foreign key(dep_id) references dep(id)
on delete cascade #删除同步
on update cascade #更新同步 注意没有逗号
)
#constraint fk_name foreign key(dep_id) references dep(id) -------
这条的意思就是创建外键dep_id将emp的dep_id与dep表的(id)关联起来
7、清空列表
方式一:
delete from t1;
注意 delete 方法 把表清空,但是如果是自增长的,那么如果表的自增长到11,用delete清空表之后,自增长数据不会清空,下次传值会随 11 之后继续增加。常跟where连用,删除固定的记录
方式二:
truncate t1;
truncate 会直接把表所有都清空。 清空表应该用这个。删除速度比delete快。
8、了解
show variables 查看系统变量及其值
show variables like ‘auto_inc%’ 加个% 可以把 auto_inc 开头的 都调出来
步长 :
auto_increment_increment 默认为1
起始偏移量
auto_increment_offset 默认为1
设置步长:
set session auto_increment_increment=5;
set global auto_increment_increment=5;
设置起始偏移量:
set global auto_increment_offset=3; 起始id=3
强调:起始偏移量必须<=步长,否则失效