多列索引的概念
多列索引,是指在创建索引时所关联的字段不是一个字段,而是多个字段,虽然可以通过所关联的字段进行查询,但是只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用。
多列索引的创建
创建表时定义索引
语法
CREATE TABLE tablename(
propname1 type1,
……
propnamen type..n,
INDEX | KEY [indexname] (propname1 [(length)] [ ASC | DESC ],
Propname2 [(length)] [ ASC | DESC ],
... ...
Propnamen [(length)] [ ASC | DESC ])
);
注意:和普通索引定义基本相同,不同之处就是增加了多个索引列。
SQL语句示例
create table class(
id int ,
name varchar(128) unique ,
teacher varchar(64),
index index_mult_columns(id asc,
teacher)
);
插入测试数据
insert into class
values(1,'一班','王老师'),
(2,'二班','张老师'),
(3,'三班','李老师');
只有查询条件中使用了所关联字段中的第一个字段,多列索引才会被使用。例如:
select * from class where id>0 and teacher='王老师';
查询结果
如果没有使用第一个字段,则不会启用多列索引。例如:
已经创建的表上创建索引
执行create语句
语法
CREATE INDEX indexname
ON tablename( propname1 [(length)] [ ASC | DESC ],
Propname2 [(length)] [ ASC | DESC ],
... ...
Propnamen [(length)] [ ASC | DESC ] );
在上述语句中,关键字CREATE INDEX表示用来创建多列索引。例如:
create table class(
id int ,
name varchar(128) unique ,
teacher varchar(64)
);
create index index_mult_columns
on class (id,
teacher);
执行ALTER TABLE 语句
除了上述两种方式来创建全文索引外,在MySQL中创建全文索引还可以通过SQL语句ALTER来实现,其语法形式如下:
ALTER TABLE tablename
ADD INDEX|KEY indexname(propname1 [(length)] [ ASC | DESC ],
Propname2 [(length)] [ ASC | DESC ],
... ...
Propnamen [(length)] [ ASC | DESC ] );
SQL语句示例
create table class(
id int ,
name varchar(128) unique ,
teacher varchar(64)
);
alter table class
add index index_mult_columns(id,
teacher);
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓