一、索引主要类型
PRIMARY KEY(主键索引)
UNIQUE(唯一索引)
INDEX(普通索引)
FULLTEXT(全文索引)
索引创建的通用语法
alter table 表名 add index 索引名称(数据库字段名称);
PRIMARY KEY(主键索引)
alter table 'table_name' add primary key (column);
UNIQUE(唯一索引)
alter table 'table_name' add unique (column);
INDEX(普通索引)
alter table 'table_name' add index 'index_name' (column1、column2、....);
FULLTEXT(全文索引)
alter table 'table_name' add fulltext (column);
二、各类索引创建语法
1.普通索引
这是最基本的索引,它没有任何限制。它有以下几种创建方式:
(1)创建索引:create index 'indexname' on 'tablename'(tableColumns(length));
如果是char,varchar类型,length可以小于字段实际长度;如果是blob和text类型,必须指定length,下同。
(2)修改表结构:alter table 'tablename' add index [indexName] ON ('tablecolumns');
(3)创建表的时候直接指定:create table 'tablename' ( […], index ['indexName'] ('tablecolumns');
2.唯一索引
它与前面的"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
(1)创建索引:create unique index 'indexname' on 'tablename'('tablecolumns');
(2)修改表结构:alter table 'tablename' add unique ['indexname'] on ('tablecolumns');
(3)创建表的时候直接指定:create table 'tablename' ( […], unique ['indexname'] ('tablecolumns') ;
3、主键索引
它是在唯一索引索引的基础上加了非空限制:unique+not null(唯一,非空)
(1)修改表结构:alter table 'tablename' add primary key('tableColumns');
(2)创建表的时候直接指定:create table 'tablename' ( […] primary key ) ;
4、全文索引
MySQL 5.6 及以后的版本,MyISAM 和 InnoDB 存储引擎均支持全文索引;
只有字段的数据类型为 char、varchar、text 及其系列才可以建全文索引。它有以下几种创建方式:
(1)创建索引:create fulltext index 'indexname' on 'tablename'('tablecolumns');
(2)修改表结构:alter table 'tablename' add fulltext index ('tablecolumns');
(3)创建表的时候直接指定:create table 'tablename' ( […] fulltext key ['indexname'] ('tablecolumns') ;
5、auto_increment
是自动增加,只能修饰数值类型的,一个表中只能有一个,而且这个字段必须是索引
一直是从记录中的最大值往上递加,即使是把记录全部删除还会从最后的标记处增加。创建方式:
(1)创建自增:create table 'tablename'([…] auto_increment));
三、索引的删除
索引删除的通用语法
alter table 表名 drop index 索引名称(数据库字段名称);
PRIMARY KEY(主键索引)
alter table 'table_name' drop primary key;
UNIQUE(唯一索引)
alter table 'table_name' drop index 'index_name';
INDEX(普通索引)
alter table 'table_name' drop index 'index_name' ;
drop index 'index_name' on 'tablename';
FULLTEXT(全文索引)
alter table 'table_name' drop index 'index_name' ;
drop index 'index_name' on 'tablename';
NOT NULL(非空约束)
alter table 'table_name' modify 'columnname' 'datatype' not null;
标签:index,name,tablename,索引,mysql,类型,table,alter From: https://blog.51cto.com/u_15575266/6026182