SqlServer為字段創建索引


語法:

CREATE [索引類型] INDEX 索引名稱 ON 表名(列名)

創建索引實例:

  1. 聚集索引 create clustered index index_name on table_name (cloumn_name);
  2. 非聚集索引 create nonclustered index index_name on table_name (cloumn_name);
  3. 唯一索引 create unique index index_name on table_name(cloumn_name)

刪除索引方法:

可利用ALTER TABLE或DROP INDEX語句來刪除索引。類似於CREATE INDEX語句,DROP INDEX可以在ALTER TABLE內部作為一條語句處理,語法如下。

  DROP INDEX index_name ON talbe_name

  ALTER TABLE table_name DROP INDEX index_name

  ALTER TABLE table_name DROP PRIMARY KEY

  其中,前兩條語句是等價的,刪除掉table_name中的索引index_name。

  第3條語句只在刪除PRIMARY KEY索引時使用,因為一個表只可能有一個PRIMARY KEY索引,因此不需要指定索引名。如果沒有創建PRIMARY KEY索引,但表具有一個或多個UNIQUE索引,則MySQL將刪除第一個UNIQUE索引。

總結

  1. 什么是索引

數據庫中的索引是某個表中一列或多列值的集合和相應的指向表中物理標識這些值的數據頁的邏輯指針清單。

  1. 分類
  • 唯一索引(UNIQUE)

不允許兩行具有相同的索引值(創建了唯一約束,系統將自動創建唯一索引)在表上創建唯一索引。唯一索引是不允許其中任意兩行具有相同索引值的索引。SQL Server 2005 Compact Edition (SQL Server Compact Edition) 在創建索引后將檢查是否存在重復的值(如果數據已存在),並在每次使用 INSERT 或 UPDATE 語句添加數據時執行該檢查操作。必須先消除重復值,然后才可對列創建唯一索引。如果存在重復的鍵值,則將取消 CREATE INDEX 語句並返回錯誤。只能對定義為 NOT NULL 的列創建唯一索引。如果存在唯一索引,則可能生成重復鍵值的 UPDATE 或 INSERT 語句將回滾,且 SQL Server Compact Edition 返回錯誤。即使 UPDATE 或 INSERT 語句更改許多行,但只要存在一個重復,上面這一點也將成立。

  • 主鍵索引

主鍵索引要求主鍵中的每個值是唯一的,(創建主鍵自動創建主鍵索引)

  • 聚集索引(CLUSTERED)

表中各行的物理順序與鍵值的邏輯(索引)順序相同,表中只能包含一個聚集索引,主鍵列默認為聚集索引

  • 非聚集索引(NONCLUSTERED)

表中各行的物理順序與鍵值的邏輯(索引)順序不匹配,表中可以有249個非聚集索引

  1. 創建索引的標准

用語頻繁搜索的列;用語對數據進行排序的列
注意:如果表中僅有幾行,或列中只包含幾個不同的值,不推薦創建索引,因為SQL Server 在小型表中用索引搜索數據所花的時間比逐行搜索更長。


免責聲明!

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



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