mysql之索引
一、什么是索引?
索引是一种数据结构设计
一个索引是存储的表中数据结构;
索引是建立在表字段上,
索引包含了一列值,这个值保存在一个数据结构中
二、索引作用
1、保证数据记录的唯一性
2、实现表与表之间的参照性
3、减少排序和分组的时间 ( order by 或group by 查询语句进行检索 )
4、可以引用索引快速访问数据库中特定信息
三、索引的缺点
1、索引要占物理内存
2、索引对表进行增删改查,索引要动态维护,降低数据的维护速度
四、索引分类
1、普通索引
2、主键索引
3、唯一索引
拓展:
全文索引、组合索引、单列索引、聚焦索引、非聚焦索引
五、索引的实战
1、索引的查询方法
(1)
格式:show index from 表名
案例:show index from sy ;
(2)
格式:show keys from 表名
案例:show keys from sy ;
(3)
格式:desc 表名
案例:
2、创建索引
(1)创建普通索引
单词:indesx(简写:mul)
定义:最基本的索引,没有任何限制
a、格式: 索引名和字段名(不同)
格式:alter table 表名 add index 索引名(字段名);
案例:alter table emp add index sym(age);
截图:
b、格式: 索引名和字段名(相同)
格式:alter table 表名 add index (字段名);
案例:alter table emp add index (dept2);
截图:
(2)创建主键索引
单词:primary key 简称pri 保证字段:唯一,不能为空,一个表中只有一个主键
格式:
alter table 表名 add primary KEY(字段名)
案例:
alter table emp add primary KEY(sid)
截图:
(3)唯一索引
单词:unique 简称:nui 保证唯一,可以为空,一个表中可以有多个唯一
a、唯一索引中的外键名和字段名不同(不相同)
格式:alter table 表名 add unique 外键名(索引名) ;
案例:alter table sy add unique wy(age) ;
a、唯一索引中的外键名和字段名(相同)
格式:alter table 表名 add unique (字段名) ;
案例:alter table sy add unique (sex) ;
4、删除索引
一、删除普通索引和唯一索引方法
格式:
alter table 表名 drop index 索引名;
案例:
alter table sy drop index sex;
截图:
二、删除主键索引方法
格式:alter tbale 表名 drop primary key
案例:
alter tbale sy drop primary key
截图:
二、建表时添加索引
格式:create table 表名( 字段1 字段类型(字段长度) primary key , 字段1 字段类型(字段长度) unique )
案例:create table cc( id int(10) PRIMARY key ,
sid int(10) unique , name varchar(20) not null ,age int(10) DEFAULT 18 ,sex int(10))DEFAULT charset=utf8
建表创建普通索引:
案例:
create table nn (id int(10) , index sym(id),name varchar(20) not null );
截图:
===============================================
面试题:
1、索引是什么?
2、索引作用?
3、如何创建索引?
4、如何删除索引?
5、主键索引和唯一索引的区别?
都是表示唯一:
主键: 不能为空,一个表中只有一个主键索引
唯一: 能为空,一个表中可有多个唯一索引