索引的操作
1.索引的创建
创建表时创建普通索引
CREATE TABLE table_name(
属性名 数据类型,
属性名 数据类型,
.....
属性名 数据类型,
INDEX | KEY 【索引名】(属性名1 【(长度)】【ASC | DESC】);
);
eg:
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
INDEX index_deptno(deptno)
);
在已经存在的表上创建普通索引
CREATE INDEX 索引名
ON 表名(属性名 【(长度)】【ASC|DESC】);
eg:
CREATE INDEX index_deptno
ON t_dept (deptno);
通过ALTER TABLE创建普通索引
ALTER TABLE table_name
ADD INDEX | KEY 索引名(属性名 【(长度)】【ASC|DESC】);
eg:
ALTER TABLE t_dept
ADD INDEX index_deptno(deptno);
创建表时创建唯一索引
CREATE TABLE table_name(
属性名 数据类型,
属性名 数据类型,
.....
属性名 数据类型,
UNIQUE INDEX|KEY 【索引名】(属性名1 【(长度)】【ASC|DESC】);
eg:
CREATE TABLE t_dept(
deptno INT UNIQUE,
dname VARCHAR(20),
loc VARCHAR(40),
UNIQUE INDEX index_deptno(deptno)
);
在已经存在的表上创建唯一索引
CREATE UNIQUE INDEX 索引名
ON 表名(属性名 【(长度)】【ASC|DESC】);
eg:
CREATE UNIQUE INDEX index_deptno
ON t_dept (deptno);
通过ALTER TABLE创建唯一索引
ALTER TABLE table_name
ADD UNIQUE INDEX | KEY 索引名(属性名 【(长度)】【ASC|DESC】);
eg:
ALTER TABLE table_name
ADD UNIQUE INDEX index_deptno(deptno):
创建表时创建全文索引
CREATE TABLE table_name(
属性名 数据类型,
属性名 数据类型,
.......
属性名 数据类型,
FULLTEXT INDEX|KEY 【索引名】(属性名1 【(长度)】【ASC|DESC】)
);
eg:
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
FULLTEXT INDEX index_loc(loc)
) ENGINE=MyISAM;
在已经存在的表上创建全文索引
CREATE FULLTEXT INDEX 索引名
on 表名 (属性名 【(长度)】【ASC|DESC】);
eg:
CREATE FULLTEXT INDEX index_loc
ON t_dept (loc);
通过ALTER TABLE创建全文索引
ALTER TABLE table_name
ADD FULLTEXT INDEX|KEY 索引名(属性名 【(长度)】【ASC|DESC】);
eg:
ALTER TABLE t_dept
ADD FULLTEXT INDEX index_loc(loc);
创建表时创建多列索引
CREATE TABLE table_name(
属性名 数据类型
属性名 数据类型
.......
属性名 数据类型
INDEX | KEY 【索引名】 (属性名1 【(长度)】【ASC|DESC】),
....
属性名n 【(长度)】【ASC|DESC】)
);
eg:
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
KEY index_dname_loc(dname,loc)
);
在已经存在的表上创建多列索引
CREATE INDEX 索引名
ON 表名(属性名 【(长度)】【ASC|DESC】,
....
属性名 n 【(长度)】【ASC|DESC】
);
eg:
CREATE INDEX index_dname_loc
ON t_dept (dname,loc);
通过ALTER TABLE创建多列索引
ALTER TABLE table_name
ADD INDEX | KEY 索引名(属性名 【(长度)】【ASC|DESC】,
......
属性名 n 【(长度)】【ASC|DESC】
);
eg:
ALTER TABLE t_dept
ADD INDEX index_dname_loc(dname,loc);
2.删除索引
DROP INDEX index_name
ON table_name
eg:
DROP INDEX index_dname_loc
ON t_dept;