MySQL 索引介紹 屬性介紹 注意事項

2021-07-14 10:51:03 字數 2736 閱讀 1971

【檢視 一張表上的索引】

show index from 表名;

show index from 表名 \g;        //可以橫著顯示

【一、】新增索引

第一種方法:

【主鍵索引】:

create table tab2(

id int,

primary key(id)

);【唯一索引】(索引名可選,不寫索引名,預設為這一列的列名):

create table tab3(

name char(10),

unique [索引名] (name)

);【常規索引,也叫普通索引】(索引名可選,不寫索引名,預設為這一列的列名):

create table tab4(

name char(10),

index(key) [索引名] (name)

);【全文索引】(myisam 表型別使用, 只有在varchar char text文字字串上使用)(索引名可選,不寫索引名,預設為這一列的列名):

create table tab5(

name char(10),

fulltext [索引名] (name)

);【二、】新增索引

第二種方法:

【主鍵索引】:

alter table 表名 add primary key;

【唯一索引】(索引名可選,不寫索引名,預設為這一列的列名):

alter table 表名 add unique [索引名] (欄位名);

【常規索引,也叫普通索引】(索引名可選,不寫索引名,預設為這一列的列名):

alter table 表名 add index [索引名] (欄位名);

alter table 表名 add key [索引名] (欄位名);

【全文索引】(索引名可選,不寫索引名,預設為這一列的列名):

alter table 表名 add fulltext [索引名] (欄位名);

【全文索引應用】:

select 列名, match (索引) against (『 索引詞』) from 表名;

select * from

表名 where match (索引) against (『 索引詞』);

【舉例】:

create table books(

id int,

bookname varchar(10),

price double,

detail text not null,

fulltext(detail,bookname),

index ind(price),

primary key(id)

);select * from books where bookname like '%php%';

select bookname,price from books where match(detail) against('php');

select match(detail) against('php') from books;

【三、】刪除索引

【刪除主鍵索引】(注意:如果主鍵有自增長,得先刪除自增長):

alter table 表名 change id id int; //刪除自增長

alter table 表名 drop primary key;

【第一種方法(刪除唯

一、常規(普通)、全文索引)】:

drop index 索引名 on 表名;

【第二種方法(刪除唯

一、常規(普通)、全文索引)】:

alter table 表名 drop index 索引名;

【四、】新增屬性:

【無符號:unsigned】:正數,可以讓空間增加一倍 只能用在數值型字段

【前導0:zerofill】:只能用在數值型字段

【不為空:not null】

【預設值:default】

【自動增長:auto_increment】

【舉例】:

create table tab8(

id int unsigned zerofill not null auto_increment primary key

);create table tab9(

name varchar(10) not null default ''

); 【五、】注意事項:

【新增屬性自動增長,必須先設定為主鍵】

alter table 表名 add primary key;

alter table 表名 change id id int unsigned zerofill not null auto_increment;

【刪除主鍵索引】(注意:如果主鍵有自增長,得先刪除自增長):

alter table 表名 change id id int; //刪除自增長

alter table 表名 drop primary key;

【常規索引,也叫普通索引】單獨使用:

create index 索引名 on 表名 (欄位名);

【只有主鍵索引,唯一索引,可以直接在後面新增。】(注意:直接新增唯一索引時,其後不能加索引名。另外常規索引(index or key),全文索引(fulltext)不能直接在其後新增!): 

create table tab1(

id int primary key,

name char(10) unique

);希望可以幫到你們!!!

MySQL索引介紹

索引由資料庫表中一列或者多列組合而成,其作用是提高對錶中資料的查詢速度。建立索引是指在某個表的一列或者多列上建立乙個索引,用來提高對錶的訪問速度,建立索引由三種方法 在建立表的時候建立,在已存在的表上建立和用alter table語句建立。建立索引的基本語法格式 asc引數表示公升序排列,desc引...

MySQL索引介紹

簡單理解為 排好序的快速查詢資料結構 一般來說索引本身也很大,不可能全部儲存在記憶體中,因此索引往往以索引檔案的形式儲存在磁碟上。我們平常所說的索引,如果沒有特別指明,一般都是指b樹結構組織的索引 b 樹索引 b 樹索引檢索原理 1 類似圖書館書目索引,提高資料檢索的效率,降低資料庫的io成本。2 ...

Mysql索引介紹

索引是在建立表的時候會自動生成乙個主鍵 以主鍵生成的 索引,所以我們可以直接搜尋索引 我們也可以建立 普通索引 create index t job index on e user t job 建立索引名 被建立的表 建立的列名 格式 所以索引可以多個.刪除普通索引 drop index t job...