365直播电视版下载-beat365官网在线体育-beat365英国在线体育

MySQL-创建表时建立索引和在已存在表中添加索引

MySQL-创建表时建立索引和在已存在表中添加索引

MySQL提供了多种在单列或多列上创建索引的方法:一种是在创建表时指定索引列;另一种是使用ALTER TABLE 语句在已存在的表上创建索引,或者使用CREATE INDEX 在已存在的表上创建索引。

1. 在 创建表时创建【普通】索引

语法格式为:

CREATE TABLE Y1 (

COLUMN_NAME DATA_TYPE SCHEME,

[UNIQUE | FULLTEXT | SPATIAL] [INDEX | KEY ] INDEX_NAME([LENGTH],.....) [ASC | DESC]

)

UNIQUE | FULLTEXT | SPATIAL 这三个是可选项,UNIQUE 为唯一索引,FULLTEXT 为全文索引,SPATIAL 为空间索引,其中FULLTEXT 和SPATIAL InnoDB 存储引擎不支持,MyISAM存储引擎支持;INDEX 和 KEY 为同义词,创建索引时使用它们中任何一个都可以,INDEX_NAME 为索引名称,可选参数,如果不指定,缺省(默认值)为COLUMN_NAME ,LENGTH 为可选参数,可以指定索引的长度,需注意的是,只有字符串类型的列才能指定索引长度,ASC 或 DESC 指定升序或者降序的索引值存储。

使用INDEX 创建 SQL:

```sql

CREATE TABLE Y1 (

ID INT (10) AUTO_INCREMENT NOT NULL,

NAME VARCHAR (20) NOT NULL,

SEX INT (1) NOT NULL DEFAULT 0,

INDEX IDX (ID)

)

--创建普通索引

CREATE TABLE T4 (

ID INT NOT NULL,

NAME CHAR(30) NOT NULL,

AGE INT NOT NULL,

INFO VARCHAR(255),

FULLTEXT INDEX FULLTEXTIDX(INFO)

) ENGINE=MyISAM

-- FullText 全文索引,需指定存储引擎为MyISAM,MySQL默认存储引擎为InnoDB

CREATE TABLE T5 (

G GEOMETRY NOT NULL,

SPATIAL INDEX SPATINDEX (G)

) ENGINE = MYISAM

-- SPATIAL 创建空间索引,需指定存储引擎为MyISAM,MySQL默认存储引擎为InnoDB

-- 创建唯一索引

CREATE TABLE Y3(

ID INT NOT NULL,

NAME CHAR(20),

UNIQUE INDEX UNIQUEIDX(ID)

)ENGINE = INNODB

-- 创建组合索引

CREATE TABLE Y4(

ID INT NOT NULL,

NAME CHAR(20),

AGE INT NOT NULL,

INDEX MULTIIDX(ID,NAME(19),AGE)

) ENGINE= INNODB

使用KEY创建索引 SQL

CREATE TABLE Y2 (

ID INT NOT NULL,

NAME VARCHAR (233) NOT NULL,

KEY IDX (ID)

) ENGINE = INNODB DEFAULT CHARSET = UTF8

--用KEY创建普通索引

**

2. 在已存在表中添加索引

**

基本语法分两种,第一种语法为

2.1:

ALTER TABLE TABLE_NAME ADD [UNIQUE | FULLTEXT | SPATIAL] [INDEX | KEY ] INDEX_NAME(COLUMN_NAME(LENGTH),.....) [ASC | DESC]

SQL:

ALTER TABLE t1 ADD UNIQUE INDEX ALTERIDX(NAME)

-- 使用ALTER TABLE 语句创建索引

2.2:

第二种语法为:

CREATE [UNIQUE | FULLTEXT | SPATIAL] [INDEX | KEY ] INDEX_NAME ON TABLE_NAME(COLUMN_NAME(LENGTH),.....) [ASC | DESC]

SQL :

CREATE UNIQUE INDEX CREIDX ON t4(NAME(20))

-- 使用CREATE INDEX 在已存在表中创建索引

相关推荐