MySQL使用教程 六 索引的操作

2021-09-27 12:30:28 字數 4306 閱讀 3437

1、建立和檢視普通索引

普通索引:建立索引時,不附加任何限制條件(唯

一、非空等限制)。該型別的索引可以建立在任何資料型別的字段上。

(1)建立表時建立普通索引

【語法形式】

create table table_name(

屬性名1 資料型別,

屬性名2 資料型別,

屬性名3 資料型別,

index|key 索引名(屬性名1 【(長度)】 【asc|desc】)

);

【例項】

#選擇資料庫

mysql> use test;

#建立索引

mysql> create table t_deptest(

-> deptno int,

-> dname varchar(20),

-> index index_deptno(deptno)

-> );

#校驗索引是否建立成功

mysql> show create table t_deptest \g

#校驗索引是否被使用

mysql> explain select * from t_deptest where deptno=1\g

注:\g後邊不跟分號。否則會有no query specified錯誤

(2)在已經存在的表上建立普通索引

【語法形式】

create index 索引名 on 表名(屬性名 【(長度)】 【asc|desc】);
【例項】

mysql> create index index_deptno on t_dept(deptno);
(3)通過sql語句alter table 建立普通索引

【語法形式】

alter table table_name add index 索引名(屬性名 【(長度)】 【asc|desc】)
【例項】

mysql> alter table t_dept add index index_deptno(deptno);
2、建立和檢視唯一索引

所謂唯一索引,就是在建立索引時,限制索引的值必須是唯一的,通過該型別的索引可以更快速的查詢某條記錄。根據建立索引方式,可以分為自動索引和手動索引兩種。

(1)建立表時建立唯一索引

【語法形式】

create table table_name(

屬性名 資料型別,

屬性名 資料型別,

unique index 索引名(屬性名 【(長度)】 【asc|desc】)

);

【例項】

mysql> create table t_dept1(

-> deptno int unique,

-> dname varchar(20),

-> unique index index_deptno(deptno)

-> );

(2)在已經存在的表上建立唯一索引

【語法形式】

create unique index 索引名 on 表名(屬性名 【(長度)】 【asc|desc】);
【例項】

mysql> create unique index index_deptno on t_dept1 (deptno) ;
(3)通過sql語句alter table 建立唯一索引

【語法形式】

alter table table_name add unique index|key 索引名(屬性名 【(長度)】 【asc|desc】);
【例項】

mysql> alter table t_dept add unique index index_deptno(deptno);

全文索引主要關聯在資料型別為char、varchar和text的字段上,以便能夠快速查詢資料量較大的字串型別的字段。只能在儲存引擎為myisam的資料庫表上建立全文索引。

(1)建立表時建立全文索引

【語法形式】

create table table_name(

屬性名1 資料型別,

屬性名2 資料型別,

屬性名3 資料型別,

fulltext index|key 索引名(屬性名 【(長度)】 【asc|desc】)

);

【例項】

mysql> create table t_dept3(

-> deptno int,

-> dname varchar(20),

-> fulltext index index_dname(dname)

-> ) engine=myisam;

(2)在已經存在的表上建立全文索引

【語法形式】

create fulltext index 索引名 on 表名 (屬性名 【(長度)】 【asc|desc】);
【例項】

mysql> create fulltext index index_name on t_dept3(dname);
(3)通過sql語句alter table 建立全文索引

【語法形式】

alter table table_name add fulltext index 索引名(屬性名 【(長度)】 【asc|desc】);
【例項】

mysql> alter table t_dept3 add fulltext index index_doname(dname);
4、建立和檢視多列索引

所謂多列索引,是指在建立索引時,所關聯的字段不是乙個字段,而是多個字段。雖然可以通過所關聯的字段查詢,但是只有查詢條件中使用了所關聯欄位中的第乙個字段,多列索引才會被使用。

(1)建立表時建立多列索

【語法形式】

create table table_name(

屬性名 資料型別,

屬性名 資料型別,

index|key 索引名 (屬性名1 【(長度)】 【asc|desc】,

…………

屬性名m 【(長度)】 【asc|desc】)

);

【例項】

mysql> create table t_dept4(

-> deptno int,

-> dname varchar(20),

-> loc varchar(20),

-> key index_dname_loc(dname,loc)

-> );

(2)在已經存在的表上建立多列索引

【語法形式】

create index 索引名 on 表名(屬性名1 【(長度)】 【asc|desc】,

…………

屬性名m 【(長度)】 【asc|desc】)

);

【例項】

mysql> create index index_dname_loc on t_dept4(dname,loc);
(3)通過sql語句alter table 建立全文索引

【語法形式】

alter table table_name add index|key 索引名(屬性名1 【(長度)】 【asc|desc】,

…………

屬性名m 【(長度)】 【asc|desc】)

);

【例項】

mysql> alter table t_dept4 add index index_dname_loc(dname,loc);
5、刪除索引

【語法】

drop index index_name on table_name
【例項】

mysql> drop index index_dname_loc on t_dept;

MySQL基本操作教程之索引的操作講解

索引建立在資料庫的表物件上,由表中的乙個或多個字段生成的鍵組成,這些鍵被資料結構 例如b樹 組織起來,目的是通過索引快速地定位與鍵值相關的資料物件。mysql支援6種索引 普通索引 唯一索引 全文索引 單列索引 多列索引 空間索引。本文,我將分別介紹關於這6種索引建立,檢視,刪除的基本操作。語法形式...

mysql教程聯合索引 mysql聯合索引詳解

歡迎進入linux社群論壇,與200萬技術人員互動交流 進入 聯合索引又叫復合索引。對於復合索引 mysql從左到右的使用索引中的字段,乙個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index a,b,c 可以支援a a,b a,b,c 3種組合 歡迎進入linux社群論壇...

MySql索引的使用操作 新增 刪除 檢視索引

在表中建立索引,以便更加快速高效地查詢資料 使用者無法看到索引,它們只能被用來加速搜尋 查詢 更新乙個包含索引的表需要比更新乙個沒有索引的表更多的時間,這是由於索引本身也需要更新。因此,理想的做法是僅僅在常常被搜尋的列 以及表 上面建立索引。alter table table name add in...