当前位置: 首页 > 图文教程 > 网络编程 > ASP > 在ADO使用SELECT语法一

ASP
asp生成三维饼图的函数
ASP下的简洁的多重查询的方法与函数 真不错
发一个ASP的ADODB类代码
A利用ASP小偷和Google实现在线翻译功能的代码
ASP类型网站结合动网论坛会员的方法
Asp下实现多表单域无组件文件上传的实例
asp制作中常用到的函数库集合
易心asp分页类 v1.0
asp中xmlhttp组件发包
检测是否为数字类型的asp代码
可以获得文件的文件名的asp函数
用asp实现访问远程计算机上MDB access数据库文件的方法
用ASP实现写IIS日志的代码
asp在IE浏览器中下载服务端上的各类文件的实现方法
asp汉字中文图片验证码的实现代码
asp WAP获取手机终端信息的一段代码
asp取得数组中的最大值的方法
用asp实现的截取指定格式字符串的代码
asp jmail发邮件 详细解析
ASP编程中连接数据库和数据库操作的常用代码

ASP 中的 在ADO使用SELECT语法一


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 204 ::
收藏到网摘: n/a

  SELECT表达式

接着,让我们看看SELECT表达式,SELECT用来在表中寻找符合特定条件的记录,语法如下:

SELECT [关键字] { * | 表名称.* | [表名称.]字段名称1 [AS 别名1] [, [表名称.] 字段名称2 [AS 别名2] [, ...]]}
FROM 表运算式 [, ...] [IN 外部表]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ]
[WITH OWNERACCESS OPTION]

关键字:可以用来限制返回之记录的数量,可以设定为ALL、DISTINCT、DISTINCTROW 、或TOP。如果没有指定述语,缺省值为 ALL。

*:选取全部的字段。

别名:代替在表中原有的字段名称。

表运算式:一个或多个以逗号分隔的表名称。

外部表:如果表不存在目前的表当中,须设定包含表运算式中表的表名称。

执行SELECT 表达式,并不会改变表之中现有的资料。

一个 SELECT 表达式的最基本语法是:

SELECT * FROM 表运算式

您可以使用星号(*)来选取表的全部字段。譬如下例选取 [产品] 表中的全部字段:

SELECT * FROM 产品

字段名称包含空格或标点符号时,须使用括号[ ]将它括在其中。例如:

SELECT [电脑 的产品]

如果在FROM子句中的字段名称中,包含多个的表中时,需在字段名称前加上表名称和点(.)运算子,即 表名称.字段名称。譬如下例选取 [产品] 表的 [价格] 字段和 [订单] 表的 [数量] 字段:

SELECT 产品.价格, 订单.数量

FROM 产品, 订单

WHERE 产品.代号 = 订单.代号

当您使用Recordset 对象时,Recordset并不认得rs(表名称.字段名称) 格式,即rs(“产品.价格”)会发生错误,您必须使用AS来设定字段名称的别名。譬如:

SELECT 产品.价格 AS 价格, 订单.数量AS 数量

FROM 产品, 订单

WHERE 产品.代号 = 订单.代号

如此就可以使用rs(“价格”) 和rs(“数量”),来读取其字段的资料。

与SELECT表达式相关的语法:


关键字:ALL/ DISTINCT/ DISTINCTROW/ TOP。

WHERE:寻找FROM中的表符合特定条件的资料记录。WHERE 可以使用下面的BETWEEN、LIKE、IN运算子:

Between...And:判断表达式的值是否落在指定的范围之中。

Like:寻找相符合的关键字。

IN运算式:限定范围。

NOT IN运算式:表示不属于所指定的范围。

ORDER BY子句:可以设定排序的字段。

GROUP BY子句:将查询的结果做统计。

HAVING子句:使用在SELECT 表达式中,筛选已经GROUP BY统计的记录。

Union:可以合并多组查询的结果。

JOIN:连接组合两个表中的字段记录。

子查询(sub query):表达式中,可以包括SELECT表达式。

Select...Into:将查询的结果,建立一个产生的表。


详细介绍如下:

ALL/DISTINCT/DISTINCTROW/TOP关键字

使用SELECT查询时,可以加上关键字,以选取所查询的记录。如下:


ALL:返回所有的记录。

DISTINCT:指定字段中的记录有重复时只返回一条记录,记录不重复。

DISTINCTROW:指定字段中的记录有重复时都不返回。

TOP:返回前面几个记录或几个百分比的记录。


语法如下:

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM 表

ALL返回所有的记录。不加关键字时,与加ALL的意义相同,将返回所有的记录。譬如下列两个例子的执行结果相同,都从产品表中返回所有的记录:

SELECT ALL * FROM 产品

与以下的执行结果相同:

SELECT * FROM 产品

DISTINCT不选取指定字段之中的重复资料。使用DISTINCT后,查询的结果,列在SELECT DISTINCT后的每个字段的资料值,若相同则只取一条记录,换句话说,指定字段的资料不会有重复的现象。例如,在产品表之中有一些产品名称相同的产品,加上DISTINCT的SQL表达式只会返回一条记录字段为产品名称资料相同的记录:

SELECT DISTINCT 产品名称 FROM 产品

如果您不加上DISTINCT,上例查询将返回数个包含相同产品名称的记录。

如果SELECT DISTINCT子句后指定数个字段,查询的结果,所有字段的组合值不会有重复的现象。

DISTINCTROW则不返回指定字段所有重复的记录。

TOP n [PERCENT] ,返回前面几条记录或几个百分比的记录。排列的顺序可以使用ORDER BY子句来指定。譬如找到成绩前10名的学生姓名:

SELECT TOP 10 姓名
FROM 学生
ORDER BY 成绩

如果您没有包含ORDER BY子句,查询将由学生表返回任意的10个记录。

TOP不在相同值间作选择,如果第10及第11的成绩是相同的,查询将返回11个记录。

您可使用PERCENT来设定前面几个百分比的记录,譬如譬如找到成绩前10%的学生姓名:

SELECT TOP 10 PERCENT 姓名
FROM 学生
ORDER BY 成绩

让我们看一个在ASP程式中使用这个SQL指令的例子。

可以利