mysql索引

普通索引 主键 复合主键 外键 唯一索引 全文索引fulltext

普通索引

普通索引 index 标识 MUL 字段的值允许重复,允许为空,一个表可以有多个普通索引

show index from t1;
create table t1(id int(3),name char(3),index(name),index(id));
create index name on t1(name);
drop index name on t1;

主键

主键 primary key 标识 PRI 字段的值不可以重复,不可以为空值,一个表只能有一个主键

create table t1(id int(3) primary key auto_increment,name char(3));
create tanle t2(id int(3) auto_increment,name char(2),primary key(id));
alter table t1 add primary key(name);
alter table t1 drop  primary key;

复合主键

复合主键 primary key 标识 PRI 多个字段的值不可以同时重复,不可以为空

create table t1(id int(3),name char(3),primary key(id,name));
alter table t1 drop primary key;

唯一索引

唯一索引 unique 标识 UNI 字段的值可以重复,不可以为空,当值为空时变成主键 一个表可以有多个唯一索引

create table t1(id int(3),name char(3),unique(id),unique(name));
create unique index name on t1(name);
drop index name on t1;

外键

外键 foreign key 标识 MUL
一个表中的值需要在另一个表中值的范围内选取
表的存储引擎必须是innodb
两个表中字段类型必须匹配
被参数字段要是key的一种(通常为主键primary key)

create table t1(id int(3) zerofill unsigned primary key auto_increment,name char(3))engine=innodb;
create table t2(id int(3),name char(3),foreign key(id) references t1(id) on update cascade on delete cascade)engine=innodb;
alter table t2 add foreign key(id) references t1(id) on update cascade on delete cascade;
show create table t1; 看constraint后面的值
alter table t1 drop foreign key 外键名;

AUTO_INCREMENT 自增长 ++
自增长需要数值类型,必须为主键
不赋值默认从1开始
经常把表中能够唯一标识记录的字段设置为主键 字段[记录编号字段]


同步更新
同步删除

on update cascade 
on delete  cascade  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值