您的位置:首页 > 数据库 > MySQL

mysql操作索引的sql语句

2014-02-20 12:08 507 查看

[b]创建索引[/b]

一:唯一索引
alter table table_name add unique index_name(column_list);
  例如:alter table users_game_task add unique unique_userid_taskid(userid, taskid);

二:主键索引:PRIMARY KEY(主键索引)
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

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) ;


[b]查询索引[/b]

SHOW INDEX FROM table_name;


[b]删除索引[/b]

方法一: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命令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐