![數(shù)據(jù)庫(kù)管理系統(tǒng)中查詢技術(shù)_第1頁(yè)](http://file4.renrendoc.com/view/72a9fd2a349f61727db7281e348472a2/72a9fd2a349f61727db7281e348472a21.gif)
![數(shù)據(jù)庫(kù)管理系統(tǒng)中查詢技術(shù)_第2頁(yè)](http://file4.renrendoc.com/view/72a9fd2a349f61727db7281e348472a2/72a9fd2a349f61727db7281e348472a22.gif)
![數(shù)據(jù)庫(kù)管理系統(tǒng)中查詢技術(shù)_第3頁(yè)](http://file4.renrendoc.com/view/72a9fd2a349f61727db7281e348472a2/72a9fd2a349f61727db7281e348472a23.gif)
![數(shù)據(jù)庫(kù)管理系統(tǒng)中查詢技術(shù)_第4頁(yè)](http://file4.renrendoc.com/view/72a9fd2a349f61727db7281e348472a2/72a9fd2a349f61727db7281e348472a24.gif)
![數(shù)據(jù)庫(kù)管理系統(tǒng)中查詢技術(shù)_第5頁(yè)](http://file4.renrendoc.com/view/72a9fd2a349f61727db7281e348472a2/72a9fd2a349f61727db7281e348472a25.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)管理系統(tǒng)中查詢技術(shù)
內(nèi)容提要主要介紹在數(shù)據(jù)庫(kù)管理系統(tǒng)中實(shí)現(xiàn)模糊查詢的方法與技巧,提供了能實(shí)現(xiàn)真正模糊查詢的二個(gè)通用函數(shù)的源程序,特別是介紹了結(jié)構(gòu)化查詢語(yǔ)言SQL中鮮為人知的通配符的使用方法。
關(guān)鍵詞FoxPro模糊查詢SELECT-SQL通配符
在數(shù)據(jù)庫(kù)管理系統(tǒng)中,查詢是一個(gè)很重要的內(nèi)容。然而,在多數(shù)情況下人們不能準(zhǔn)確知道作為查詢條件的字段內(nèi)容,如:某字段內(nèi)容為“涪陵師范高等專(zhuān)科學(xué)?!保樵冋呖赡苤恢榔浜?jiǎn)稱“涪陵師專(zhuān)”或“涪師專(zhuān)”,這時(shí),為保證能查到滿足條件的數(shù)據(jù)記錄,只能進(jìn)行模糊查詢。下面從編程的角度談?wù)勗谥?,?shí)現(xiàn)模糊查詢的方法。
一、簡(jiǎn)單的模糊查詢方法
①利用比較操作符“=”進(jìn)行模糊查詢。先把SETEXACT的設(shè)置置為OFF,這時(shí),“=”用于兩個(gè)字符表達(dá)式之間作比較,其規(guī)則是:“=”右邊的字符逐個(gè)與“=”左邊相同位置的字符進(jìn)行比較,只要遇到其中一個(gè)字符不相等,或者“=”右邊的字符表達(dá)式結(jié)束,比較操作就結(jié)束。所以,"abc"="abc","abc"="ab","ab_"="ab","ab"=""的比較結(jié)果均為邏輯真??梢?jiàn),這種方法的模糊性是不能令人滿意的。
②利用“$”進(jìn)行包含比較,其模糊查詢的效果就比用“=”時(shí)好得多。這種方法是在“$”右邊的字符表達(dá)式中查找“$”左邊的字符表達(dá)式,若找到返回邏輯真,否則返回邏輯假。用這種方法只要“$”左邊的字符表達(dá)式的每一個(gè)字符在“$”右邊的字符表達(dá)式中存在且位置不間斷,查找就能成功,然而對(duì)于諸如前面提到的“涪陵師專(zhuān)”或“涪師專(zhuān)”之類(lèi)的簡(jiǎn)稱,其查找結(jié)果為邏輯假。
由此可見(jiàn),直接利用“=”和“$”進(jìn)行比較操作是不能太“模糊”的。
二、查詢條件為縮略語(yǔ)或簡(jiǎn)稱的模糊查詢方法
縮略語(yǔ)或簡(jiǎn)稱在地名、單位名稱中使用非常廣泛。通常,縮略語(yǔ)或簡(jiǎn)稱是由全稱中的某些排列位置不連續(xù)的字符組成的,因此,通過(guò)設(shè)置不同長(zhǎng)度的字符串進(jìn)行比較的規(guī)則,或者利用包含比較符“$”,是不能對(duì)縮略語(yǔ)或簡(jiǎn)稱進(jìn)行模糊查詢的。這時(shí)可編寫(xiě)一通用的自定義函數(shù),將用戶輸入的查詢條件與字符型字段變量進(jìn)行逐字比較,如果是的縮略語(yǔ)或簡(jiǎn)稱,則返回邏輯真否則返回邏輯假,從而實(shí)現(xiàn)模糊查詢。
下面將作者所編寫(xiě)的自定義函數(shù)介紹給讀者,以供參考。
設(shè)計(jì)思想:此函數(shù)必須是一個(gè)通用函數(shù)。為此,執(zhí)行時(shí)可先接受二個(gè)參數(shù)──和。從的左邊開(kāi)始取其第
一、二個(gè)字符X1,用AT函數(shù)測(cè)試X1在中的位置S1,如果S1不為0,就將中包含X1以及左邊部分的字符截掉,并取中的第
三、四個(gè)字符X2,用AT函數(shù)測(cè)試X2在的剩余部分中的位置S2,若S2不為0,就將的剩余部分中包含X2以及左邊部分的字符截掉……,直到將中的字符取完并在中測(cè)試完為止,最后本函數(shù)返回邏輯真。在這個(gè)過(guò)程中只要有一次測(cè)試不成功,則退出本函數(shù)并返回邏輯假。因?yàn)橐粋€(gè)漢字占二個(gè)ASCII字符,所以每次取二個(gè)相鄰字符進(jìn)行測(cè)試。這樣做,一是可以減少測(cè)試比較的次數(shù),提高程序運(yùn)行速度。二是當(dāng)中含有數(shù)字、字母等半角字符時(shí),可以減少滿足條件的記錄數(shù)目,提高查詢的命中率。然而,若查詢條件中含有英文縮寫(xiě),則每次只能取一個(gè)ASCII字符進(jìn)行測(cè)試。
本函數(shù)的源程序如下:
*程序名稱:
*程序功能:比較是否為的縮略語(yǔ)
*調(diào)用格式:ZFBJ
*通常是一個(gè)字符型字段變量
*返回值:邏輯值.T.或.F.
*使用環(huán)境:
,
PRIVATEALL
IF0
=SUBSTR,MCWZ+K)
fhz=.T.
ELSE
fhz=.F.
EXIT
ENDIF
ENDFOR
="ON"
SETTALKON
ENDIF
pstat="ON"
SETCOMPATIBLEON
ENDIF
RETURNfhz
使用舉例:設(shè)內(nèi)存變量,其值為用戶輸入的用戶名稱的簡(jiǎn)稱,如“涪師專(zhuān)”,現(xiàn)在要在中查詢用戶名稱為“涪陵師范高等專(zhuān)科學(xué)?!?,或?yàn)椤案⒘陰煂?zhuān)”,或?yàn)椤案煂?zhuān)”的全部記錄,可以先將滿足條件的記錄拷貝到一臨時(shí)數(shù)據(jù)庫(kù)中,然后再瀏覽,瀏覽完畢刪除臨時(shí)數(shù)據(jù)庫(kù)。其程序如下:
="涪師專(zhuān)"
SELECT0
USEKTJBK
SELECT0
USETEMP
BROWSENOEDIT
USE
DELETEFILE
SELECTKTJBK
USE
通過(guò)上面介紹的自定義函數(shù)實(shí)現(xiàn)了真正的模糊查詢,然而令人遺憾的是它的速度表現(xiàn)總使人感到美中不足。幸好在FoxPro中引入了結(jié)構(gòu)化查詢語(yǔ)言SELECT-SQL。
三、利用FoxPro中SELECT-SQL語(yǔ)句的模糊查詢方法
結(jié)構(gòu)化查詢語(yǔ)言SQL是FoxPro中值得驕傲的特色之一。利用SQL的SELECT語(yǔ)句
可以非常方便、極其快速地進(jìn)行十分復(fù)雜的查詢操作。特別值得推薦的是ELECT-SQL語(yǔ)句中的WHERE參數(shù)支持通配符“%”和“_”,因此,對(duì)于查詢條件為縮略語(yǔ)或簡(jiǎn)稱的情況,可以非常簡(jiǎn)單地實(shí)現(xiàn)真正的模糊查詢。這里,百分符號(hào)“%”代表0個(gè)或0個(gè)以上的任意字符,下劃線符號(hào)“_”代表1個(gè)任意字符,它們只能與運(yùn)算符LIKE搭配使用。
使用舉例:設(shè)內(nèi)存變量,其值為用戶輸入的用戶名稱的簡(jiǎn)稱,如“涪師專(zhuān)”,現(xiàn)在要在中查詢用戶名稱為“涪陵師范高等專(zhuān)科學(xué)?!保?yàn)椤案⒘陰煂?zhuān)”,或?yàn)椤案煂?zhuān)”的全部記錄,可以用下面的一段程序?qū)崿F(xiàn):
="涪師專(zhuān)"
mc_cxtj="%"
FORi=1TOLEN)STEP2
mc_cxtj=mc_cxtj+SUBSTR,i,2)+"%"
ENDFOR
SELECT*;
FROMKTJBK;
WHEREKTJBK.用戶名稱LIKE;
INTOCURSORTEMP
程序說(shuō)明:本程序運(yùn)行時(shí),先將="涪師專(zhuān)"中插入四個(gè)通配符“%”,得到mc_cxtj="%涪%師%專(zhuān)%",然后利用SQL的SELECT語(yǔ)句,從數(shù)據(jù)庫(kù)中選出字段變量“用戶名稱”符合“%涪%師%專(zhuān)%”格式的所有記錄,輸出到一個(gè)虛擬臨時(shí)數(shù)據(jù)庫(kù)中。
利用FoxPro中的結(jié)構(gòu)化查詢語(yǔ)言SELECT-SQL可以編寫(xiě)出很漂亮的通用查詢程序。筆者在數(shù)據(jù)庫(kù)管理系統(tǒng)的開(kāi)發(fā)實(shí)踐中,曾用FoxPro的屏幕生成器編寫(xiě)過(guò)一通用查詢程序,其通用性和執(zhí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit2 What's the elephant doing(說(shuō)課稿)-2024-2025學(xué)年外研版(三起)英語(yǔ)四年級(jí)上冊(cè)
- 15《八角樓上》(說(shuō)課稿)2024-2025學(xué)年-統(tǒng)編版二年級(jí)語(yǔ)文上冊(cè)001
- 7《不甘屈辱奮勇抗?fàn)?圓明園的訴說(shuō)》(說(shuō)課稿)統(tǒng)編版道德與法治五年級(jí)下冊(cè)
- 2023七年級(jí)英語(yǔ)下冊(cè) Unit 2 What time do you go to school Section A 第1課時(shí)(1a-2d)說(shuō)課稿 (新版)人教新目標(biāo)版
- 8大家的“朋友”(說(shuō)課稿)-部編版道德與法治三年級(jí)下冊(cè)
- 2024-2025學(xué)年高中歷史 第一單元 中國(guó)古代的農(nóng)耕經(jīng)濟(jì) 第5課 農(nóng)耕時(shí)代的商業(yè)與城市(1)教學(xué)說(shuō)課稿 岳麓版必修2
- 2024年八年級(jí)歷史下冊(cè) 第三單元 第11課 為實(shí)現(xiàn)中國(guó)夢(mèng)而努力奮斗說(shuō)課稿 新人教版
- 2024年三年級(jí)品社下冊(cè)《學(xué)看平面圖》說(shuō)課稿 山東版
- 2025三元區(qū)國(guó)有商品林采伐與銷(xiāo)售權(quán)轉(zhuǎn)讓合同書(shū)
- Unit 5 Colours Lesson 2 (說(shuō)課稿)-2024-2025學(xué)年人教新起點(diǎn)版英語(yǔ)一年級(jí)上冊(cè)
- CSC資助出國(guó)博士聯(lián)合培養(yǎng)研修計(jì)劃英文-research-plan
- 《環(huán)境管理學(xué)》教案
- 2025年蛇年年度營(yíng)銷(xiāo)日歷營(yíng)銷(xiāo)建議【2025營(yíng)銷(xiāo)日歷】
- (一模)寧波市2024學(xué)年第一學(xué)期高考模擬考試 數(shù)學(xué)試卷(含答案)
- 冀少版小學(xué)二年級(jí)下冊(cè)音樂(lè)教案
- 父母贈(zèng)與子女農(nóng)村土地協(xié)議書(shū)范本
- 《師范硬筆書(shū)法教程(第2版)》全套教學(xué)課件
- 中國(guó)聯(lián)通H248技術(shù)規(guī)范
- 集團(tuán)母子公司協(xié)議書(shū)
- DL-T-692-2018電力行業(yè)緊急救護(hù)技術(shù)規(guī)范
- 2024年杭州錢(qián)塘新區(qū)建設(shè)投資集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
評(píng)論
0/150
提交評(píng)論