程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql基礎操作學習筆記(2)----索引,mysql學習筆記

mysql基礎操作學習筆記(2)----索引,mysql學習筆記

編輯:MySQL綜合教程

mysql基礎操作學習筆記(2)----索引,mysql學習筆記


為什麼要創建索引?

    在此本人也帶著相同的疑問,能夠解釋的僅僅是:為了減少數據庫查詢時所需要的速度。如果正常查詢和索引查詢所需時間相差很多倍時我們自然是需要索引的了。

想要知道結果,只能等我學得更加深入一點咯。

 

創建索引

      創建索引有三種方法:(1)在創建表時創建索引; (2)使用ALTER TABLE 語句創建索引;(3)使用CREATE INDEX語句創建索引。

      創建索引的類型有:普通索引(INDEX),唯一索引(UNIQUE INDEX),全文索引(FULLTEXT INDEX),空間索引(SPATIAL INDEX);其中全文索引,空間索引必須在MyISAM存儲引擎下創建,且全文索引必須在數據類型為:CHAR、VARCHAR和TEXT的列上建立。

下面進行舉例:

一、創建表時創建索引

      1、創建普通索引

 CREATE TABLE T1
      (
        id           INT NOT NULL,
      name     CHAR(50)  NULL,
      INDEX   SingleIdx(name)
       )

      創建普通索引的語句為INDEX [索引名](列名),其中列名可以為多個,即以多個關鍵字創建索引。

     2、創建唯一索引

CREATE TABLE T1
(
 id            INT NOT NULL,
 name      CHAR(30) NOT NULL,
 UNIQUE INDEX UniqIdx(id)
)

   創建唯一索引的語句為 UNIQUE INDEX [索引名](列名)

     3、創建全文索引

CREATE TABLE T1
(
 id          INT NOT NULL,
 name    CHAR(30) NOT NULL,
 age       INT NOT NULL,
 info       VARCHAR(255),
 FULLTEXT  INDEX FullTxtIdx(info)
) ENGINE=MyISAM;

  創建全文索引的語句為 FULLTEXT INDEX [索引名](列名),  其中存儲引擎為MyISAM

  4、創建空間索引

CREATE TABLE T1
(
 g  GEOMETRY NOT NULL,
 SPATIAL INDEX spatLdx(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 [表名];

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved