单列索引:单列索引就是索引只包含原表的一个列 。在表中的单个字段上创建索引,单列索引只根据该字段进行索引 。
例如在student 表中的 address 字段上建立名为 index_addr 的单列索引,address 字段的数据类型为 VARCHAR(20),索引的数据类型为 CHAR(4) 。SQL 语句如下:
CREATE INDEX index_addr ON student(address(4));
这样,查询时可以只查询 address 字段的前 4 个字符,而不需要全部查询 。
**多列索引也称为复合索引或组合索引 。**相对于单列索引来说,组合索引是将原表的多个列共同组成一个索引 。
多列索引是在表的多个字段上创建一个索引 。该索引指向创建时对应的多个字段,可以通过这几个字段进行查询 。但是,只有查询条件中使用了这些字段中第一个字段时,索引才会被使用 。
下面在 student 表中的 name 和 address 字段上建立名为 index_na 的索引,SQL 语句如下:
CREATE INDEX index_na ON tb_student(name,address);
该索引创建好了以后,查询条件中必须有 name 字段才能使用索引 。
一个表可以有多个单列索引,但这些索引不是组合索引 。一个组合索引实质上为表的查询提供了多个索引,以此来加快查询速度 。比如,在一个表中创建了一个组合索引(c1,c2,c3),在实际查询中,系统用来实际加速的索引有三个:单个索引(c1)、双列索引(c1,c2)和多列索引(c1,c2,c3) 。2.2 索引的查看查看索引的语法格式如下:
SHOW INDEX FROM <表名>
查询结果说明如下:
文章插图
2.3 索引的创建创建索引有3种方式:
1、CREATE INDEX直接创建:
可以使用专门用于创建索引的 CREATE INDEX 语句在一个已有的表上创建索引,但该语句不能创建主键 。
CREATE <索引名> ON <表名> (<列名> [<长度>] [ ASC | DESC])
语法说明如下:
- <索引名>:指定索引名 。一个表可以创建多个索引,但每个索引在该表中的名称是唯一的 。
- <表名>:指定要创建索引的表名 。
- <列名>:指定要创建索引的列名 。通常可以考虑将查询语句中在 JOIN 子句和 WHERE 子句里经常出现的列作为索引列 。
- <长度>:可选项 。指定使用列前的 length 个字符来创建索引 。使用列的一部分创建索引有利于减小索引文件的大小,节省索引列所占的空间 。在某些情况下,只能对列的前缀进行索引 。索引列的长度有一个最大上限 255 个字节(MyISAM 和 InnoDB 表的最大上限为 1000 个字节),如果索引列的长度超过了这个上限,就只能用列的前缀进行索引 。另外,BLOB 或 TEXT 类型的列也必须使用前缀索引 。
- ASC|DESC:可选项 。ASC指定索引按照升序来排列,DESC指定索引按照降序来排列,默认为ASC 。
- 普通索引:CREATE INDEX index_name ON student (name)
- 唯一索引:CREATE UNIQUE index_name ON student (name)
- 建表创建:CREATE TABLE student(id INT NOT NULL,name CHAR(45) DEFAULT NULL,INDEX(name));
- ALTER TABLE:ALTER student ADD INDEX index_name (name)
索引也可以在创建表(CREATE TABLE)的同时创建 。在 CREATE TABLE 语句中添加以下语句 。例如创建student表时在name字段添加索引:
- 主键索引:CREATE TABLE student(name CHAR(45) PRIMARY KEY);
- 唯一索引:CREATE TABLE student(id INT NOT NULL,name CHAR(45) DEFAULT NULL,UNIQUE INDEX(name));
- 普通索引:CREATE TABLE student(id INT NOT NULL,name CHAR(45) DEFAULT NULL,INDEX(name));
ALTER TABLE 语句也可以在一个已有的表上创建索引 。例如在student表name字段上创建一个普通索引index_name:
- 主键索引:ALTER TABLE student ADD PRIMARY KEY (name);
- 唯一索引:ALTER TABLE student ADD UNIQUE INDEX index_name(name);
- 工龄有多大用 工龄有什么用
- 肝脏的作用有哪些 肝什么用
- 薄情寡义之人都有什么面相特征?
- 继电器什么功能和作用 继电器有什么用
- 富贵耳相具有什么样的特征?
- 女人面相:水性杨花的女人有什么特征?
- 房产证有哪些作用 房产证有什么用
- 石油还有这些用途 石油有什么用
- 什么面相的男人有前途?
- 心狠手辣之人面相有什么特点?