📄 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 + -