IQL

IQL,全稱是InteractiveQueryLanguage,即互動式查詢語言。

簡介

InteractiveQueryLanguage--互動式查詢語言

[轉]ASP基礎教程:資料庫查詢語言

ASP基礎教程:資料庫查詢語言(1),asp,網路編程,基礎教程,ASP開發

原定計畫從本篇開始就要給大家介紹ASP內建的ActiveX組件,但是考慮到我們在往後的學習中將會接觸到大量的資料庫查詢,因此作者臨時決定花一到兩篇的篇幅向大家簡要介紹一些資料庫查詢語言的基本知識,這其實也是學習ASP所必須掌握的一門知識。是否能夠靈活地運用資料庫查詢語言,將直接關係到ASP程式的執行效率等一系列問題,所以請各位務必重視。

相信很多朋友都聽說過SQL這個名字,如果你是計算機方面的行家,SQL的大名一定是如雷貫耳。那么SQL究竟是什麼呢?SQL一詞實際上是"StructuredQueryLanguage"結構式查詢語言的縮寫,是用於對存放在計算機資料庫中的數據進行組織、管理和檢索的一種工具;是一種特定類型的資料庫--關係資料庫。而控制這種資料庫的電腦程式就是我們常說的DBMS--資料庫管理系統。譬如:SQLServer、Oracle、Sybase、DB2等等。當用戶想要檢索資料庫中的數據時,就通過SQL語言發出請求,接著DBMS對該SQL請求進行處理並檢索所要求的數據,最後將其返回給用戶,此過程被稱作為資料庫查詢,這也就是資料庫查詢語言這一名稱的由來。

SQL並不是象C、COBOLFortran語言那樣的完整的計算機語言。SQL沒有用於條件測試的IF語句,也沒有用於程式分支的Goto語句以及循環語句For或Do。確切的講,SQL是一種資料庫子語言,SQL語句可以被嵌入到另一種語言中,從而使其具有資料庫存取功能。SQL也非嚴格的結構式語言,它的句法更接近英語語句,因此易於理解,大多數SQL語句都是直述其意,讀起來就象自然語言一樣明了。SQL還是一種互動式查詢語言,允許用戶直接查詢存儲數據,利用這一互動特性,用戶可以在很短的時間內回答相當複雜的問題,而同樣問題若讓程式設計師編寫相應的報表程式則可能要用幾個星期甚至更長時間。

在大部分ASP應用程式中我們都會接觸到資料庫,而我們在編寫ASP應用程式時用來進行資料庫操作的標準語法正是SQL,因此SQL語法的重要性是不言而喻的。下面,我們就從最常用的SQL語句SELECT著手,一步一步地來學習SQL。

查詢是SQL語言的核心,而用於表達SQL查詢的SELECT語句則是功能最強也是最為複雜的SQL語句,它從資料庫中檢索數據,並將查詢結果提供給用戶。在本文中我們將建立一個名為tianjiao的簡單資料庫,該庫中存放了一個叫sales的銷售記錄表,如下所示:

姓名性別工資銷售目標銷售額地區書生男250080009000上海吳冠軍男3000100009999北京雷鳴男2000800010000四川雪兒女250050006000廣州顧一男260090009800大連阿卓女200040004000天津熠天男40002000020000全國

在該表中有六列即六個欄位:姓名、性別、工資、銷售目標、銷售額、地區,首先我們用Select語句列出姓名、銷售目標和銷售額:

Select姓名,銷售目標,銷售額Fromsales

結果如下:姓名銷售目標銷售額書生80009000吳冠軍100009999雷鳴800010000雪兒50006000顧一90009800阿卓40004000熠天2000020000

然後,我們再列出所有男性的姓名、銷售目標和銷售額:

Select姓名,銷售目標,銷售額FromsalesWhere性別="男"

結果如下:姓名銷售目標銷售額書生80009000吳冠軍100009999雷鳴800010000顧一90009800熠天2000020000

接下來,我們做一個相對複雜的查詢,列出銷售額大於銷售目標的所有男性的姓名、銷售目標和銷售額,並且按銷售目標排序。

Select姓名,銷售目標,銷售額
Formsales
Where銷售額>銷售目標
And性別="男"
OrderBy銷售目標
結果如下:姓名銷售目標銷售額書生80009000雷鳴800010000顧一90009800熠天2000020000

大家可以看到,對於簡單查詢,SQLSelect語句和英文語法很相象,我們來分析一下SELECT語句的完整格式,它包括六個子句,其中SELECT和FROM子句是必須的,其它子句可以任選,每個子句的功能如下:

1、Select子句列出所有要求SELECT語句檢索的數據項。它放在SELECT語句開始處,指定此查詢要檢索的數據項。這些數據項通常用選擇表表示,即一組用“,”隔開的選擇項。按照從左到右的順序,每個選擇項產生的一個列的查詢結果,一個選擇項可能是以下項目:

(1)、列名:標識FROM子句指定表中的列。如果列名作為選擇項,則SQL直接從資料庫表中每行取出該列的值,再將其放在查詢結果的相應行中。

(2)、常數:指定在查詢結果的每行中都放上該值。

(3)、SQL表達式:說明必須將要放入查詢結果中的值按表達式的規定進行計算。

2、From子句列出包含所要查詢數據的表,它由關鍵字FROM後跟一組用逗號分開的表名組成。每個表明都代表一個包括該查詢要檢索數據的表。這些表稱為此SQL語句的表源,因為查詢結果都源於它們。

3、Where子句告訴SQL只查詢某些行中的數據,這些行用搜尋條件描述。

4、GroupBy子句指定匯總查詢,即不是對每行產生一個查詢結果,而是將相似的行進行分組,再對每組產生一個匯總結果。

5、Having子句告訴SQL只產生有GroupBy得到的某些組的結果,和Where子句一樣,所需要的組也用一個搜尋條件指定。

6、OrderBy子句將查詢結果按一列或多列中的數據排序。如果省略此子句,則查詢結果將是無序的。

下面作者將提供一個簡單但實用的運用SQL語句查詢的ASP程式供大家參考。

為了使大家更清楚更直接地了解SQL語法在ASP中的套用,我們先將查詢的所有核心過程寫成一個名為query2table的SUB,然後利用ASP的伺服器端包容功能調用該SUB。請將以下語句剪貼到記事簿,保存為subdbtable.inc檔案,並置於虛擬目錄asptest下:
完成了SUB的定義過程,在下面幾個ASP程式中我們只要加入想要使用的SQL查詢語句,並調用該過程就可以非常方便的得到查詢結果。將以下四段代碼分別保存為asp11a.asp、asp11b.asp、asp11c.asp、asp11d.asp四個.asp檔案。

asp11a.asp

asp11b.asp
=1998")
\'將表titles中所有發表年份大於或等於1998年的記錄查詢出來
%>

asp11c.asp
10000andsex=\'male\'")
\'將表publishers中所有數量大於10000且性別為男的記錄查詢出來
%>

asp11d.asp
\'NY\'")
\'將表publishers中所有所在城市不為紐約的記錄查詢出來。
%>

利用subdbtable.inc檔案中的所定義的過程query2table,你就可以非常迅速地對資料庫進行查詢,你所要做的只是將“conntemp.open"DSN=Student;uid=student;pwd=aspmagic"”中的資料庫名稱、用戶身份和密碼稍加改動,並在調用query2table時輸入想要使用的SQL查詢語句即可。是不是很簡單?這就是ASP和SQL的魅力所在!!!

今天,我們雖然用了一整篇的篇幅只學習了一個SQL指令,但請你相信你所獲得遠不同於一個DOS指令,SELECT指令使得你可以非常容易地對資料庫進行查詢,或許在這之前你對資料庫查詢還一無所知,但是通過本篇的學習,你其實已經會使用ASP進行常用的資料庫查詢了,是不是很激動?在下一篇中,作者將繼續給大家介紹SQL的其它幾個基本指令。

相關詞條

相關搜尋

熱門詞條

聯絡我們