初学mysql(六)-数据库之索引

上一篇博客讲述了mysql数据库的连接查询、子查询和合并查询。这一篇博客我来说说mysql数据库中的索引。

A):索引:它由数据库中表的一个列或多个列组合形成索引,其目的是加快数据的查询速度。类似与我们的身份证上的编码,可以快速定位需要的东西。数据库中的主键就是一个特殊的唯一性索引。它的优点是提升了在数据库表中的查询速度,缺点是增加了创建和维护索引的时间。

索引可以分为:

1:普通索引(可以创建在书库表中的任意一列)、

2:唯一性索引(唯一性索引由unique关键字修饰,创建唯一性索引后,该列的值必须是唯一的)、

3:全文索引(全文索引由fulltext关键字修饰,它只能在char、varchar、text字段上设置,主要作用是提高查询较大字符串类型的速度。mysql默认的引擎不支持,myISAM引擎支持)、

4:空间索引(空间索引由spatial关键字修饰,它只能建立在空间数据的类型上,这样可以提高获取空间数据的速率,mysql默认引擎不支持,myISAM引擎支持)、

 5:单列索引(在数据库中的表的某一列创建为索引,单列索引可以为普通的单列索引、唯一的单列索引、全文的单列索引)、

6:多列索引(同理多列索引对应于单列索引)。

B):实例:

1):创建表时直接创建普通单列索引,索引名字为index_id:        

 CREATE TABLE t_user(
        id INT,
        userName VARCHAR(20),
        PASSWORD VARCHAR(20),
        INDEX index_id(id)
   );

 2):创建表时直接创建唯一性单列索引,索引名字默认: 

 CREATE TABLE t_user(
        id INT,
        userName VARCHAR(20),
        PASSWORD VARCHAR(20),
        unique INDEX index_id(id)
   );

3):创建表时直接创建普通多列索引,索引名字为系统默认:    

  CREATE TABLE t_user(
         id INT PRIMARY KEY AUTO_INCREMENT,
         userName VARCHAR(20),
         PASSWORD VARCHAR(20),
        INDEX (userName, PASSWORD)
    );

4):创建表时直接创建唯一性多列索引,索引名字为index_userName_passwors:

  CREATE TABLE t_user(
           id INT PRIMARY KEY AUTO_INCREMENT,
           userName VARCHAR(20),
           PASSWORD VARCHAR(20),
         unique INDEX index_userName_password(userName, PASSWORD)
    );

总结创建表时直接创建索引代码:create table 表名(字段名1  字段属性1,字段名2  字段属性2, [unique] index 索引名(字段1,字段2,.......))

创建表:     

    create table t_user(
                 id int not null,
                userName varchar(20), 
                password varchar(20)
             );

用关键字create创建索引。

1):上面创建的表在存在的表中创建id的普通单列索引:

create index index_id on t_user (id);

2):创建userName,password为多列唯一索引:

 create unique index index_userName_password on t_user (userName, password);

 

     总结:create [unique] index [索引名] on 表名(字段1,字段2,.......)

创建表:

create table t_user(
     id int not null,
     userName varchar(20), 
     password varchar(20)
);

用关键字alter创建索引。

1):创建id为普通单列索引:

alter table t_user add index index_id(id);

 2):创建userName,password为唯一的多列索引:         

alter table t_user add unique index index_userName_password(userName, password);

总结:

alter table 表名 add [unique] index 索引名(字段1,字段2,......) 

 删除索引:删除t_user表中索引名为index_id的索引:

  drop index index_id on t_user;

总结:

drop index 索引名  on  表名; 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值