普通索引
最基本的索引類型,沒有唯一性之類的限制。普通索引可以通過以下幾種方式創建:
創建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);
創建表的時候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );
唯一索引(UNIQUE索引)
唯一索引是不允許其中任何兩行具有相同索引值的索引。
當現有數據中存在重復的鍵值時,大多數數據庫不允許將新創建的唯一索引與表一起保存。數據庫還可能防止添加將在表中創建重復鍵值的新數據。例如,如果在 employee 表中職員的姓 (lname) 上創建了唯一索引,則任何兩個員工都不能同姓。對某個列建立UNIQUE索引后,插入新紀錄時,數據庫管理系統會自動檢查新紀錄在該列上是否取了重復值,在CREATE TABLE 命令中的UNIQE約束將隱式創建UNIQUE索引。
創建唯一索引的幾種方式:
創建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表); ;
創建表的時候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) ) ;
主鍵索引
簡稱為主索引,數據庫表中一列或列組合(字段)的值唯一標識表中的每一行。該列稱為表的主鍵。
與主索引一樣要求字段值的唯一性,并決定了處理記錄的順序。在數據庫和自由表中,可以為每個表建立多個候選索引。
最基本的索引類型,沒有唯一性之類的限制。普通索引可以通過以下幾種方式創建:
創建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);
創建表的時候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );
唯一索引(UNIQUE索引)
唯一索引是不允許其中任何兩行具有相同索引值的索引。
當現有數據中存在重復的鍵值時,大多數數據庫不允許將新創建的唯一索引與表一起保存。數據庫還可能防止添加將在表中創建重復鍵值的新數據。例如,如果在 employee 表中職員的姓 (lname) 上創建了唯一索引,則任何兩個員工都不能同姓。對某個列建立UNIQUE索引后,插入新紀錄時,數據庫管理系統會自動檢查新紀錄在該列上是否取了重復值,在CREATE TABLE 命令中的UNIQE約束將隱式創建UNIQUE索引。
創建唯一索引的幾種方式:
創建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表); ;
創建表的時候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) ) ;
主鍵索引
簡稱為主索引,數據庫表中一列或列組合(字段)的值唯一標識表中的每一行。該列稱為表的主鍵。
在數據庫關系圖中為表定義主鍵將自動創建主鍵索引,主鍵索引是唯一索引的特定類型。該索引要求主鍵中的每個值都唯一。當在查詢中使用主鍵索引時,它還允許對數據的快速訪問。盡管唯一索引有助于定位信息,但為獲得最佳性能結果,建議改用主鍵索引。
候選索引與主索引一樣要求字段值的唯一性,并決定了處理記錄的順序。在數據庫和自由表中,可以為每個表建立多個候選索引。