入坑数据库MySQL(4)-索引

559 阅读1分钟

索引的概念

数据库的索引好比新华字典的音序表,它是对数据表中一列或多列的值进行排序后的一种结构,其作用就是提高表中数据的查询速度。

索引的分类

  • 普通索引:基本索引类型
  • 唯一性索引:该索引所在字段的值必须是唯一的
  • 全文索引:定义在字符串类型上的索引
  • 空间索引:只能创建在空间数据类型上
  • 单列索引:在单个字段上创建的索引
  • 多列索引:在多个字段上创建的索引

创建索引

创建表时创建索引

基本语法格式:

   CREATE TABLE 表名称
   (
       字段名 数据类型  [完整性约束条件],
       字段名 数据类型  [完整性约束条件],
        …………
       字段名 数据类型 ,
       [ UNIQUE | FULLTEXT | SPATIAL ]  INDEX | KEY 
             [索引名]  (字段名 [(长度)]  [ASC | DESC] ) 
    );

UNIQUE :唯一索引
FULLTEXT:全文索引
SPATIAL :空间索引
INDEX | KEY :表示索引,二选一即可
字段名:要添加索引的字段
长度:索引的长度
ASC | DESC :ASC为升序排序,DESC为降序排序,默认是ASC升序排序

使用CREATE INDEX语句 在已有表上创建索引

基本语法格式:

CREATE    [ UNIQUE | FULLTEXT | SPATIAL ]  INDEX   索引名
ON 表名    (字段名 [(长度)]  [ASC | DESC] ) ]  ;

使用ALTER TABLE语句 在已有表上创建索引

基本语法格式:

 ALTER TABLE  表名
   ADD [ UNIQUE | FULLTEXT | SPATIAL ]  INDEX   索引名
    (字段名 [(长度)]  [ASC | DESC] ) ]

删除索引

使用ALTER TABLE语句 在删除索引

基本语法格式:

 ALTER TABLE  表名
   DROP INDEX 索引名;

使用DROP INDEX语句 在删除索引

基本语法格式:

 DROP INDEX 索引名 ON 表名 ;

查看表中的索引

基本语法格式:

    SHOW INDEX FROM 表名;