揭秘SQL Sever中各種語(yǔ)句的完整語(yǔ)法(3)_Mssql數(shù)據(jù)庫(kù)教程
推薦:解讀sql server注冊(cè)表操作相關(guān)的幾個(gè)未公開過(guò)程以下為引用的內(nèi)容: DECLARE @test varchar(20) EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARETest
顯示結(jié)果:
type vender pcs
電腦 A 1
電腦 A 1
光盤 B 2
光盤 A 2
手機(jī) B 3
手機(jī) C 3
23、說(shuō)明:初始化表table1
TRUNCATE TABLE table1
24、說(shuō)明:選擇從10到15的記錄
select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc
隨機(jī)選擇數(shù)據(jù)庫(kù)記錄的方法(使用Randomize函數(shù),通過(guò)SQL語(yǔ)句實(shí)現(xiàn))
對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)來(lái)說(shuō),隨機(jī)數(shù)特性能給出上面的效果,但它們可能太慢了些。你不能要求ASP“找個(gè)隨機(jī)數(shù)”然后打印出來(lái)。實(shí)際上常見的解決方案是建立如下所示的循環(huán):
Randomize
RNumber = Int(Rnd*499) 1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 這里是執(zhí)行腳本 ...
end if
objRec.MoveNext
Wend
這很容易理解。首先,你取出1到500范圍之內(nèi)的一個(gè)隨機(jī)數(shù)(假設(shè)500就是數(shù)據(jù)庫(kù)內(nèi)記錄的總數(shù))。然后,你遍歷每一記錄來(lái)測(cè)試ID 的值、檢查其是否匹配RNumber。滿足條件的話就執(zhí)行由THEN 關(guān)鍵字開始的那一塊代碼。假如你的RNumber 等于495,那么要循環(huán)一遍數(shù)據(jù)庫(kù)花的時(shí)間可就長(zhǎng)了。雖然500這個(gè)數(shù)字看起來(lái)大了些,但相比更為穩(wěn)固的企業(yè)解決方案這還是個(gè)小型數(shù)據(jù)庫(kù)了,后者通常在一個(gè)數(shù)據(jù)庫(kù)內(nèi)就包含了成千上萬(wàn)條記錄。這時(shí)候不就死定了?
采用SQL,你就可以很快地找出準(zhǔn)確的記錄并且打開一個(gè)只包含該記錄的recordset,如下所示:
Randomize
RNumber = Int(Rnd*499) 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
不必寫出RNumber 和ID,你只需要檢查匹配情況即可。只要你對(duì)以上代碼的工作滿意,你自可按需操作“隨機(jī)”記錄。Recordset沒有包含其他內(nèi)容,因此你很快就能找到你需要的記錄這樣就大大降低了處理時(shí)間。
再談隨機(jī)數(shù)
現(xiàn)在你下定決心要榨干Random 函數(shù)的最后一滴油,那么你可能會(huì)一次取出多條隨機(jī)記錄或者想采用一定隨機(jī)范圍內(nèi)的記錄。把上面的標(biāo)準(zhǔn)Random 示例擴(kuò)展一下就可以用SQL應(yīng)對(duì)上面兩種情況了。
為了取出幾條隨機(jī)選擇的記錄并存放在同一recordset內(nèi),你可以存儲(chǔ)三個(gè)隨機(jī)數(shù),然后查詢數(shù)據(jù)庫(kù)獲得匹配這些數(shù)字的記錄:
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3
假如你想選出10條記錄(也許是每次頁(yè)面裝載時(shí)的10條鏈接的列表),你可以用BETWEEN 或者數(shù)學(xué)等式選出第一條記錄和適當(dāng)數(shù)量的遞增記錄。這一操作可以通過(guò)好幾種方式來(lái)完成,但是 SELECT 語(yǔ)句只顯示一種可能(這里的ID 是自動(dòng)生成的號(hào)碼):
SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & " 9"
注意:以上代碼的執(zhí)行目的不是檢查數(shù)據(jù)庫(kù)內(nèi)是否有9條并發(fā)記錄。
隨機(jī)讀取若干條記錄,測(cè)試過(guò)
分享:如何查看SQL執(zhí)行計(jì)劃不論是做為開發(fā)DBA還是維護(hù)DBA,總是或多或少地遇到SQL執(zhí)行效率或者說(shuō)SQL調(diào)優(yōu)問題,查看執(zhí)行計(jì)劃是必須的。一般我們可以用3種方法查看: 一、explain plan for 舉例就足以說(shuō)明其
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過(guò)程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- SQL SERVER 2008 中三種分頁(yè)方法與比較
- 解析SQL 2008的Change Data Capture功能
- PL/SQL DEVELOPER 使用的一些技巧
- 詳解SQL Server 2008中的聯(lián)機(jī)事務(wù)處理
- 談Oracle數(shù)據(jù)庫(kù)SQL語(yǔ)句性能調(diào)整的基本原則
- 解讀SQL中自己創(chuàng)建函數(shù) 分割字符串
- 多種還原.bak數(shù)據(jù)庫(kù)文件方式
- 怎樣用VB存取SQL Server中的圖像數(shù)據(jù)
- mssql2005數(shù)據(jù)庫(kù)鏡像搭建教程
- 探討SQL Server 2005的評(píng)價(jià)函數(shù)
猜你也喜歡看這些
- mysql占用CPU過(guò)高的解決辦法(添加索引)
- MySQL:數(shù)據(jù)庫(kù)知識(shí)點(diǎn)
- Mysql select in 按id排序?qū)崿F(xiàn)方法
- MySQL性能優(yōu)化的最佳21條經(jīng)驗(yàn)
- 解析SQL語(yǔ)句中Replace INTO與INSERT INTO的不同之處
- 如何用cmd連接Mysql數(shù)據(jù)庫(kù)
- 關(guān)于MySQL數(shù)據(jù)遷移--data目錄直接替換注意事項(xiàng)的詳解
- MySQL筆記之?dāng)?shù)據(jù)備份與還原的使用詳解
- 模板無(wú)憂:mysql數(shù)據(jù)庫(kù)優(yōu)化總結(jié)
- MySQL筆記之函數(shù)查詢的使用
- 相關(guān)鏈接:
- 教程說(shuō)明:
Mssql數(shù)據(jù)庫(kù)教程-揭秘SQL Sever中各種語(yǔ)句的完整語(yǔ)法(3)
。