重囗另类BBWSeⅹHD,av狼论坛,精品一卡2卡三卡4卡乱码理论,体育生gv老师浪小辉3p警察

數據庫管理系統中的模糊查詢技術

時間:2023-05-01 07:39:55 計算機論文 我要投稿
  • 相關推薦

數據庫管理系統中的模糊查詢技術

內容提要 主要介紹在數據庫管理系統中實現模糊查詢的方法與技巧,提供了能實現真正模糊查詢的二個通用函數的源程序,特別是介紹了結構化查詢語言SQL中鮮為人知的通配符的使用方法。

關鍵詞 FoxPro 模糊查詢 SELECT-SQL 通配符

在數據庫管理系統中,查詢是一個很重要的內容。然而,在多數情況下人們不能準確知道作為查詢條件的字段內容,如:某字段內容為“涪陵師范高等專科學校”,查詢者可能只知道其簡稱“涪陵師專”或“涪師專”,這時,為保證能查到滿足條件的數據記錄,只能進行模糊查詢。下面從編程的角度談談在FoxPro 2.5b中,實現模糊查詢的方法。

一、 簡單的模糊查詢方法

① 利用比較操作符“=”進行模糊查詢。先把SET EXACT的設置置為OFF,這時,“=”用于兩個字符表達式之間作比較,其規則是:“=”右邊的字符逐個與“=”左邊相同位置的字符進行比較,只要遇到其中一個字符不相等,或者“=”右邊的字符表達式結束,比較操作就結束。所以,"abc"="abc","abc"="ab","ab_"="ab","ab"=""的比較結果均為邏輯真(.T.)。可見,這種方法的模糊性是不能令人滿意的。

② 利用“$”進行包含比較,其模糊查詢的效果就比用“=”時好得多。這種方法是在“$”右邊的字符表達式中查找“$”左邊的字符表達式,若找到返回邏輯真(.T.),否則返回邏輯假(.F.)。用這種方法只要“$”左邊的字符表達式的每一個字符在“$”右邊的字符表達式中存在且位置不間斷,查找就能成功,然而對于諸如前面提到的“涪陵師專”或“涪師專”之類的簡稱,其查找結果為邏輯假(.F.)。

由此可見,直接利用“=”和“$”進行比較操作是不能太“模糊”的。

二、查詢條件為縮略語或簡稱的模糊查詢方法

縮略語或簡稱在地名、單位名稱中使用非常廣泛。通常,縮略語或簡稱是由全稱中的某些排列位置不連續的字符組成的,因此,通過設置不同長度的字符串進行比較的規則,或者利用包含比較符“$”,是不能對縮略語或簡稱進行模糊查詢的。這時可編寫一通用的自定義函數,將用戶輸入的查詢條件(<字符串2>)與字符型字段變量(<字符串1>)進行逐字比較,如果<字符串2>是<字符串1>的縮略語或簡稱,則返回邏輯真(.T.)否則返回邏輯假(.F.),從而實現模糊查詢。

下面將作者所編寫的自定義函數介紹給讀者,以供參考。

設計思想:此函數必須是一個通用函數。為此,執行時可先接受二個參數──<字符串1>和<字符串2>。從<字符串2>的左邊開始取其第一、二個字符X1,用AT( )函數測試X1在<字符串1>中的位置S1,如果S1不為0,就將<字符串1>中包含X1以及左邊部分的字符截掉,并取<字符串2>中的第三、四個字符X2,用AT( )函數測試X2在<字符串1>的剩余部分中的位置S2,若S2不為0,就將<字符串1>的剩余部分中包含X2以及左邊部分的字符截掉……,直到將<字符串2>中的字符取完并在<字符串1>中測試完為止,最后本函數返回邏輯真(.T.)。在這個過程中只要有一次測試不成功(即Sn=0),則退出本函數并返回邏輯假(.F.)。因為一個漢字占二個ASCII字符,所以每次取二個相鄰字符進行測試(讓ZFBJ.PRG中的K=2)。這樣做,一是可以減少測試比較的次數,提高程序運行速度。二是當<字符串2>中含有數字、字母等半角字符時,可以減少滿足條件的記錄數目,提高查詢的命中率。然而,若查詢條件中含有英文縮寫,則每次只能取一個ASCII字符進行測試(讓ZFBJ.PRG中的K=1)。

本函數的源程序如下:

*************************************************************

* 程序名稱:ZF

[1] [2] [3] 

【數據庫管理系統中的模糊查詢技術】相關文章:

動態分段技術在公交查詢系統中的應用04-28

河流系統水質管理模糊優化模型04-25

基于MapObject組件的安全生產監督管理系統信息查詢技術04-30

系統模糊優選理論在投資項目決策中的應用04-28

基于GIS的基礎數據庫管理系統04-29

路面管理系統中的預防性養護技術05-02

帶模糊參數的系統模糊可靠度分析04-30

在成本預算管理中難得模糊的論文04-27

模糊系統辨識方法在TIG焊過程建模中的應用04-27

基于PostgreSQL的GML數據查詢管理系統05-01

主站蜘蛛池模板: 疏附县| 临沭县| 康乐县| 确山县| 仪陇县| 乐东| 长汀县| 界首市| 孝感市| 临澧县| 南溪县| 东方市| 苍梧县| 衡阳市| 逊克县| 庄河市| 浦东新区| 三门县| 绥芬河市| 泉州市| 睢宁县| 喀喇沁旗| 肇州县| 沁源县| 永登县| 甘孜县| 淮南市| 青龙| 临澧县| 通辽市| 神木县| 汶上县| 曲阳县| 桃源县| 延边| 五华县| 象山县| 祁连县| 垦利县| 涞水县| 宝丰县|