楊 超
(煙臺(tái)職業(yè)學(xué)院,山東 煙臺(tái) 264670)
計(jì)算機(jī)數(shù)據(jù)庫(kù)信息查詢方法及實(shí)現(xiàn)分析
楊 超
(煙臺(tái)職業(yè)學(xué)院,山東 煙臺(tái) 264670)
數(shù)據(jù)庫(kù)的應(yīng)用范圍越來越廣,查詢功能數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)最常用的功能,查詢技術(shù)非常重要.動(dòng)態(tài)多條件查詢是信息的重要方法,能有效幫助客戶解決數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中數(shù)據(jù)的復(fù)雜查詢問題.這種查詢方式的實(shí)現(xiàn)關(guān)鍵在于利用SQL語句動(dòng)態(tài)生成數(shù)據(jù)窗口而簡(jiǎn)化了信息查詢流程.動(dòng)態(tài)查詢大大縮短了應(yīng)用系統(tǒng)開發(fā)周期,節(jié)約了維護(hù)成本,給產(chǎn)品維護(hù)工作帶來極大便利.
數(shù)據(jù)庫(kù);信息查詢;方法
隨著計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用范圍越來越廣,它已成為計(jì)算機(jī)應(yīng)用系統(tǒng)和信息系統(tǒng)的基礎(chǔ)和核心.充分利用數(shù)據(jù)庫(kù)中的數(shù)據(jù),建立數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),有助于信息管理.數(shù)據(jù)庫(kù)的類型多樣,從簡(jiǎn)單的表格處理到海量數(shù)據(jù)儲(chǔ)存系統(tǒng)都包含在內(nèi).數(shù)據(jù)庫(kù)不僅能夠儲(chǔ)存企事業(yè)單位、團(tuán)體和個(gè)人的信息,且海量資源可以為眾多用戶所共享,能滿足客戶對(duì)于信息信息查詢和信息處理的需求.
數(shù)據(jù)庫(kù)作為獨(dú)立的程序,能靈活設(shè)置用戶接口,支持多個(gè)用戶同時(shí)操作.用戶可根據(jù)自身需求,從數(shù)據(jù)庫(kù)擴(kuò)區(qū)所需數(shù)據(jù).查詢功能是用戶操作數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)時(shí)最基礎(chǔ)、最常使用的功能,且當(dāng)前用戶進(jìn)行數(shù)據(jù)查詢十分頻繁,數(shù)據(jù)庫(kù)查詢技術(shù)顯得非常重要.對(duì)數(shù)據(jù)庫(kù)信息查詢的方法進(jìn)行分類,并研究其實(shí)現(xiàn)方法,意義重大.
數(shù)據(jù)庫(kù)綜合查詢技術(shù)是讓用戶指定任何多個(gè)組合條件并且由用戶指定輸出哪些字段的查詢方法,利用該項(xiàng)技術(shù),可以選擇輸出的字段列表,同時(shí)指定查詢條件組合,然后通過自定義動(dòng)態(tài)組合地生成查詢指令,最后將查詢結(jié)果顯示在客戶端界面上[1].
當(dāng)前數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開發(fā)主要使用美國(guó)Powersoft公司于1991年6月推出的開發(fā)工具Power Builder,該項(xiàng)工具的獨(dú)特優(yōu)勢(shì)是它智能化的數(shù)據(jù)窗口,利用此對(duì)象可以直接使用檢索、更新等多種方式的操作來變更數(shù)據(jù)庫(kù)中的數(shù)據(jù),而省去寫入SQL語句的麻煩[2].
Power Builder具有內(nèi)部查詢機(jī)制,在同一個(gè)數(shù)據(jù)窗口中,用戶既能輸入查詢條件,又可以看到查詢結(jié)果的顯示,同時(shí)還能根據(jù)實(shí)際需求將多個(gè)查詢條件組合起來進(jìn)行查詢,具有獨(dú)特的優(yōu)勢(shì),因而倍受用戶歡迎.條件的輸入和元組顯示能夠在同一數(shù)據(jù)窗口內(nèi)實(shí)現(xiàn),但二者之間有一定的差異,條件輸入是固定在某一個(gè)范圍,不可進(jìn)行編輯,元組顯示則包含滿足條件的所有記錄,可以進(jìn)行編輯.基于元組顯示和條件輸入之間的差別,才使用兩個(gè)數(shù)據(jù)窗口進(jìn)行控制,而沒有把它們放在同一個(gè)數(shù)據(jù)窗口中實(shí)現(xiàn).
在使用Power Builder進(jìn)行應(yīng)用程序的設(shè)計(jì)過程中要考慮其完整性和實(shí)用性.維持?jǐn)?shù)據(jù)庫(kù)的完整性要做到字段和數(shù)值的范圍相吻合.查詢系統(tǒng)實(shí)用性的實(shí)現(xiàn),依靠數(shù)據(jù)窗口設(shè)計(jì)的簡(jiǎn)單明了和完備性,這樣既方便用戶操作,又能滿足任何復(fù)雜條件的合理查詢需求.例如:在綜合查詢的設(shè)計(jì)中使用“非”(not)、“或”(or)、“與”(and)3 種邏輯關(guān)系可以自由組合查詢條件;使用標(biāo)點(diǎn)符號(hào)可以改變邏輯關(guān)系,使用“>”、“=”、“<”、“≥”、“≤”等比較符,進(jìn)行合理的條件組合能很快找出符合條件的查詢結(jié)果.在系統(tǒng)操作過程中,數(shù)據(jù)的實(shí)用性會(huì)影響運(yùn)算結(jié)果和運(yùn)算一致性,它是建立系統(tǒng)的重要依據(jù).因此需要針對(duì)具體的應(yīng)用系統(tǒng)特征,使用一種或多種方式建立相應(yīng)的機(jī)制,以提高數(shù)據(jù)的正確性和有效性.為維護(hù)數(shù)據(jù)的一致性,可使用表定義約束和觸發(fā)器方法,由此使程序開發(fā)量減少,幫助應(yīng)用系統(tǒng)提升穩(wěn)定性和運(yùn)行效率.第二,多層次保護(hù)的使用,能夠有效維護(hù)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的完整性和安全性.再者,通過管理系統(tǒng)的維護(hù),及時(shí)反饋用戶操作信息并拒絕非法數(shù)據(jù)的輸入,實(shí)現(xiàn)數(shù)據(jù)的完整性.
在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的實(shí)際開發(fā)中,使用SQL語句是完成信息查詢的基礎(chǔ)步驟.SQL(St ruct ured Query Language)語言是1974年由Boyce和Chamberl in提出的,集數(shù)據(jù)定義(Dat a Definition)、數(shù)據(jù)操縱(Dat a Manipul ation)、和數(shù)據(jù)控制(Dat a Cont rol)為一體的關(guān)系數(shù)據(jù)語言[3].
SQL即結(jié)構(gòu)化查詢語言,它的突出優(yōu)勢(shì)是語言簡(jiǎn)潔,功能多樣,核心為數(shù)據(jù)庫(kù)查詢語句.SQL的語法為:SELECT〈目標(biāo)列〉stringa FROM〈基本表(或視圖)〉stringb WHRE〈條件表達(dá)式〉stringc.
格式說明:〈〉中的內(nèi)容為根據(jù)需要的具體內(nèi)容.
語句含義:根據(jù)W H ERE子句中的條件表達(dá)式,從基本表(或視圖)中找出滿足條件的元組,按SELECT子句中的目標(biāo)列,選出元組中的分量形成表.
使用SQL語句構(gòu)建數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),需要對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)十分熟悉,僅僅了解SQL語句,只能進(jìn)行簡(jiǎn)單的信息查詢;另外,必須對(duì)庫(kù)造作,并配合其他技術(shù)的使用,才能很好地完成復(fù)雜的查詢工作.
圖1
在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的實(shí)際開發(fā)過程中,常常涉及到對(duì)數(shù)據(jù)庫(kù)中的字符按進(jìn)行自由組合形式的查詢,即為動(dòng)態(tài)多條件查詢,如圖1,就是典型的多條件動(dòng)態(tài)查詢.在查詢界面中,用戶可根據(jù)自己所知的幾個(gè)條件信息搜索數(shù)據(jù)庫(kù),篩選已知信息以縮小搜索范圍,從而更快找到所需結(jié)果.對(duì)于這類多條件的動(dòng)態(tài)查詢,應(yīng)當(dāng)使用PowerBuilder工具創(chuàng)建動(dòng)態(tài)數(shù)據(jù)窗口,并對(duì)其實(shí)行動(dòng)態(tài)監(jiān)控.動(dòng)態(tài)地創(chuàng)建數(shù)據(jù)窗口,應(yīng)遵循以下步驟:
SQL 查詢語句的語法是:“select A from B where C”[4],其中A代表的是查詢目標(biāo),即為查詢表的字段;B代表的是操作的表對(duì)象,可以是多個(gè)表或單個(gè)表的個(gè)副本;C代表的是進(jìn)行操作的記錄條件.建立SQL語句時(shí),可以在程序設(shè)計(jì)期間調(diào)用動(dòng)態(tài)調(diào)用動(dòng)態(tài)SQL語句,也可在程序運(yùn)行期間調(diào)用SQL動(dòng)態(tài)語句.在程序運(yùn)行過程中如果用戶要求實(shí)現(xiàn)綜合查詢,則只能通過重寫SQL語句來滿足客戶需求,最好動(dòng)態(tài)地創(chuàng)建SQL語句.動(dòng)態(tài)SQL語句即為參數(shù)化的語句,可以在程序運(yùn)行中動(dòng)態(tài)地給參數(shù)變量賦值,以實(shí)現(xiàn)應(yīng)用過程中的綜合查詢.在具體的應(yīng)用過程中,通常先輸入查詢條件,輸入完畢后點(diǎn)擊按鈕使查詢條件顯示在顯示欄中,此時(shí)用于查詢的字符串也被寫入了查詢條件,SQL語句由此生成.
synt axFrom SQL()函數(shù)具有功能強(qiáng)、靈活性高的優(yōu)點(diǎn),常被用來創(chuàng)建動(dòng)態(tài)窗口.創(chuàng)建數(shù)據(jù)窗口對(duì)象語法可以依照以下步驟:首先聲明變量,其次定義數(shù)據(jù)窗口的字符來源和顯示字符串,最后得到創(chuàng)建數(shù)據(jù)窗口對(duì)象語法.如果發(fā)生錯(cuò)誤,synt axFrom SQL會(huì)返回一個(gè)字符串.利用synt axFrom SQL( )函數(shù)構(gòu)建數(shù)據(jù)窗口得到字符串后,必須把它同窗口上已經(jīng)存在的數(shù)據(jù)窗口控件相結(jié)合.利用得出的SQL字符串,在數(shù)據(jù)窗口空間中動(dòng)態(tài)創(chuàng)建一個(gè)新的數(shù)據(jù)窗口[5].
在真實(shí)的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中,用戶習(xí)慣于利用選項(xiàng)方式輸入查詢條件,這就需要?jiǎng)?chuàng)建一個(gè)界面簡(jiǎn)潔、使用方便的數(shù)據(jù)窗口對(duì)象.利用數(shù)據(jù)窗口控件建立數(shù)據(jù)窗口對(duì)象時(shí),先要尋備好要建對(duì)象的基本屬性數(shù)據(jù),將這些數(shù)據(jù)輸入程序完成屬性調(diào)整,然后完成各對(duì)象缺省參數(shù)的賦值,改變對(duì)象大小并調(diào)整對(duì)象間間距,最終完成數(shù)據(jù)窗口對(duì)象的可視創(chuàng)建.由于數(shù)據(jù)窗口動(dòng)態(tài)性較強(qiáng),應(yīng)靈活使用應(yīng)用程序,采用動(dòng)態(tài)方式創(chuàng)建那些只有在運(yùn)行時(shí)才能確定的數(shù)據(jù)窗口.
數(shù)據(jù)庫(kù)查詢技術(shù)是計(jì)算機(jī)應(yīng)用技術(shù)的核心,查詢方法包括綜合信息查詢技術(shù)、使用SQL語句和動(dòng)態(tài)多條件查詢方法.而動(dòng)態(tài)多條件查詢法應(yīng)用于計(jì)算機(jī)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中,不僅能簡(jiǎn)化查詢條件,且避免了應(yīng)用系統(tǒng)開發(fā)同用戶查詢方式需求不相適應(yīng)的矛盾.動(dòng)態(tài)多條件查詢方式的實(shí)現(xiàn),關(guān)鍵在于利用SQL語句動(dòng)態(tài)生成數(shù)據(jù)窗口而簡(jiǎn)化了信息查詢流程.這使用這種查詢方法,對(duì)于普通客戶而言,能滿足他們對(duì)信息管理的需求;對(duì)于那些需要解決數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中數(shù)據(jù)復(fù)雜查詢問題的客戶而言,則幫他們攻克了技術(shù)難關(guān).動(dòng)態(tài)查詢的實(shí)現(xiàn),大大縮短了應(yīng)用系統(tǒng)開發(fā)周期,節(jié)約了維護(hù)成本,給產(chǎn)品維護(hù)工作帶來極大便利.
〔1〕崔艷榮,陳勇.web模式下動(dòng)態(tài)數(shù)據(jù)庫(kù)綜合查詢技術(shù)[J].電腦知識(shí)與技術(shù),2011,8(5):991-1018.
〔2〕孫艷紅.計(jì)算機(jī)數(shù)據(jù)庫(kù)信息查詢技術(shù)分析[J].科技創(chuàng)新導(dǎo)報(bào),2008(23):42.
〔3〕孟令宇.淺談數(shù)據(jù)庫(kù)數(shù)據(jù)的復(fù)雜查詢利用工具的進(jìn)行[J].中國(guó)科技信息,2005(17):50-54.
〔4〕王彬蔚.計(jì)算機(jī)數(shù)據(jù)庫(kù)庫(kù)信息查詢技術(shù)探討[J].現(xiàn)代商貿(mào)工業(yè),2010(23):391.
〔5〕周晨旭.計(jì)算機(jī)數(shù)據(jù)庫(kù)信息查詢方法分析與實(shí)現(xiàn)方法[J]才智,2012(4):63.
〔6〕穆彤娜,于洪敏,張鐵成.數(shù)據(jù)庫(kù)系統(tǒng)綜合查詢方法研究[J].中國(guó)礦業(yè)大學(xué)學(xué)報(bào),2006,3,35(2):260-264.
TP311.13
A
1673-260X(2012)08-0030-02