asp

位置:IT落伍者 >> asp >> 浏览文章

ASP基础入门:数据库查询语言(1)


发布日期:2020年02月22日
 
ASP基础入门:数据库查询语言(1)

原定计划从本篇开始就要给大家介绍 ASP 内建的 ActiveX

组件但是考虑到我们在往后的学习中将会接触到大量的数据库查询因此作者临时决定花一到两篇的篇幅向大家简要介绍一些数据库查询语言的基本知识这其实也是学习

ASP

所必须掌握的一门知识是否能够灵活地运用数据库查询语言将直接关系到

ASP 程序的执行效率等一系列问题所以请各位务必重视

相信很多朋友都听说过 SQL

这个名字如果你是计算机方面的行家SQL

的大名一定是如雷贯耳那么 SQL 究竟是什么呢?SQL 一词实际上是

"Structured Query Language"

结构式查询语言的缩写是用于对存放在计算机数据库中的数据进行组织管理和检索的一种工具;是一种特定类型的数据库

关系数据库而控制这种数据库的计算机程序就是我们常说的

DBMS 数据库管理系统譬如SQL ServerOracleSybaseDB

等等当用户想要检索数据库中的数据时就通过 SQL

语言发出请求接着 DBMS 对该 SQL

请求进行处理并检索所要求的数据最后将其返回给用户此过程被称作为数据库查询这也就是数据库查询语言这一名称的由来

SQL 并不是象 CCOBOL 和 Fortran 语言那样的完整的计算机语言SQL

没有用于条件测试的 IF 语句也没有用于程序分支的 Goto

语句以及循环语句 For 或 Do确切的讲SQL 是一种数据库子语言SQL

语句可以被嵌入到另一种语言中从而使其具有数据库存取功能SQL

也非严格的结构式语言它的句法更接近英语语句因此易于理解大多数

SQL 语句都是直述其意读起来就象自然语言一样明了SQL

还是一种交互式查询语言允许用户直接查询存储数据利用这一交互特性用户可以在很短的时间内回答相当复杂的问题而同样问题若让程序员编写相应的报表程序则可能要用几个星期甚至更长时间

在大部分 ASP 应用程序中我们都会接触到数据库而我们在编写

ASP 应用程序时用来进行数据库操作的标准语法正是 SQL因此 SQL

语法的重要性是不言而喻的下面我们就从最常用的 SQL 语句 SELECT

着手一步一步地来学习 SQL

查询是 SQL 语言的核心而用于表达 SQL 查询的 SELECT

语句则是功能最强也是最为复杂的 SQL

语句它从数据库中检索数据并将查询结果提供给用户在本文中我们将建立一个名为

tianjiao 的简单数据库该库中存放了一个叫 sales

的销售记录表如下所示 :

姓名

性别

工资

销售目标

销售额

地区

书生

上海

吴冠军

北京

雷鸣

四川

雪儿

广州

顾一

大连

阿卓

天津

熠天

全国

在该表中有六列即六个字段 :

姓名性别工资销售目标销售额地区首先我们用 Select

语句列出姓名销售目标和销售额 :

Select 姓名销售目标销售额 From sales

结果如下 :

姓名

销售目标

销售额

书生

吴冠军

雷鸣

雪儿

顾一

阿卓

熠天

然后我们再列出所有男性的姓名销售目标和销售额 :

Select 姓名销售目标销售额 From sales Where 性别 =" 男

"

结果如下 :

姓名

销售目标

销售额

书生

吴冠军

雷鸣

顾一

熠天

接下来我们做一个相对复杂的查询列出销售额大于销售目标的所有男性的姓名销售目标和销售额并且按销售目标排序

Select 姓名销售目标销售额

Form sales

Where 销售额 > 销售目标

And 性别 =" 男 "

Order By 销售目标

结果如下 :

姓名

销售目标

销售额

书生

雷鸣

顾一

熠天

大家可以看到对于简单查询SQL Select

语句和英文语法很相象我们来分析一下 SELECT

语句的完整格式它包括六个子句其中 SELECT 和FROM

子句是必须的其它子句可以任选每个子句的功能如下 :

Select 子句列出所有要求 SELECT 语句检索的数据项它放在

SELECT

语句开始处指定此查询要检索的数据项这些数据项通常用选择表表示即一组用“”隔开的选择项按照从左到右的顺序每个选择项产生的一个列的查询结果一个选择项可能是以下项目

()列名标识 FROM

子句指定表中的列如果列名作为选择项则 SQL

直接从数据库表中每行取出该列的值再将其放在查询结果的相应行中

()常数指定在查询结果的每行中都放上该值

()SQL

表达式说明必须将要放入查询结果中的值按表达式的规定进行计算

From 子句列出包含所要查询数据的表它由关键字 FROM

后跟一组用逗号分开的表名组成每个表明都代表一个包括该查询要检索数据的表这些表称为此

SQL 语句的表源因为查询结果都源于它们

Where 子句告诉 SQL

只查询某些行中的数据这些行用搜索条件描述

Group By

子句指定汇总查询即不是对每行产生一个查询结果而是将相似的行进行分组再对每组产生一个汇总结果

Having 子句告诉 SQL 只产生有 Group By

得到的某些组的结果和 Where

子句一样所需要的组也用一个搜索条件指定

Order By

子句将查询结果按一列或多列中的数据排序如果省略此子句则查询结果将是无序的

下面作者将提供一个简单但实用的运用 SQL 语句查询的 ASP

程序供大家参考

为了使大家更清楚更直接地了解 SQL 语法在 ASP

中的应用我们先将查询的所有核心过程写成一个名为 querytable 的SUB然后利用

ASP 的服务器端包容功能调用该 SUB请将以下语句剪贴到记事簿保存为

subdBTableinc 文件并置于虚拟目录 asptest 下:

< %

sub querytable(inputquery)

set conntemp=servercreateobject("adodbconnection")

conntempopen "DSN=Student;uid=student;pwd=aspmagic"

set rstemp=conntempexecute(inputquery)

howmanyfields=rstempfieldscount

统计数据库中的列数

%>

< table border=>< tr>

< %

for I= to howmanyfields

%>

< td>< b>< %=rstemp(I)name%>< /B>< /TD>

< % next %>

< /tr>

< %

do while not rstempeof

%>

< tr>

< % for I = to howmanyfields

thisvalue=rstemp(I)

If isnull(thisvalue) then

thisvalue="?

如果字段为空则将变量 thisvalue 的值定义为一个空格

end if%>

< td valign=top>< %=thisvalue%>< /td>

< % next %>

< /tr>

< %rstempmovenext

loop%>

< /table>

< %

rstempclose

set rstemp=nothing

conntempclose

set conntemp=nothingend sub%>

完成了 SUB 的定义过程在下面几个 ASP

程序中我们只要加入想要使用的 SQL

查询语句并调用该过程就可以非常方便的得到查询结果将以下四段代码分别保存为

aspaaspaspbaspaspcaspaspdasp 四个 asp 文件

< HEAD>< TITLE>aspaasp< /TITLE>< /HEAD>

< HTML>< body bgcolor="#FFFFFF">

< %

call querytable("select * from publishers where name like A%%")

将表 publishers 中所有姓名中有字母 A 的记录查询出来

%>

< !#include virtual="/asptest/subdBTableinc">< /BODY><

/HTML>

< HEAD>< TITLE>aspbasp< /TITLE>< /HEAD>< HTML><

body bgcolor="#FFFFFF">

< %

call querytable("select * from titles where Year_Published > = ")

将表 titles 中所有发表年份大于或等于 年的记录查询出来

%>

< !#include virtual="/asptest/subdBTableinc">< /BODY><

/HTML>

< HEAD>< TITLE>aspcasp< /TITLE>< /HEAD>< HTML><

body bgcolor="#FFFFFF">

< %

call querytable("select * from publishers where amount> and

sex=male")

将表 publishers 中所有数量大于 且性别为男的记录查询出来

%>

< !#include virtual="/asptest/subdBTableinc">< /BODY><

/HTML>

< HEAD>< TITLE>aspdasp< /TITLE>< /HEAD>< HTML><

body bgcolor="#FFFFFF">

< %

call querytable("select * from publishers where state< > NY")

将表 publishers 中所有所在城市不为纽约的记录查询出来

%>

< !#include virtual="/asptest/subdBTableinc">< /BODY><

/HTML>

利用 subdBTableinc 文件中的所定义的过程 querytable你就可以非常迅速地对数据库进行查询你所要做的只是将“conntempopen

"DSN=Student;uid=student;pwd=aspmagic"”中的数据库名称用户身份和密码稍加改动并在调用

querytable 时输入想要使用的 SQL 查询语句即可是不是很简单 ?

这就是 ASP 和 SQL 的魅力所在 !!!

今天我们虽然用了一整篇的篇幅只学习了一个 SQL

指令但请你相信你所获得远不同于一个 DOS 指令SELECT

指令使得你可以非常容易地对数据库进行查询或许在这之前你对数据库查询还一无所知但是通过本篇的学习你其实已经会使用

ASP 进行常用的数据库查询了是不是很激动 ?

在下一篇中小编将继续给大家介绍 SQL

上一篇:asp防止网页刷新代码

下一篇:asp文件上传:文件上传 源代码