SqlServer为字段创建索引
語法:
CREATE [索引類型] INDEX 索引名稱
ON 表名(列名)
創(chuàng)建索引實例:
聚簇索引 create clustered index index_name on table_name (cloumn_name);
非聚簇索引?create nonclustered index index_name on table_name (cloumn_name);
唯一索引 create unique index index_name on table_name(cloumn_name);
刪除索引方法:
可利用ALTER TABLE或DROP INDEX語句來刪除索引。類似于CREATE INDEX語句,DROP INDEX可以在ALTER TABLE內(nèi)部作為一條語句處理,語法如下。
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索引,因此不需要指定索引名。如果沒有創(chuàng)建PRIMARY KEY索引,但表具有一個或多個UNIQUE索引,則MySQL將刪除第一個UNIQUE索引。
?
總結(jié):
????? 1.什么是索引:數(shù)據(jù)庫中的索引是某個表中一列或多列值的集合和相應(yīng)的指向表中物理標(biāo)識這些值的數(shù)據(jù)頁的邏輯指針清單。
??2.分類:
? ? ?(1) 唯一索引(UNIQUE):不允許兩行具有相同的索引值(創(chuàng)建了唯一約束,系統(tǒng)將自動創(chuàng)建唯一索引)
在表上創(chuàng)建唯一索引。唯一索引是不允許其中任意兩行具有相同索引值的索引。
SQL Server 2005 Compact Edition (SQL Server Compact Edition) 在創(chuàng)建索引后將檢查是否存在重復(fù)的值(如果數(shù)據(jù)已存在),并在每次使用 INSERT 或 UPDATE 語句添加數(shù)據(jù)時執(zhí)行該檢查操作。必須先消除重復(fù)值,然后才可對列創(chuàng)建唯一索引。如果存在重復(fù)的鍵值,則將取消 CREATE INDEX 語句并返回錯誤。只能對定義為 NOT NULL 的列創(chuàng)建唯一索引。
如果存在唯一索引,則可能生成重復(fù)鍵值的 UPDATE 或 INSERT 語句將回滾,且 SQL Server Compact Edition 返回錯誤。即使 UPDATE 或 INSERT 語句更改許多行,但只要存在一個重復(fù),上面這一點也將成立。
? ? ? ?(2)? 主鍵索引:主鍵索引要求主鍵中的每個值是唯一的,(創(chuàng)建主鍵自動創(chuàng)建主鍵索引)
? ? ? ?(3)? 聚集索引(CLUSTERED):表中各行的物理順序與鍵值的邏輯(索引)順序相同,表中只能包含一個聚集索引,主鍵列默認為聚集索引
? ? ? ?(4) 非聚集索引(NONCLUSTERED):表中各行的物理順序與鍵值的邏輯(索引)順序不匹配,表中可以有249個非聚集索引
????3.創(chuàng)建索引的標(biāo)準(zhǔn):用語頻繁搜索的列;用語對數(shù)據(jù)進行排序的列
注意:如果表中僅有幾行,或列中只包含幾個不同的值,不推薦創(chuàng)建索引,因為SQL Server 在小型表中用索引搜索數(shù)據(jù)所花的時間比逐行搜索更長。
轉(zhuǎn)載于:https://www.cnblogs.com/likui-bookHouse/p/8622410.html
總結(jié)
以上是生活随笔為你收集整理的SqlServer为字段创建索引的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: react-native 安卓支持 gi
- 下一篇: sql调用web服务