mysql索引,mysql創(chuàng)建索引,mysql刪除索引
1.在關(guān)系數(shù)據(jù)庫中,索引是一種與表有關(guān)的數(shù)據(jù)庫結(jié)構(gòu),它可以使對(duì)應(yīng)于表的SQL語句執(zhí)行得更快。今天就簡(jiǎn)單地給大家演示一下mysql中索引的創(chuàng)建,查詢以及刪除。
2.首先隨便建立一張表,SQL語句如下:
CREATE?TABLE?IF?NOT?EXISTS?`student`?( ?`id`?int(11)?NOT?NULL?AUTO_INCREMENT?COMMENT?'學(xué)號(hào)', ?`name`?varchar(64)?NOT?NULL?DEFAULT?''?COMMENT?'姓名', ?`sex`?tinyint(1)?NOT?NULL?COMMENT?'性別', ?`age`?tinyint(2)?NOT?NULL?COMMENT?'年齡', ?`class`?varchar(64)?NOT?NULL?DEFAULT?''?COMMENT?'班級(jí)', ?PRIMARY?KEY?(`id`) ?)?ENGINE=MYISAM?DEFAULT?CHARSET=utf8?COMMENT='學(xué)生表';
3.可以看到,在創(chuàng)建表的SQL語句中,已經(jīng)建立了一個(gè)主鍵索引,此時(shí)查看表中索引:SHOW INDEX FROM `student`,結(jié)果如圖所示:
4.當(dāng)然,我們還可以在基礎(chǔ)上添加別的索引,比如說唯一索引。假設(shè)每個(gè)學(xué)生的名字是不可以重復(fù)的,那么就可以在name字段上添加一個(gè)唯一索引:
ALTER?TABLE?`student`?ADD?UNIQUE?`stu_name`?(`name`);
此時(shí),再次查看表中索引,SHOW INDEX FROM `student`,結(jié)果如圖所示:
5.然后再給班級(jí)添加一個(gè)普通索引:
ALTER?TABLE?`student`?ADD?INDEX?`stu_class`?(`class`);
查看表中索引,SHOW INDEX FROM `student`,結(jié)果如圖所示:
6.接下來是刪除索引,刪除掉唯一索引和普通索引:
ALTER?TABLE?`student`?DROP?INDEX?`stu_name`; ALTER?TABLE?`student`?DROP?INDEX?`stu_class`;
然后查看表中索引,SHOW INDEX FROM `student`,結(jié)果如圖所示:
7.這時(shí),就剩下一個(gè)主鍵索引了,如果直接刪除的話將會(huì)報(bào)錯(cuò):
ALTER?TABLE?`student`?DROP?PRIMARY?KEY;
原因:因?yàn)橹麈I索引關(guān)聯(lián)的id鍵為自動(dòng)增長;
8.需要先將id鍵的自動(dòng)增長取消:
ALTER?TABLE?`student`??MODIFY?`id`??int(10)?NOT?NULL?COMMENT?'學(xué)號(hào)'
再次執(zhí)行:
?ALTER?TABLE?`student`?DROP?PRIMARY?KEY;
查看表中索引,SHOW INDEX FROM `student`,表中已經(jīng)沒有索引啦