Mysql 索引與Key


如果只是key的話,就是普通索引

mysql的key和index多少有點令人迷惑,單獨的key和其它關鍵詞結合的key(primary key)實際表示的意義是不同,這實際上考察對數據庫體系結構的了解的。

primary key 有兩個作用,一是約束作用(constraint),用來規范一個存儲主鍵和唯一性,但同時也在此key上建立了一個主鍵索引

unique key 也有兩個作用,一是約束作用(constraint),規范數據的唯一性,但同時也在這個key上建立了一個唯一索引;

foreign key 也有兩個作用,一是約束作用(constraint),規范數據的引用完整性,但同時也在這個key上建立了一個index;

mysql> desc aa;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
| xx    | int(11) | YES  | PRI | NULL    |       |
+-------+---------+------+-----+---------+-------+
| yy    | int(11) | YES  | UNI | NULL    |       |
+-------+---------+------+-----+---------+-------+
| zz    | int(11) | YES  | MUL | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

我們看到Key那一欄,可能會有4種值,即'啥也沒有','PRI','UNI','MUL'
1. 如果Key是空的, 那么該列值的可以重復,表示該列沒有索引, 或者是一個非唯一的復合索引的前導列
2. 如果Key是PRI,  那么該列是主鍵的組成部分
3. 如果Key是UNI,  那么該列是一個唯一值索引的第一列(前導列),且不能含有空值(NULL)
4. 如果Key是MUL,  那么該列的值可以重復, 該列是一個非唯一索引的前導列(第一列)或者是一個唯一性索引的組成部分但是可以含有空值NULL


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM