MySQL建立索引(CREATE INDEX)

2021-10-02 21:59:20 字數 3853 閱讀 7321

索引的建立對於 mysql 資料庫的高效執行是很重要的,索引可以大大提公升 mysql 的檢索速度。

mysql 提供了三種建立索引的方法:

1) 使用 create index 語句

可以使用專門用於建立索引的 create index 語句在乙個已有的表上建立索引,但該語句不能建立主鍵。

語法格式:

create 《索引名》 on 《表名》 (《列名》 [《長度》] [ asc | desc])

語法說明如下:

2) 使用 create table 語句

索引也可以在建立表(create table)的同時建立。在 create table 語句中新增以下語句。語法格式:

constraint primary key [索引型別] (《列名》,…)

在 create table 語句中新增此語句,表示在建立新錶的同時建立該錶的主鍵。

語法格式:

key | index [《索引名》] [《索引型別》] (《列名》,…)

在 create table 語句中新增此語句,表示在建立新錶的同時建立該錶的索引。

語法格式:

unique [ index | key] [《索引名》] [《索引型別》] (《列名》,…)

在 create table 語句中新增此語句,表示在建立新錶的同時建立該錶的唯一性索引。

語法格式:

foreign key 《索引名》 《列名》

在 create table 語句中新增此語句,表示在建立新錶的同時建立該錶的外來鍵。

在使用 create table 語句定義列選項的時候,可以通過直接在某個列定義後面新增 primary key 的方式建立主鍵。而當主鍵是由多個列組成的多列索引時,則不能使用這種方法,只能用在語句的最後加上乙個 primary kry(《列名》,…) 子句的方式來實現。

3) 使用 alter table 語句

create index 語句可以在乙個已有的表上建立索引,alter table 語句也可以在乙個已有的表上建立索引。在使用 alter table 語句修改表的同時,可以向已有的表新增索引。具體的做法是在 alter table 語句中新增以下語法成分的某一項或幾項。

語法格式:

add index [《索引名》] [《索引型別》] (《列名》,…)

在 alter table 語句中新增此語法成分,表示在修改表的同時為該錶新增索引。

語法格式:

add primary key [《索引型別》] (《列名》,…)

在 alter table 語句中新增此語法成分,表示在修改表的同時為該錶新增主鍵。

語法格式:

add unique [ index | key] [《索引名》] [《索引型別》] (《列名》,…)

在 alter table 語句中新增此語法成分,表示在修改表的同時為該錶新增唯一性索引。

語法格式:

add foreign key [《索引名》] (《列名》,…)

在 alter table 語句中新增此語法成分,表示在修改表的同時為該錶新增外來鍵。

【例項 1】建立乙個表 tb_stu_info,在該錶的 height 字段建立一般索引。輸入的 sql 語句和執行過程如下所示。

mysql> create table tb_stu_info      -> (      -> id int not null,      -> name char(45) default null,      -> dept_id int default null,      -> age int default null,      -> height int default null,      -> index(height)      -> );  query ok,0 rows affected (0.40 sec)  mysql> show create table tb_stu_infog  *************************** 1. row ***************************         table: tb_stu_info  create table: create table `tb_stu_info` (    `id` int(11) not null,    `name` char(45) default null,    `dept_id` int(11) default null,    `age` int(11) default null,    `height` int(11) default null,    key `height` (`height`)  ) engine=innodb default charset=gb2312  1 row in set (0.01 sec)
【例項 2】建立乙個表 tb_stu_info2,在該錶的 id 欄位上使用 unique 關鍵字建立唯一索引。輸入的 sql 語句和執行過程如下所示。

mysql> create table tb_stu_info2      -> (      -> id int not null,      -> name char(45) default null,      -> dept_id int default null,      -> age int default null,      -> height int default null,      -> unique index(height)      -> );  query ok,0 rows affected (0.40 sec)  mysql> show create table tb_stu_info2g  *************************** 1. row ***************************         table: tb_stu_info2  create table: create table `tb_stu_info2` (    `id` int(11) not null,    `name` char(45) default null,    `dept_id` int(11) default null,    `age` int(11) default null,    `height` int(11) default null,    unique key `height` (`height`)  ) engine=innodb default charset=gb2312  1 row in set (0.00 sec)
在 mysql 中,如果要檢視已建立的索引的情況,可以使用 show index 語句檢視表中建立的索引。

語法格式:

show index from 《表名》 [ from 《資料庫名》]

語法說明如下:

顯示資料庫 mytest 的表 course 的索引情況。

mysql> show index from course from mytest;

該語句會返回一張結果表,該錶有如下幾個字段,每個欄位所顯示的內容說明如下。

【例項 3】使用 show index 語句檢視表 tb_stu_info2 的索引資訊,輸入的 sql 語句和執行結果如下所示。

mysql> show index from tb_stu_info2g  *************************** 1. row ***************************          table: tb_stu_info2     non_unique: 0       key_name: height  seq_in_index: 1    column_name: height      collation: a    cardinality: 0       sub_part: null         packed: null           null: yes     index_type: btree        comment:  index_comment:  1 row in set (0.03 sec)

Mysql命令create 建立資料庫

create命令用於建立資料庫。create命令格式 create database 資料庫名 注意 建立資料庫之前要先連線mysql伺服器。1 建立乙個名為xhkdb的資料庫 mysql create database xhkdb 2 建立資料庫並分配使用者 create database 資料庫...

Vue 建立函式create

下面函式,在建立通知元件的時候被呼叫,不在自己的例項中使用,但是在body元素的下面。方法1 import vue from vue 建立函式接收要建立元件定義 function create component,props 執行掛載函式,但未指定掛載目標,表示只執行初始化工作 mount 將生成d...

(索引)建立MySQL索引

建立索引的必要性 主鍵預設是建立索引的,而且具有唯一性 合適地建立索引後比不建立索引,提高了查詢速度 建立索引的語法 簡單索引 可以有重複資料 create index indexname on tablename column name 1舉例子說明如 建立乙個資料表,設定一些初始的資料,然後採用...