mssql 建立索引第2/2頁
更新時(shí)間:2009年04月09日 00:33:49 作者:
假設(shè)你想找到本書中的某一個(gè)句子。你可以一頁一頁地逐頁搜索,但這會(huì)花很多時(shí)間。而通過使用本書的索引,你可以很快地找到你要搜索的主題。
用SQL建立索引
為了給一個(gè)表建立索引,啟動(dòng)任務(wù)欄SQL Sever程序組中的ISQL/w程序。進(jìn)入查詢窗口后,輸入下面的語句:
CREATE INDEX mycolumn_index ON mytable (myclumn)
這個(gè)語句建立了一個(gè)名為mycolumn_index的索引。你可以給一個(gè)索引起任何名字,但你應(yīng)該在索引名中包含所索引的字段名,這對(duì)你將來弄清楚建立該索引的意圖是有幫助的。
注意:
執(zhí)行任何SQL語句,都會(huì)收到如下的信息:
This command did not return data,and it did not return any rows
這說明該語句執(zhí)行成功了。
索引mycolumn_index對(duì)表mytable的mycolumn字段進(jìn)行。這是個(gè)非聚簇索引,也是個(gè)非唯一索引。(這是一個(gè)索引的缺省屬性)
如果你需要改變一個(gè)索引的類型,你必須刪除原來的索引并重建 一個(gè)。建立了一個(gè)索引后,你可以用下面的SQL語句刪除它:
DROP INDEX mytable.mycolumn_index
注意在DROP INDEX 語句中你要包含表的名字。在這個(gè)例子中,你刪除的索引是mycolumn_index,它是表mytable的索引。
要建立一個(gè)聚簇索引,可以使用關(guān)鍵字CLUSTERED。)記住一個(gè)表只能有一個(gè)聚簇索引。(這里有一個(gè)如何對(duì)一個(gè)表建立聚簇索引的例子:
CREATE CLUSTERED INDEX mycolumn_clust_index ON mytable(mycolumn)
如果表中有重復(fù)的記錄,當(dāng)你試圖用這個(gè)語句建立索引時(shí),會(huì)出現(xiàn)錯(cuò)誤。但是有重復(fù)記錄的表也可以建立索引;你只要使用關(guān)鍵字ALLOW_DUP_ROW把這一點(diǎn)告訴SQL Sever即可:
CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn)
WITH ALLOW_DUP_ROW
這個(gè)語句建立了一個(gè)允許重復(fù)記錄的聚簇索引。你應(yīng)該盡量避免在一個(gè)表中出現(xiàn)重復(fù)記錄,但是,如果已經(jīng)出現(xiàn)了,你可以使用這種方法。
要對(duì)一個(gè)表建立唯一索引,可以使用關(guān)鍵字UNIQUE。對(duì)聚簇索引和非聚簇索引都可以使用這個(gè)關(guān)鍵字。這里有一個(gè)例子:
CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)
這是你將經(jīng)常使用的索引建立語句。無論何時(shí),只要可以,你應(yīng)該盡量對(duì)一個(gè)對(duì)一個(gè)表建立唯一聚簇索引來增強(qiáng)查詢操作。
最后,要建立一個(gè)對(duì)多個(gè)字段的索引──復(fù)合索引──在索引建立語句中同時(shí)包含多個(gè)字段名。下面的例子對(duì)firstname和lastname兩個(gè)字段建立索引:
CREATE INDEX name_index ON username(firstname,lastname)
這個(gè)例子對(duì)兩個(gè)字段建立了單個(gè)索引。在一個(gè)復(fù)合索引中,你最多可以對(duì)16個(gè)字段進(jìn)行索引。
您可能感興趣的文章:
- SQL2000 全文索引完全圖解
- MSSQL 大量數(shù)據(jù)時(shí),建立索引或添加字段后保存更改提示超時(shí)的解決方法
- 關(guān)于重新組織和重新生成索引sp_RefreshIndex的介紹
- SQL2005CLR函數(shù)擴(kuò)展 - 關(guān)于山寨索引
- MSSQL自動(dòng)重建出現(xiàn)碎片的索引的方法分享
- 理解Sql Server中的聚集索引
- Sql Server中的非聚集索引詳細(xì)介
- 在SQL SERVER中導(dǎo)致索引查找變成索引掃描的問題分析
- 詳解sqlserver查詢表索引
- SQL2005重新生成索引的的存儲(chǔ)過程 sp_rebuild_index
相關(guān)文章
SQL 獲取所有上級(jí)的實(shí)現(xiàn)方法
這篇文章主要介紹了SQL 獲取所有上級(jí)的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2017-04-04用非動(dòng)態(tài)SQL Server SQL語句來對(duì)動(dòng)態(tài)查詢進(jìn)行執(zhí)行
此文章主要向大家講述的是非動(dòng)態(tài)SQL ServerSQL語句執(zhí)行動(dòng)態(tài)查詢,在實(shí)際操作中我嘗試在一個(gè)存儲(chǔ)過程中,來進(jìn)行傳遞一系列以逗號(hào)劃定界限的值,來對(duì)結(jié)果集進(jìn)行限制。但是無論什么時(shí)候,我在IN子句中使用變量,都會(huì)得到錯(cuò)誤信息2017-06-06mssql無數(shù)據(jù)庫日志文件恢復(fù)數(shù)據(jù)庫的方法
因各種原因我們需要注意恢復(fù)數(shù)據(jù)庫,如果剛好有沒有數(shù)據(jù)庫日志文件,那就不妨用下面的方法2008-09-09SQL入侵恢復(fù)xp_cmdshell方法總結(jié)
恢復(fù)xp_cmdshell SQL Server阻止了對(duì)組件 'xp_cmdshell' 的過程'sys.xp_cmdshell' 啟用2010-08-08淺述SQL Server的語句類別 數(shù)據(jù)庫范式 系統(tǒng)數(shù)據(jù)庫組成
本文著重講解了SQL語句的組成以及數(shù)據(jù)庫的三個(gè)范式,對(duì)系統(tǒng)數(shù)據(jù)庫的組成進(jìn)行簡(jiǎn)短的介紹。有興趣的朋友可以看下2016-12-12SQLServer 數(shù)據(jù)庫備份過程中經(jīng)常遇到的九種情況
SQLServer 數(shù)據(jù)庫備份過程中經(jīng)常遇到各種問題,大家可以參照下面的問題,來分析下,快速的解決問題。2009-07-07sqlserver利用存儲(chǔ)過程去除重復(fù)行的sql語句
以前弄過類似,去除相同信息的方法,現(xiàn)在找不到了,不過今天又花一些時(shí)間給弄出來了,記錄一下2010-06-06