多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
**1. 索引分类** * 单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。 * 组合索引:即一个索引包含多个列。 >[info]提醒:主键本身就是一个索引、unique的列本身也是一个索引。 **2. 创建索引方式** >[warning]索引名称`indexName`自定义,但要保证在一张表中唯一 (1)创建方式1:`create`语句创建。 ```sql # 单列索引 mysql> create index indexName on tableName(column_name); # 组合索引 mysql> create index indexName on tableName(column_list); # 唯一索引 mysql> create unique index indexName on tableName(column_list); # 主键索引 mysql> ceate primary key index indexName on tableName(column_list) ``` (2)创建方式2:建表时就添加索引。 ```sql mysql> create table tableName( id varchar(255) primary key not null, # 主键本身就是一个单列索引 card varchar(255) unique not null, # unique 声明的列本身就是一个单列索引 name varchar(255), age int, index indexName(name, age) # 创建索引 ) ``` (3)通过`alter`命令添加索引。 ```sql mysql> alter table tableName add primary key indexName(column_list); mysql> alter table tableName add unique indexName(column_list); mysql> alter table tableName add index indexNamei(column_list); #全文索引 mysql> alter table tableName add fulltext indexName(column_list); ``` **3. 删除索引** ```sql (1)方式1 mysql> drop index indexName on tableName; (2)方式2 mysql> alter table tableName drop index indexName; ``` **4. 查看一张表的所有索引** ```sql mysql> show index from student; +---------+------------+-----------+--------------+-------------+-----------+-------------+... | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | S... +---------+------------+-----------+--------------+-------------+-----------+-------------+... | student | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | ... | student | 0 | indexName | 1 | name | A | 1 | NULL | NULL | Y... | student | 0 | indexName | 2 | sex | A | 1 | NULL | NULL | YES... +---------+------------+-----------+--------------+-------------+-----------+-------------+... ``` **** 参考文档:https://www.runoob.com/mysql/mysql-index.html