?? asp11.htm
字號:
</tr>
<tr>
<td width="16%">雷鳴</td>
<td width="20%">8000</td>
<td width="20%">10000</td>
</tr>
<tr>
<td width="16%">顧一</td>
<td width="20%">9000</td>
<td width="20%">9800</td>
</tr>
<tr>
<td width="16%">熠天</td>
<td width="20%">20000</td>
<td width="20%">20000</td>
</tr>
</tbody>
</table>
<p><br>
</p>
接下來,我們做一個相對復雜的查詢,列出銷售額大于銷售目標的所有男性的姓名、銷售目標和銷售額,并且按銷售目標排序。 <br>
Select 姓名,銷售目標,銷售額 <br>
Form sales<br>
Where 銷售額 > 銷售目標 <br>
And 性別 =" 男 "<br>
Order By 銷售目標 <br>
<p> 結果如下 : <br>
</p>
<table border="1" cellpadding="0" cellspacing="1" width="59%">
<tbody>
<tr>
<td bgcolor="#c0c0c0" width="16%">姓名</td>
<td bgcolor="#c0c0c0" width="20%">銷售目標</td>
<td bgcolor="#c0c0c0" width="20%">銷售額</td>
</tr>
<tr>
<td width="16%">書生</td>
<td width="20%">8000</td>
<td width="20%">9000</td>
</tr>
<tr>
<td width="16%">雷鳴</td>
<td width="20%">8000</td>
<td width="20%">10000</td>
</tr>
<tr>
<td width="16%">顧一</td>
<td width="20%">9000</td>
<td width="20%">9800</td>
</tr>
<tr>
<td width="16%">熠天</td>
<td width="20%">20000</td>
<td width="20%">20000</td>
</tr>
</tbody>
</table>
<p><br>
</p>
大家可以看到,對于簡單查詢,SQL Select 語句和英文語法很相象,我們來分析一下 SELECT 語句的完整格式,它包括六個子句,其中
SELECT 和 FROM 子句是必須的,其它子句可以任選,每個子句的功能如下 :<br>
<br>
1、Select 子句列出所有要求 SELECT 語句檢索的數據項。它放在 SELECT 語句開始處,指定此查詢要檢索的數據項。這些數據項通常用選擇表表示,即一組用“,”隔開的選擇項。按照從左到右的順序,每個選擇項產生的一個列的查詢結果,一個選擇項可能是以下項目:<br>
<br>
(1)、列名:標識 FROM 子句指定表中的列。如果列名作為選擇項,則 SQL 直接從數據庫表中每行取出該列的值,再將其放在查詢結果的相應行中。
<p> (2)、常數:指定在查詢結果的每行中都放上該值。 </p>
<p> (3)、SQL 表達式:說明必須將要放入查詢結果中的值按表達式的規定進行計算。 </p>
2、From 子句列出包含所要查詢數據的表,它由關鍵字 FROM 后跟一組用逗號分開的表名組成。每個表明都代表一個包括該查詢要檢索數據的表。這些表稱為此
SQL 語句的表源,因為查詢結果都源于它們。
<p> 3、Where 子句告訴 SQL 只查詢某些行中的數據,這些行用搜索條件描述。 </p>
<p> 4、Group By 子句指定匯總查詢,即不是對每行產生一個查詢結果,而是將相似的行進行分組,再對每組產生一個匯總結果。 </p>
<p> 5、Having 子句告訴 SQL 只產生有 Group By 得到的某些組的結果,和 Where 子句一樣,所需要的組也用一個搜索條件指定。
</p>
<p> 6、Order By 子句將查詢結果按一列或多列中的數據排序。如果省略此子句,則查詢結果將是無序的。 </p>
<p> 下面作者將提供一個簡單但實用的運用 SQL 語句查詢的 ASP 程序供大家參考。 </p>
為了使大家更清楚更直接地了解 SQL 語法在 ASP 中的應用,我們先將查詢的所有核心過程寫成一個名為 query2table 的 SUB,然后利用
ASP 的服務器端包容功能調用該 SUB。請將以下語句剪貼到記事簿,保存為 subdbtable.inc 文件,并置于虛擬目錄 asptest
下 : <br>
< %<br>
sub query2table(inputquery)<br>
set conntemp=server.createobject("adodb.connection")<br>
conntemp.open "DSN=Student;uid=student;pwd=aspmagic"<br>
set rstemp=conntemp.execute(inputquery)<br>
howmanyfields=rstemp.fields.count -1<br>
' 統計數據庫中的列數 <br>
%><br>
< table border=1>< tr><br>
< %<br>
for i=0 to howmanyfields<br>
%><br>
< td>< b>< %=rstemp(i).name%>< /B>< /TD><br>
< % next %><br>
< /tr><br>
< %<br>
do while not rstemp.eof<br>
%><br>
< tr><br>
< % for i = 0 to howmanyfields<br>
thisvalue=rstemp(i)<br>
If isnull(thisvalue) then<br>
thisvalue="?<br>
' 如果字段為空,則將變量 thisvalue 的值定義為一個空格 <br>
end if%><br>
< td valign=top>< %=thisvalue%>< /td><br>
< % next %><br>
< /tr><br>
< %rstemp.movenext<br>
loop%><br>
< /table><br>
< %<br>
rstemp.close<br>
set rstemp=nothing<br>
conntemp.close<br>
set conntemp=nothingend sub%><br>
<br>
完成了 SUB 的定義過程,在下面幾個 ASP 程序中我們只要加入想要使用的 SQL 查詢語句,并調用該過程就可以非常方便的得到查詢結果。將以下四段代碼分別保存為
asp11a.asp、asp11b.asp、asp11c.asp、asp11d.asp 四個 .asp 文件。 <br>
<br>
< HEAD>< TITLE>asp11a.asp< /TITLE>< /HEAD><br>
< HTML>< body bgcolor="#FFFFFF"><br>
< %<br>
call query2table("select * from publishers where name like 'A%%'")<br>
' 將表 publishers 中所有姓名中有字母 A 的記錄查詢出來 <br>
%><br>
< !--#include virtual="/asptest/subdbtable.inc"--><
/BODY>< /HTML><br>
<br>
<br>
< HEAD>< TITLE>asp11b.asp< /TITLE>< /HEAD><
HTML>< body bgcolor="#FFFFFF"><br>
< %<br>
call query2table("select * from titles where Year_Published >
= 1998")<br>
' 將表 titles 中所有發表年份大于或等于 1998 年的記錄查詢出來 <br>
%><br>
< !--#include virtual="/asptest/subdbtable.inc"--><
/BODY>< /HTML><br>
<br>
<br>
< HEAD>< TITLE>asp11c.asp< /TITLE>< /HEAD><
HTML>< body bgcolor="#FFFFFF"><br>
< %<br>
call query2table("select * from publishers where amount>10000
and sex='male'")<br>
' 將表 publishers 中所有數量大于 10000 且性別為男的記錄查詢出來 <br>
%><br>
< !--#include virtual="/asptest/subdbtable.inc"--><
/BODY>< /HTML><br>
<br>
<br>
< HEAD>< TITLE>asp11d.asp< /TITLE>< /HEAD><
HTML>< body bgcolor="#FFFFFF"><br>
< %<br>
call query2table("select * from publishers where state< > 'NY'")<br>
'將表 publishers 中所有所在城市不為紐約的記錄查詢出來。<br>
%><br>
< !--#include virtual="/asptest/subdbtable.inc"--><
/BODY>< /HTML><br>
<br>
利用 subdbtable.inc 文件中的所定義的過程 query2table,你就可以非常迅速地對數據庫進行查詢,你所要做的只是將“conntemp.open
"DSN=Student;uid=student;pwd=aspmagic"”中的數據庫名稱、用戶身份和密碼稍加改動,并在調用
query2table 時輸入想要使用的 SQL 查詢語句即可。是不是很簡單 ? 這就是 ASP 和 SQL 的魅力所在 !!! <br>
<br>
今天,我們雖然用了一整篇的篇幅只學習了一個 SQL 指令,但請你相信你所獲得遠不同于一個 DOS 指令,SELECT 指令使得你可以非常容易地對數據庫進行查詢,或許在這之前你對數據庫查詢還一無所知,但是通過本篇的學習,你其實已經會使用
ASP 進行常用的數據庫查詢了,是不是很激動 ? 在下一篇中,作者將繼續給大家介紹 SQL 的其它幾個基本指令。在結束本文之前,作者在這里要向很多來信的朋友致歉,由于最近作者工作繁忙,實在無暇一一回答各位的問題,請見諒,我會盡量將一些常見的、發生頻率較高的問題在文章中寫出來,至于一些不常見的問題,我建議大家到下面這個站點提問,你將會得到及時的答復。www.onlinechina.net/friend/flybird/bbs/wwwboard.asp?id=1,
這是作者至今為止所見的最棒的中文 ASP 學習站點,由上海的飛鳥主持,大家務必去看看。
<p align="CENTER">
<a href="asp10.htm">上一節</a> <a href="asp12.htm">下一節</a></p>
<p align="CENTER"><a href="index.asp">在線教程首頁</a></p>
</td>
</tr>
</table>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -