mysql索引,外键

索引
索引可以增加查询速度
但是增加了维护索引的负担,我们在增,删,改数据的同时,还需要维护索引
索引一共分四类

1,主键索引:如果一个字段被定义为主键,则自动在该字段上建立主键索引

2,唯一索引:如果一个字段上的数据在整张表内是唯一的,可以在该字段上建立唯一索引,这样一旦找到某个数据,就不

需要再次向下查找数据,速度比较快3,普通索引:在某个普通的字段上建立普通索引

4,全文索引:在某个字段上建立全文索引,将记录内的关键字抽取出来,然后对每个关键字进行索引


创建索引:create [索引类型] index 索引名 on 表名(这张表的某个字段);
    alter table 表名 add[索引类型] index 索引名(这张表的某个字段);

查看索引:
show  indexes  from 表名


删除索引:
drop index 索引名字 on table     或者    
alter table 表名 drop index 索引名字


修改索引要先删除再增加

explain语句  查看一下索引能起到什么作用



外键

例如,现有商品表和商品类表。使用外键可以做到删除商品某一类的时候同事删除商品表中这一类所有商品

外键好处:

可以使得两张表关联,保证数据的一致性和实现一些级联操作


外键的使用条件:

1,两张表必须是innoDB存储引擎的表

2,mysql 4.1.2版本之前的外键列需要建立索引

3,外键关系的两个表的列必须数据类型相似
  int tinyint  但是int  varchar就不行

语句:
创建表的时候设定外键及这个表跟随的主表名,比如商品表跟随商品类表
create table table_name(id,int,name,char(20),foreign key(id) references outTable_name(id) on delete casecade on update cascade)

设置外键时的references outTable_name(id) on delete casecade on update cascade  意思是监听outTable_name表,在这个表做删除和更新的时候table_name表也跟随外表的动作

监听的外键表的行为:delete  update  
 foreign key(id)  指定当前表哪个字段是外键
 references 和外部哪个表关联
constrint ‘’;  指定一个名称,(外键关联的名称,为了将来删除这个外键的话,通过这个名称来删除)约束的名称



改密码懒得总结。。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值