MySQL索引
1、BTree
2、优点:加快数据的检索速度
3、缺点
1、索引需要动态维护,降低数据的维护速度
2、索引占用物理空间
4、索引类型
1、普通索引(MUL)
1、创建
1、创建表时创建: index(字段名),...
2、在已有表创建:
create index 索引名 on 表名;
2、查看
1、desc 表名;
2、show index from 表名\G;
3、删除(只能一个一个删除)
drop index 索引名 on 表名;
2、唯一所以(UNI,字段值不允许重复,但可为NULL)
1、创建
1、创建表
unique(字段名),...
2、在已有表中创建
create unique index 索引名 on 表名;
2、删除
drop index 索引名 on 表名;
3、主键索引(PRI)
1、使用规则
1、一个表中只能有一个主键(primary)字段
2、对应字段的值不允许重复,且不能为空
3、主键字段的key标志PRI
4、把表中能够唯一标识一条记录的字段设置为主键,通常把表中记录编号的字段设置为主键
2、创建主键(primary key)
1、创建表时创建
1、字段名 数据类型 primary key,
2、primary key(字段名)
2、在已有表中创建
alter table 表名 add primary key(字段名);
3、删除
alter table 表名 drop primary key;
4、自增长属性(auto_increment)
1、作用:通常和主键字段一起配合使用
2、创建
1、创建表时创建
字段名 数据类型 primary key auto_increment
2、在已有表中添加自增长属性(modify)
alter table 表名 modify 字段名 数据类型 primary key auto_increment
5、删除主键及自增长属性
1、alter table 表名 modify 字段名 数据类型;
2、alter table 表名 drop primay key;
4、外键索引(foreign key)
1、定义
让当前表的字段值在另一个表的范围内选择
2、语法格式
foreign key(参考字段名)
references 被参考表名(被参考字段名)
on delete 级联动作
on update 级联动作
3、案例
表1:缴费信息表(财务)
学号 姓名 班级 缴费金额
1 唐伯虎 AID1712 28000
2 点秋香 AID1712 20000
表2:学生信息表(班主任)
学号 姓名 缴费金额
1 唐伯虎 28000
4、删除外键
1、语法格式
alter table 表名 drop foreign key 外键名;
2、注意
1、外键名的查看方式
show create table 表名;
5、在已有表中添加外键
1、语法格式
alter table 表名 add
foreign key(参考字段名) references
被参考表名(被参考字段名)
on delete 级联动作
on update 级联动作
2、注意
在已有表中添加外键时,会受到表中原有数据的限制