创建索引
1
2
3
|
一:唯一索引<br> alter
table table_name add
unique index_name(column_list);<br> 例如: alter
table users_game_task add
unique unique_userid_taskid(userid, taskid);<br><br>二:主键索引: PRIMARY
KEY (主键索引)<br> ALTER
TABLE `table_name` ADD
PRIMARY KEY ( ` column ` )<br><br><br><br> alter
table table_name add
index index_name (column_list) ;
alter table table_name add
unique index index_name(column_list) ;
alter table table_name add
primary key (column_list) ;
|
查询索引
1
|
SHOW INDEX
FROM table_name;
|
删除索引
方法一:drop index index_name on table_name ;
方法二:alter table table_name drop index index_name ;
alter table table_name drop primary key ;
其中,在前面的两条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。
INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name (
`column` )
FULLTEXT(全文索引)
ALTER TABLE `table_name` ADD FULLTEXT (
`column` )
多列索引
ALTER TABLE `table_name` ADD INDEX index_name (
`column1`, `column2`, `column3` )
1.普通索引。
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
(1)创建索引:CREATE INDEX indexName ON
tableName(tableColumns(length));如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是 BLOB 和
TEXT 类型,必须指定length,下同。
(2)修改表结构:ALTER tableName ADD INDEX [indexName] ON
(tableColumns(length))
(3)创建表的时候直接指定:CREATE TABLE tableName ( [...], INDEX
[indexName] (tableColumns(length)) ;
2.唯一索引。
它与前面的"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
(1)创建索引:CREATE UNIQUE INDEX indexName ON tableName(tableColumns(length))
(2)修改表结构:ALTER tableName ADD UNIQUE [indexName] ON (tableColumns(length))
(3)创建表的时候直接指定:CREATE TABLE tableName ( [...], UNIQUE [indexName]
(tableColumns(length));
3.主键索引
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:CREATE TABLE testIndex(i_testID INT NOT
NULL AUTO_INCREMENT,vc_Name VARCHAR(16) NOT NULL,PRIMARY KEY(i_testID));
当然也可以用ALTER命令。