原定計劃從本篇開始就要給大家介紹 ASP 內建的 ActiveX 組件,但是考慮到我們在往后的學習中將會接觸到大量的數據庫查詢,因此作者臨時決定花一到兩篇的篇幅向大家簡要介紹一些數據庫查詢語言的基本知識,這其實也是學習 ASP 所必須掌握的一門知識。是否能夠靈活地運用數據庫查詢語言,將直接關系到 ASP 程序的執行效率等一系列問題,所以請各位務必重視。
相信很多朋友都聽說過 SQL 這個名字,如果你是計算機方面的行家,SQL 的大名一定是如雷貫耳。那么 SQL 究竟是什么呢?SQL 一詞實際上是 "Structured Query Language" 結構式查詢語言的縮寫,是用于對存放在計算機數據庫中的數據進行組織、管理和檢索的一種工具;是一種特定類型的數據庫 -- 關系數據庫。而控制這種數據庫的計算機程序就是我們常說的 DBMS-- 數據庫管理系統。譬如:SQL Server、Oracle、Sybase、DB2 等等。當用戶想要檢索數據庫中的數據時,就通過 SQL 語言發出請求,接著 DBMS 對該 SQL 請求進行處理并檢索所要求的數據,最后將其返回給用戶,此過程被稱作為數據庫查詢,這也就是數據庫查詢語言這一名稱的由來。
SQL 并不是象 C、COBOL 和 Fortran 語言那樣的完整的計算機語言。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 姓名,銷售目標,銷售額 From sales
結果如下 : 姓名銷售目標銷售額書生80009000吳冠軍100009999雷鳴800010000雪兒50006000顧一90009800阿卓40004000熠天2000020000
然后,我們再列出所有男性的姓名、銷售目標和銷售額 :
Select 姓名,銷售目標,銷售額 From sales Where 性別 =" 男 "
結果如下 :姓名銷售目標銷售額書生80009000吳冠軍100009999雷鳴800010000顧一90009800熠天2000020000
接下來,我們做一個相對復雜的查詢,列出銷售額大于銷售目標的所有男性的姓名、銷售目標和銷售額,并且按銷售目標排序。
Select 姓名,銷售目標,銷售額 Form sales Where 銷售額 >銷售目標 And 性別 =" 男 " Order By 銷售目標 結果如下 : 姓名銷售目標銷售額書生80009000雷鳴800010000顧一90009800熠天2000020000
大家可以看到,對于簡單查詢,SQL Select 語句和英文語法很相象,我們來分析一下 SELECT 語句的完整格式,它包括六個子句,其中 SELECT 和 FROM 子句是必須的,其它子句可以任選,每個子句的功能如下 :
1、Select 子句列出所有要求 SELECT 語句檢索的數據項。它放在 SELECT 語句開始處,指定此查詢要檢索的數據項。這些數據項通常用選擇表表示,即一組用“,”隔開的選擇項。按照從左到右的順序,每個選擇項產生的一個列的查詢結果,一個選擇項可能是以下項目:
(1)、列名:標識 FROM 子句指定表中的列。如果列名作為選擇項,則 SQL 直接從數據庫表中每行取出該列的值,再將其放在查詢結果的相應行中。
(2)、常數:指定在查詢結果的每行中都放上該值。
(3)、SQL 表達式:說明必須將要放入查詢結果中的值按表達式的規定進行計算。
2、From 子句列出包含所要查詢數據的表,它由關鍵字 FROM 后跟一組用逗號分開的表名組成。每個表明都代表一個包括該查詢要檢索數據的表。這些表稱為此 SQL 語句的表源,因為查詢結果都源于它們。
3、Where 子句告訴 SQL 只查詢某些行中的數據,這些行用搜索條件描述。
4、Group By 子句指定匯總查詢,即不是對每行產生一個查詢結果,而是將相似的行進行分組,再對每組產生一個匯總結果。
5、Having 子句告訴 SQL 只產生有 Group By 得到的某些組的結果,和 Where 子句一樣,所需要的組也用一個搜索條件指定。
6、Order By 子句將查詢結果按一列或多列中的數據排序。如果省略此子句,則查詢結果將是無序的。 [1] [2] 下一頁
|