唯一索引、聚集索引和聚集索引


1.一個表只能有一個主索引-PRIMARY,且只有是數據庫表才有主索引,后綴為.CDX,索引關鍵字是不可以重復的.哪怕是空記錄也只可以有一條.
2.候選索引可以有很多個,索引關鍵字同樣不可以重復,同樣只存在於數據庫表.
3.唯一索引,可以存在於自由表,但索引關鍵字不可以重復.
4.普通索引簡單的理解就是只起排序作用.索引關鍵字是可以重復的.可存在於自由表.

主鍵與唯一索引的區別

 

主鍵是一種約束,唯一索引是一種索引,兩者在本質上是不同的。 主鍵創建后一定包含一個唯一性索引,唯一性索引並不一定就是主鍵。 唯一性索引列允許空值,而主鍵列不允許為空值。 主鍵列在創建時,已經默認為空值 + 唯一索引了。 主鍵可以被其他表引用為外鍵,而唯一索引不能。 一個表最多只能創建一個主鍵,但可以創建多個唯一索引。 主鍵更適合那些不容易更改的唯一標識,如自動遞增列、身份證號等。 在 RBO 模式下,主鍵的執行計划優先級要高於唯一索引。 兩者可以提高查詢的速度。

 

CREATE UNIQUE INDEX test_UniqueKey ON test (UniqueKey); 
聚集索引: 
      聚集索引基於數據行的鍵值,在表內排序和存儲這些數據行。每個表只能有一個聚集索引,應為數據行本分只能按一個順序存儲。
        在聚集索引中,表中各行的物理順序與索引鍵值的邏輯(索引)順序相同。聚集索引通常可加快UPDATE和DELETE操作的速度,因為這兩個操作需要讀取 大量的數據。創建或修改聚集索引可能要花很長時間,因為執行這兩個操作時要在磁盤上對表的行進行重組。  www.2cto.com  
非聚集索引:
        因為一個表中只能有一個聚集索引,如果需要在表中建立多個索引,則可以創建為非聚集索引。表中的數據並不按照非聚集索引列的順序存儲,但非聚集索引的索引行中保存了非聚集鍵值和行定位器,可以快捷地根據非聚集鍵的值來定位記錄的存儲位置。
 
        無論是聚集索引,還是非聚集索引,都可以是唯一索引。在SQL Server中,當唯一性是.數據本身的特點時,可創建唯一索引,但索引列的組合不同於表的主鍵。例如,如果要頻繁查詢表Employees(該表主鍵為 列Emp_id)的列Emp_name,而且要保證姓名是唯一的,則在列Emp_name上創建唯一索引。如果用戶為多個員工輸入了相同的姓名,則數據庫 顯示錯誤,並且不能保存該表。


免責聲明!

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



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