MySQL数据库-表索引-多列索引
多列索引,是指在创建索引时所关联的字段不是⼀个字段,⽽是多个字段,虽然可以通过所关联的字段进⾏查询,但是只有查询条件中使⽤了所关联字段中的第⼀个字段,多列索引才会被使⽤。
创建表时定义索引
语法:
CREATE TABLE tablename(
propName1 type1,
propName2 type2,
...
INDEX|KEY[indexname](propName1[(length)] [ASC|DESC],
propName2[(length)] [ASC|DESC],
....
propNamen[(length)] [ASC|DESC]));
注意:和普通索引定义基本相同,不同之处就是增加多个索引列。
代码⽰例:
mysql> create table class(id int,name varchar(64),index mul_indexs(id,name)); #创建表class, 并建⽴包含id,name字段的多列索引
mysql> show create table class; #查看表定义
mysql> insert into class values(1,'Mr.Wang'); #插⼊数据
mysql> insert into class values(2,'Mr.Lang');
mysql> select*from class where id>0; #仅根据id查询记录会启⽤多列索引
mysql> explain select*from class where id>0; #检验是否使⽤多列索引
创建表的同时创建多列索引
此时我们为多列索引起了个名字为mul_indexs。
我们对表插⼊了两条数据,并可看到查询时确实会启⽤多列索引。已存在的表上创建索引
⽅法⼀:执⾏create语句
语法:
CREATE INDEX indexname
ON tablename(propName1[(length)] [ASC|DESC],
propName2[(length)] [ASC|DESC],
propNamen[(length)] [ASC|DESC]);
上述语句中,关键字CREATE INDEX来表⽰⽤来创建多列索引。代码⽰例:
mysql> create table class1(id int,name varchar(64)); #创建表mysql> create index mul_indexs1 on class1(id,name); #追加多列索引
mysql> show create table class1; #查看表的定义
我们创建⼀个普通的表后再追加多列索引并命名为mul_indexs1插⼊数据与上⽂相同。
⽅法⼆:执⾏ALTER TABLE语句
除了上述两种⽅式来创建全⽂索引外,在MySQL中创建全⽂索引还可以通过SQL语句ALTER来实现,其语法如下:ALTER TABLE tablename
ADD INDEX|KEY indexname(propName1[(length)] [ASC|DESC],
propName2[(length)] [ASC|DESC],
....
propNamen[(length)] [ASC|DESC]);
代码⽰例:
mysql> create table class2(id int,name varchar(64)); #创建表
mysql> alter table class2 add index mul_indexs2(id,name); #对字段id和name追加多列索引
mysql> show create table class2; #查看表的定义
mysql数据库的方法同样的⽅法创建表,这次⽤了alter table语句追加多列索引,并命名为mul_indexs2,插⼊数据与上⽂操作相同。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论