MySql数据库-12索引

index:指标;指数;索引;指针

概念:索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。


作用:在数据库中用来加速对表的查询


自动: 当在表上定义一个primary key 或者unique 约束条件时, 数据库自动创建一个对应的索引.
        如果该字段没有添加唯一约束,在给该字段添加唯一索引后会自动给该字段添加唯一约束。

二叉树索引
哈希索引

查看索引
show index from 表名;

一. 普通索引
          最基本的索引,它没有任何限制


      语法:
 
           1,创建表时直接添加索引:
                        create table 表名(列名1   类型 , 列名2  类型.......,index  索引名称(列名1));
                              例:create table user (id  int, name  text ,index  index_id(id));


           2,对存在表的字段添加索引:
            直接创建索引(可以自定义索引名称)
                                  create index  索引名(自己定义)   on 表名(要添加索引的列名) 
                                          例:create index index_id on user (id);


                        修改表结构的方式添加索引(名字与列名相同)
                                  alter table  表名  add  index (列名);
                                         例:alter  table  user add index (id);


二. 唯一索引

                与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值(注意和主键不同)。如果是组合索引,则列值的组合必须唯一,创建方法和
                普通索引类似。
                            
          语法:


                     1.创建表时直接添加索引:
                               create table 表名(列名1   类型 , 列名2  类型.......,unique index  索引名称(列名1));
                                         例:create table user (id  int, name  text ,unique index  index_name(name));


                     2.对存在表的字段添加索引:
                                直接创建索引(可以自定义索引名称)
                                  create unique index  索引名(自己定义) on 表名(要添加索引的列名) 
                                          例:create unique index index_id on user (id);


                              修改表结构的方式添加索引(名字与列名相同)
                                    alter table  表名  add  unique(列名);
                                         例:alter table user add  unique(id);

删除 索引:
       
        语法:
                1.   drop  index 索引名称(如果没有就是列名) on 表名;
                         例: drop index index_id on user;


                2.   alter table 表名 drop index 索引名;
                         例: alter table a drop index index_id

注意:text字段创建索引(前提是表引擎应该是MyISAM的)



关于善知教育(官网:[善知教育](http://www.itszt.com/) 微信公众号:善知技术)

地址:北京东燕郊经济技术开发区文化大厦

咨询老师:郑老师 电话/微信:13315631002 QQ:1939441377

目前我们开设Java服务器、HTML5前端网页、Android移动端、PHP服务器;有全日制班、有周末班;

学费优惠至8480!!!!!! 




扫描二维码关注公众号,回复: 11565261 查看本文章

猜你喜欢

转载自blog.csdn.net/itszt888/article/details/78496709