ImageVerifierCode 换一换
格式:DOCX , 页数:6 ,大小:63.66KB ,
资源ID:4504794      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4504794.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ASP中使用SQL语句教程.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ASP中使用SQL语句教程.docx

1、ASP中使用SQL语句教程ASP中使用SQL语句教程1.SELECT 语句在SQL的世界里,最最基础的操作就是SELECT 语句了。在数据库工具下直接采用SQL的时候很多人都会熟悉下面的操作:SELECT what FROM whichTable WHERE criteria执行以上语句就会创建一个存放其结果的查询。而在ASP页面文件上,你也可以采用以上的一般语法,不过情况稍微不同,ASP编程的时候,SELECT 语句的内容要作为字符串赋给一个变量: SQL = SELECT what FROM whichTable WHERE criteria明白了ASP下SQL“说话”的方式,接下来如法炮

2、制即可,只要满足你的需要,传统的SQL查询模式和条件查询都能派用场。举例说明,不妨假设你的数据库内有个数据表,名字是Products ,现在你想取出这个表里的全部记录。然后你就编写了下面的代码:SQL =SELECT * FROM Products以上代码SQL语句的作用就是取出表内的全部数据执行后将会选出数据表内的全部记录。不过,要是只想从表内取出某个特定列,比如p_name。那就不能用 * 通配符了,这里得键入具体某列的名字,代码如下:SQL =SELECT p_name FROM Products执行以上查询之后Products 表内、p_name 列的内容就会全被选取出来。2.用WHE

3、RE子句设置查询条件有的时候取出全部数据库记录也许正好满足你的要求,不过,在大多数情况下我们通常只需得到部分记录。这样一来该如何设计查询呢?当然会更费点脑筋了,何况本文也存心不想让你去用那个什么劳什子的recordset。举个例子,假如你只打算取出p_name 记录,而且这些记录的名字必须以字母w打头,那么你就要用到下面的WHERE 子句了:SQL =SELECT p_name FROM Products WHERE p_name LIKE W%WHERE 关键词的后面跟着用来过滤数据的条件,有了这些条件的帮助,只有满足一定标准的数据才会被查询出来。在以上的例子里,查询的结果只会得到名字以w

4、打头的p_name 记录。以上例子中,百分比符号(%)的含义是指示查询返回所有w 字母打头而且后面是任何数据甚至没有数据的记录条目。所以,在执行以上查询的时候, west 和 willow 就会从Products 表内被选取出来并存放在查询里。注意: 这里你会注意到,最后一个例句中的数字4周围加了单引号。原因是这样的,在这个例子中的 4 是文本类型而非数字类型。因为你会把 SELECT 语句放到引号中来把它作为一个值赋给变量,所以你也可以在语句中采用引号。比较运算符比较运算符指定从表内取出数据的内容范围。你可以用它们来创建过滤器以便缩小recordset的范围,促使其只保存给定任务下你关心的信

5、息。3.LIKE 、 NOT LIKE和 BETWEEN你已经在上面取出w打头记录的例子中看到了LIKE的用法。LIKE判定词是一个非常有用的符号。不过,在很多情况下用了它可能会带给你太多的数据,所以在用到它之前最好先开动脑筋多想想自己到底想获得什么数据。假设你想取出5位数字的SKU号码,而且其开头是1结尾是5,那么你可以用下划符(_)代替%符号:SQL = SELECT * FROM Products WHERE p_sku LIKE 1_5下划符表示任意一个字符。所以在输入“1 _ _ _ 5”的情况下,你的搜索就会限制在满足特定模式的5位数范围内了。假如你想反其道而行之,要找出所有不匹配

6、“1_ _ _ 5”模式的SKU条目。那么你只需要在刚才语句例子中的LIKE前面加上NOT就可以了。BETWEEN假设你想取出一定范围内的数据,而且你事先知道范围的起点和终点,那么你不妨采用BETWEEN 判断词。现在就让我们假设你想选取给定表内范围在 1和 10之间的记录。你可以如下使用BETWEEN:WHERE ID BETWEEN 1 AND 10或者你也可以采用已经熟悉的数学判断字句:WHERE ID = 1 AND ID = 104.联合语句我们到目前为止所谈到的SQL语句相对较为简单,如果再能通过标准的recordset循环查询,那么这些语句也能满足一些更复杂的要求。不过,何必非要

7、拘泥在浅尝则止的基础水准之上呢?你完全可以再增加其他一些符号,比如AND、 OR和NOT来完成更强大的功能。以下面的SQL语句为例:SQL =SELECT c_firstname, c_lastname, c_email FROM customers WHERE c_email ISNOT NULL AND c_purchase = 1 OR c_purchase = 2 AND c_lastname LIKEA%就你目前所掌握的SQL知识,以上的例子也不难解释,不过上面的语句并没有很明白地让你看清条件字句是如何胶合在单一SQL语句中的。多行语句在SQL语句不好懂的情况下,你不妨把整个语句分解

8、为多行代码,然后在现有变量基础上逐步增加查询语句的各个组成部分并把它存在同一变量内:SQL = SELECT c_firstname, c_lastname, c_emailaddress, c_phoneSQL = SQL & FROM customersSQL = SQL & WHERE c_firstname LIKE A% and c_emailaddress NOT NULLSQL = SQL & ORDER BY c_lastname, c_firstname到了最后一句,SQL变量就包含了以下的完整SELECT 语句:SELECT c_firstname, c_lastname,

9、 c_emailaddress, c_phone FROM customersWHERE c_firstname LIKE A% and c_emailaddress NO NULL ORDER BY c_lastname,c_firstname整句照上面分解之后显然好读多了!在进行调试的时候,你或许更乐于多敲几个字符把程序改得更好读些。不过你可要记住了,在封闭引号之前或者在打开引号之后你需要增加空格,这样才能保证字符串连接起来的时候你没有把几个词凑到了一块。5.开始执行在学会了SELECT语句的构造和用途之后你就该学习如何使用它了。在你所掌握的数据库工具下,这可能意味着你得按下某个写着“执行

10、”字样的按钮。在ASP网页上,可以立即执行SQL语句也可以当作存储过程调用。一旦创建了SQL 语句,你还得设法访问其查询结果。显然,这里的关键就是ASP recordset。在使用非SQL的recordset时,创建recordset的代码通常如下所示:Dim objRecSet objRec = Server.CreateObject (ADODB.Recordset)objRec.Open customers, objConn, 0, 1, 2如果你对ASP比较熟悉以上的代码对你可就不陌生了,你应该知道“customers”表示你打开数据库内一个数据表的名字。打开recordset为了充分

11、利用你更为熟悉的SQL技能,你需要调整常规ASP网页上最常采用的recordset:Dim objRecSet objRec = Server.CreateObject (ADODB.Recordset)objRec.Open SQL, objConn, 0, 1, 2这里唯一的修改就是在objRec.Open,之后用包含SQL语句的变量代替了要查询的数据表的名称。这种方法的优点之一是你可以指定游标类型(如以上0, 1 ,2 所示)。执行SQL你可以用紧凑的一行代码执行SQL语句来创建recordset。以下是语法:Dim objRecset objRec = objConn.Execute(

12、SQL)在上例中,你所看到的SQL是你存放自己SQL SELECT 语句的变量。该代码行“运行”SQL语句(或者说对数据库进行查询),选取数据并把数据存放在recordset 内,在上例中就是变量objRec。这种方法的主要缺点是你不能选择自己想采用的游标类型。相反,recordset总是用前向游标打开。因为游标的缘故,你或许打算熟悉两种创建recordset的方法。直接执行查询节省了键入字符所消耗的时间,但那样的话你就得采用默认的游标了,这样有可能遭遇经常不能正常运行的毛病。不管你具体采用哪种办法,两者之间的最大的差别也不外乎代码精练与否。在不考虑你取得什么字段、你的标准是什么的前提下,也不

13、管你如何存储数据,采用SQL式的recordset 在体积上会比ASP上打开的标准recordset 要小得多,更别提操作起来的简易性了。毕竟,通过过滤数据,你消除了耗费时间的if-then 测试和可能用到的循环。编写测试用SQL这里有个技巧,许多专业ASP程序员习惯在测试网页的时候“编写”自己的SQL语句。这样做可以帮助你调试代码,因为你可以从中看到传递给服务器执行的字符串。而你要做的无非是增加Response.WriteyourVariable 在屏幕上显示有关信息。在你把和SQL有关的问题提交给ASP讨论组的时候你就应该附上这些信息。6.存储查询当你的查询相对简单的时候,每次从头开始创建

14、SQL语句也不费什么工夫,不过,复杂的查询就不同了,每次都从头来会产生很多开发错误。因此,一旦让SQL顺利地运行起来,你最好把它们存起来,在需要时再调用它们。这样,哪怕是一个简单查询你都能随时用上存储的查询语句了。假设你每周都要给团队做一次报告,指出目前存在的业务支持问题,这些数据需要从你的数据库中选取,而且要按照日期选择记录,同时根据你所在团队所采用的支持问题的类别排序。一旦你设计了这一查询,你何必以后每周都重新编写一次呢?不要在你的HTML页面上创建查询,你应该用你的数据库工具创建查询并且保存它。然后你可以采用ActiveCommand 属性把查询插入到你的ASP网页。头一两回你可能会觉得

15、没啥意思,其实也就几行代码而已:Set objSQ = Server.CreateObject (ADODB.Command)objSQ.ActiveConnection = databaseNameobjSQ.CommandText = storedQueryNameobjSQ.CommandType = adCmdStoredProcset objRec = objSQ.Execute注意,采用adCmdStoredProc 表示你已经在页面上包含了adovbs.inc 文件。该文件定义了你可以按照名字而非数字进行访问的Access常数。只需要在页面上包含该文件即可(),然后你就可以用ad

16、CmdStoredProc 这类名字了。这样,将来你再看到的时候更容易理解以上被存储的查询到底是个什么意思。7.ORDER BY从Access数据库中选取记录有件最令人丧气的事情,它们是以怎样的顺序输入到数据库内就按照怎样的顺序出来。就算你在Access环境内采用Sort By来改变记录视图,数据表内的记录顺序也并没有发生改变。如果你正在使用ASPrecordset在网页上写出记录,那么你或许知道乱纷纷的顺序是多令人痛苦的事。但是你可能不得不经常得面对这一问题,因为并不存在什么简单方便的解决方案。好在ORDER BY 可以简化这一难题。为了对你的结果排序,只要在SELECT语句末尾加上ORDE

17、R BY,然后指定你需要排序的参照列即可。因此,如果你想要根据顾客的姓氏对Customers表排序,那么你可以编写如下的查询语句:SQL = SELECT c_lastname, c_firstname, c_email FROM Customers ORDER BY c_lastname这样,只要你建立了recordset而且开始把结果写到屏幕上,你就会看见数据按照字母顺序排列起来了。8.记录统计确定数据库内有多少记录,或者确定有多少记录达到了某些标准,这些用ASP完成并非难事。如果你采用了正确的游标类型,你可以用RecordCount 属性获得记录数当然也可以用recordset。但是,有

18、个更简单的办法,这就是在自己的SELECT语句中采用count(*) ,代码如下所示:SQL = SELECT count(*) FROM Customers或者SQL = SELECT count(*) FROM Customers WHERE c_lastname LIKE A%举例说明,以下代码将选出一些记录以及这些记录的总数:SQL = SELECT c_firstname, c_lastname, count(*) FROM Customers WHERE c_lastname LIKE A%但是你不能实现自己的目的。这里采用的“count”函数其实是一种集合函数,意思是只返回单行信息:回答你提出的问题。对第1个SELECT 语句来说,问题是“在客户表内有多少条记录?”查询返回单一的值作为响应,因此它不能同你常规的查询相组合。假如你希望得到其他数据,你需要采用RecordCount。集合函数除了“count”之外还包括AVG、MIN、MAX和SUM等。9.连接任何熟悉SQL和关系数据库的人都遇见过大量的连接类型。最简单的说,连接(join)会把两个表的内容组合到一个虚拟表或者recordset内。假如数据表有效地规一化,或许你会经常从某一个表中选出特定的信息再从另一个表中选出关联信息。这样做就需要简单的“同等连接(equijoin)”。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1