mysql命令urrer_mysql基础操作学习笔记(2)----索引

为什么要创建索引?

在此本人也带着相同的疑问,能够解释的仅仅是:为了减少数据库查询时所需要的速度。如果正常查询和索引查询所需时间相差很多倍时我们自然是需要索引的了。

想要知道结果,只能等我学得更加深入一点咯。

创建索引

创建索引有三种方法:(1)在创建表时创建索引; (2)使用ALTER TABLE 语句创建索引;(3)使用CREATE INDEX语句创建索引。

创建索引的类型有:普通索引(INDEX),唯一索引(UNIQUE INDEX),全文索引(FULLTEXT INDEX),空间索引(SPATIAL INDEX);其中全文索引,空间索引必须在MyISAM存储引擎下创建,且全文索引必须在数据类型为:CHAR、VARCHAR和TEXT的列上建立。

下面进行举例:

一、创建表时创建索引

1、创建普通索引

CREATE TABLET1

(

idINT NOT NULL,

nameCHAR(50) NULL,INDEXSingleIdx(name)

)

创建普通索引的语句为INDEX [索引名](列名),其中列名可以为多个,即以多个关键字创建索引。

2、创建唯一索引

CREATE TABLET1

(

idINT NOT NULL,

nameCHAR(30) NOT NULL,UNIQUE INDEXUniqIdx(id)

)

创建唯一索引的语句为 UNIQUE INDEX [索引名](列名)

3、创建全文索引

CREATE TABLET1

(

idINT NOT NULL,

nameCHAR(30) NOT NULL,

ageINT NOT NULL,

infoVARCHAR(255),

FULLTEXTINDEXFullTxtIdx(info)

) ENGINE=MyISAM;

创建全文索引的语句为 FULLTEXT INDEX [索引名](列名),  其中存储引擎为MyISAM

4、创建空间索引

CREATE TABLET1

(

g GEOMETRYNOT NULL,

SPATIALINDEXspatLdx(g),

) ENGINE= MyISAM;

创建空间索引的语句为 FULLTEXT INDEX [索引名](列名),  其中存储引擎为MyISAM

二、在已有表上创建索引

1、使用ALTER TABLE 语句创建索引

其中基本语法为: ALTER TABLE table_name ADD [索引种类] [索引名](字段);

如:

普通索引: ALTER TABLE book ADD INDEX BkNameIdx(bookname(30) );

唯一索引: ALTER TABLE book ADD UNIQUE INDEX UniqidIdx( bookId );

全文索引: ALTER TABLE book ADD FULLTEXT INDEX infoIdx( info);

空间索引: ALTER TABLE book ADD SPATIAL INDEX spatIdx( g );

2、使用CREATE INNDEX语句创建索引

其中基本语法为:

CREATE [索引种类] INDEX [索引名] ON [表名](字段名)

如:

普通索引: CREATE INDEX BkNameIDX ON book(bookname);

唯一索引: CREATE UNIQUE INDEX UniqidIdx ON book( bookId );

全文索引: CREATE FULLTEXT INDEX ON T1(info);

空间索引: CREATE SPATIAL INDEX spatIdx ON T1(g);

3、删除索引

a、用ALTER TABLE 删除:

ALTRER TABLE [表名] DROP INDEX [索引名];

b、用DROP INDEX删除:

DROP INDEX [索引名] ON [表名];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值