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

  原定计划从本篇开始就要给大家介绍 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

  的销售记录表,如下所示 :

  姓名

  性别

  工资

  销售目标

  销售额

  地区

  书生

  男

  2500

  8000

  9000

  上海

  吴冠军

  男

  3000

  10000

  9999

  北京

  雷鸣

  男

  2000

  8000

  10000

  四川

  雪儿

  女

  2500

  5000

  6000

  广州

  顾一

  男

  2600

  9000

  9800

  大连

  阿卓

  女

  2000

  4000

  4000

  天津

  熠天

  男

  4000

  20000

  20000

  全国

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

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

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

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

  结果如下 :

  姓名

  销售目标

  销售额

  书生

  8000

  9000

  吴冠军

  10000

  9999

  雷鸣

  8000

  10000

  雪儿

  5000

  6000

  顾一

  9000

  9800

  阿卓

  4000

  4000

  熠天

  20000

  20000

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

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

  "

  结果如下 :

  姓名

  销售目标

  销售额

  书生

  8000

  9000

  吴冠军

  10000

  9999

  雷鸣

  8000

  10000

  顾一

  9000

  9800

  熠天

  20000

  20000

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

  Select 姓名,销售目标,销售额

  Form sales

  Where 销售额 > 销售目标

  And 性别 =" 男 "

  Order By 销售目标

  结果如下 :

  姓名

  销售目标

  销售额

  书生

  8000

  9000

  雷鸣

  8000

  10000

  顾一

  9000

  9800

  熠天

  20000

  20000

  大家可以看到,对于简单查询,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

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

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

  程序供大家参考。

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

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

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

  subdBTable.inc 文件,并置于虚拟目录 asptest 下:

  < %

  sub query2table(inputquery)

  set conntemp=server.createobject("adodb.connection")

  conntemp.open "DSN=Student;uid=student;pwd=aspmagic"

  set rstemp=conntemp.execute(inputquery)

  howmanyfields=rstemp.fields.count -1

  ' 统计数据库中的列数

  %>

  < table border=1>< tr>

  < %

  for I=0 to howmanyfields

  %>

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

  < % next %>

  < /tr>

  < %

  do while not rstemp.eof

  %>

  < tr>

  < % for I = 0 to howmanyfields

  thisvalue=rstemp(I)

  If isnull(thisvalue) then

  thisvalue="?

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

  end if%>

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

  < % next %>

  < /tr>

  < %rstemp.movenext

  loop%>

  < /table>

  < %

  rstemp.close

  set rstemp=nothing

  conntemp.close

  set conntemp=nothingend sub%>

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

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

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

  asp11a.asp、asp11b.asp、asp11c.asp、asp11d.asp 四个 .asp 文件。

  < HEAD>< TITLE>asp11a.asp< /TITLE>< /HEAD>

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

  < %

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

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

  %>

  < !--#include virtual="/asptest/subdBTable.inc"-->< /BODY><

  /HTML>

  < HEAD>< TITLE>asp11b.asp< /TITLE>< /HEAD>< HTML><

  body bgcolor="#FFFFFF">

  < %

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

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

  %>

  < !--#include virtual="/asptest/subdBTable.inc"-->< /BODY><

  /HTML>

  < HEAD>< TITLE>asp11c.asp< /TITLE>< /HEAD>< HTML><

  body bgcolor="#FFFFFF">

  < %

  call query2table("select * from publishers where amount>10000 and

  sex='male'")

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

  %>

  < !--#include virtual="/asptest/subdBTable.inc"-->< /BODY><

  /HTML>

  < HEAD>< TITLE>asp11d.asp< /TITLE>< /HEAD>< HTML><

  body bgcolor="#FFFFFF">

  < %

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

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

  %>

  < !--#include virtual="/asptest/subdBTable.inc"-->< /BODY><

  /HTML>

  利用 subdBTable.inc 文件中的所定义的过程 query2table,你就可以非常迅速地对数据库进行查询,你所要做的只是将“conntemp.open

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

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

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

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

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

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

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

时间: 2024-09-20 04:32:40

ASP基础入门:数据库查询语言(1)的相关文章

ASP基础入门第二篇(ASP基础知识)_应用技巧

本篇将继续介绍一些用 ASP 编写的WEB 动态功能.由于 WEB 浏览器标准的不一致从而使得如何能够让自己制作的网站去适应各种不同的浏览器成为了广大网站设计者最为头疼的事,在如今的形势之下,我们不肯也不可能去抛弃Netscape 或 IE 中的任何一种客户群,但我们有时候又不得不去考虑客户端浏览器的实际浏览效果,过去我们常用JavaScript 编写一段程序来辨别客户端使用的不同的浏览器,那么今天就让我们来看看如何使用ASP 更为便捷且精确地达到这一目的.将以下代码,剪贴到你的Notebook

ASP基础入门教程(1)

教程|入门教程 一 什么是Asp Asp是Active Server Pages的缩写,它包含了三个方面的内容 1 Active Active指的是ActiveX技术,这个技术采用封装对象,程序调用对象等方法简化了编程,从而使我们可以很容易的快速建立Web应用; 2 Server Server指Asp程序在服务器上运行 3 Pages Pages指的是返回标准的html页面 Asp是一种用于取代CGI的,功能强大的,简单易学的动态网页技术 二 什么是静态网页 静态网页指的是只有html标记构成的

ASP基础入门第一篇(ASP技术简介)_应用技巧

本文将以如何建立基于IIS 的ASP 动态网站为中心向大家一步一步地揭示动态商业网站设计的真正奥秘.为了使各位能够全面.细致地掌握 ASP 的开发技巧,本文今后将采取连载的形式,手把手地教你如何建立属于自己 ASP 动态网站.由于本文是作者根据自己的学习和实践经验并结合了一些外文资料而写成的,因此不免会有一些偏颇,希望各位见谅. Microsoft Active Server Pages 即我们所称的ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之

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

在本篇的开头,我要感谢一些朋友来信给我指出了前几篇文章中的错误.不知大家是否记得在第八篇中我举了一个简单的利用 Application 制作的页面访问计数器?有位朋友来信问我,为何当他改变计数器起始变量 NumVisits 的值后对最后的记数结果没有任何作用?起初我也大惑不解,让我们来回忆一下这段源程序,如下: < % Dim NumVisits NumVisits=0 Application.Lock Application("NumVisits") = Application

ASP基础入门第二篇(ASP基础知识)

本篇将继续介绍一些用 ASP 编写的WEB 动态功能.由于 WEB 浏览器标准的不一致从而使得如何能够让自己制作的网站去适应各种不同的浏览器成为了广大网站设计者最为头疼的事,在如今的形势之下,我们不肯也不可能去抛弃Netscape 或 IE 中的任何一种客户群,但我们有时候又不得不去考虑客户端浏览器的实际浏览效果,过去我们常用JavaScript 编写一段程序来辨别客户端使用的不同的浏览器,那么今天就让我们来看看如何使用ASP 更为便捷且精确地达到这一目的.将以下代码,剪贴到你的Notebook

ASP基础入门第九篇(Global.asa文件的使用)_应用技巧

下面我来向大家介绍 Global.asa 文件的使用方法. 什么是 Global.asa 文件?它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象.该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象.该文件的名称必须是 Global.asa 且必须存放在应用程序的根目录中.每个应用程序只能有一个 Global.asa 文件. 在 Global.asa 文件中,如果包含的脚本没有用 < SCRIPT> 标记封装,或定义的

ASP基础入门第九篇(Global.asa文件的使用)

下面我来向大家介绍 Global.asa 文件的使用方法. 什么是 Global.asa 文件?它其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象.该文件的内容不是用来给用户显示的,而是用来存储事件信息和由应用程序全局使用的对象.该文件的名称必须是 Global.asa 且必须存放在应用程序的根目录中.每个应用程序只能有一个 Global.asa 文件. 在 Global.asa 文件中,如果包含的脚本没有用 < SCRIPT> 标记封装,或定义的

ASP基础入门第一篇(ASP技术简介)

本文将以如何建立基于IIS 的ASP 动态网站为中心向大家一步一步地揭示动态商业网站设计的真正奥秘.为了使各位能够全面.细致地掌握 ASP 的开发技巧,本文今后将采取连载的形式,手把手地教你如何建立属于自己 ASP 动态网站.由于本文是作者根据自己的学习和实践经验并结合了一些外文资料而写成的,因此不免会有一些偏颇,希望各位见谅. Microsoft Active Server Pages 即我们所称的ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之

ASP编程入门进阶(二十):ADO组件之显示数据记录_ASP基础

学习ASP的万里长征就快到终点了:等把ASP的ADO组件搞定.当然这也是最重要的一步,几乎前面所有的学习都是为了这个最终的目的.OK,下面就来详细系统地来一一掌握,步步为营,各个击破. 一,拥有数据库 可以这么说:静态页面和动态页面最大的区别就是采用了数据库.有关一个WEB程序采用数据库和不采用的优越性比较,就不去细细分析了,主要精力还是放在如何使用数据库,如何熟练运用数据库,如何更灵活地运用数据库等等--其中运用操作数据库主要是对数据库内容进行:显示.插入.修改.更新.查询和删除. 这些方法当