仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 498|回复: 9
打印 上一主题 下一主题

[学习教程] ASP教程之第十二篇 数据库查询言语(1)

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:23:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们)原定企图从本篇入手下手就要给人人先容ASP内建的ActiveX组件,可是思索到我们在今后的进修中将会打仗到大批的数据库查询,因而作者一时决意花一到两篇的篇幅向人人扼要先容一些数据库查询言语的基础常识,这实在也是进修ASP所必需把握的一门常识。是不是可以天真地使用数据库查询言语,将间接干系到ASP程序的实行效力等一系列成绩,以是请列位务必器重。  信任良多伴侣都传闻过SQL这个名字,假如你是盘算机方面的内行,SQL的台甫必定是如雷灌耳。那末SQL事实是甚么呢?SQL一词实践上是"StructuredQueryLanguage"布局式查询言语的缩写,是用于对寄存在盘算机数据库中的数据举行构造、办理和检索的一种工具;是一种特定范例的数据库--干系数据库。而把持这类数据库的盘算机程序就是我们常说的DBMS--数据库办理体系。比如:SQLServer、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的发卖纪录表,以下所示:姓名性别人为发卖方针发卖额区域墨客男250080009000上海吴冠军男3000100009999北京雷叫男2000800010000四川雪后代250050006000广州顾一男260090009800年夜连阿卓女200040004000天津熠天男40002000020000天下在该表中有六列即六个字段:姓名、性别、人为、发卖方针、发卖额、区域,起首我们用Select语句列出姓名、发卖方针和发卖额:  Select姓名,发卖方针,发卖额Fromsales  了局以下:姓名发卖方针发卖额墨客80009000吴冠军100009999雷叫800010000雪儿50006000顾一90009800阿卓40004000熠天2000020000然后,我们再列出一切男性的姓名、发卖方针和发卖额:  Select姓名,发卖方针,发卖额FromsalesWhere性别="男"  了局以下:姓名发卖方针发卖额墨客80009000吴冠军100009999雷叫800010000顾一90009800熠天2000020000接上去,我们做一个绝对庞大的查询,列出发卖额年夜于发卖方针的一切男性的姓名、发卖方针和发卖额,而且按发卖方针排序。  Select姓名,发卖方针,发卖额  Formsales  Where发卖额>发卖方针  And性别="男"  OrderBy发卖方针  了局以下:姓名发卖方针发卖额墨客80009000雷叫800010000顾一90009800熠天2000020000人人能够看到,关于复杂查询,SQLSelect语句和英文语法很相象,我们来剖析一下SELECT语句的完全格局,它包含六个子句,个中SELECT和FROM子句是必需的,别的子句能够任选,每一个子句的功效以下:  1、Select子句列出一切请求SELECT语句检索的数据项。它放在SELECT语句入手下手处,指定此查询要检索的数据项。这些数据项一般用选择表暗示,即一组用“,”离隔的选择项。依照从左到右的按次,每一个选择项发生的一个列的查询了局,一个选择项多是以下项目:  (1)、列名:标识FROM子句指定表中的列。假如列名作为选择项,则SQL间接从数据库表中每行掏出该列的值,再将其放在查询了局的响应行中。  (2)、常数:指定在查询了局的每行中都放上该值。  (3)、SQL表达式:申明必需将要放进查询了局中的值按表达式的划定举行盘算。  2、From子句列出包括所要查询数据的表,它由关头字FROM后跟一组用逗号分隔的表名构成。每一个标明都代表一个包含该查询要检索数据的表。这些表称为此SQL语句的表源,由于查询了局都源于它们。  3、Where子句告知SQL只查询某些行中的数据,这些行用搜刮前提形貌。  4、GroupBy子句指定汇总查询,即不是对每行发生一个查询了局,而是将类似的行举行分组,再对每组发生一个汇总了局。  5、Having子句告知SQL只发生有GroupBy失掉的某些组的了局,和Where子句一样,所必要的组也用一个搜刮前提指定。  6、OrderBy子句将查询了局按一列或多列中的数据排序。假如省略此子句,则查询了局将是无序的。  上面作者将供应一个复杂但有用的使用SQL语句查询的ASP程序供人人参考。  为了使人人更分明更间接地懂得SQL语法在ASP中的使用,我们先将查询的一切中心历程写成一个名为query2table的SUB,然后使用ASP的服务器端包涵功效挪用该SUB。请将以下语句剪贴到记事簿,保留为subdbtable.inc文件,并置于假造目次asptest下:  <%  subquery2table(inputquery)  setconntemp=server.createobject("adodb.connection")  conntemp.open"DSN=Student;uid=student;pwd=aspmagic"  setrstemp=conntemp.execute(inputquery)  howmanyfields=rstemp.fields.count-1  统数据库中的列数  %>  <tableborder=1><tr>  <%  fori=0tohowmanyfields  %>  <td><b><%=rstemp(i).name%></B></TD>  <%next%>  </tr>  <%  dowhilenotrstemp.eof  %>  <tr>  <%fori=0tohowmanyfields  thisvalue=rstemp(i)  Ifisnull(thisvalue)then  thisvalue="?  假如字段为空,则将变量thisvalue的值界说为一个空格  endif%>  <tdvalign=top><%=thisvalue%></td>  <%next%>  </tr>  <%rstemp.movenext  loop%>  </table>  <%  rstemp.close  setrstemp=nothing  conntemp.close  setconntemp=nothingendsub%>  完成了SUB的界说历程,鄙人面几个ASP程序中我们只需到场想要利用的SQL查询语句,并挪用该历程就能够十分便利的失掉查询了局。将以下四段代码分离保留为asp11a.asp、asp11b.asp、asp11c.asp、asp11d.asp四个.asp文件。  <HEAD><TITLE>asp11a.asp</TITLE></HEAD>  <HTML><bodybgcolor="#FFFFFF">  <%  callquery2table("select*frompublisherswherenamelikeA%%")将表publishers中一切姓名中有字母A的纪录查询出来  %>  <!--#includevirtual="/asptest/subdbtable.inc"--></BODY></HTML>  <HEAD><TITLE>asp11b.asp</TITLE></HEAD><HTML><bodybgcolor="#FFFFFF">  <%  callquery2table("select*fromtitleswhereYear_Published>=1998")将表titles中一切宣布年份年夜于或即是1998年的纪录查询出来  %>  <!--#includevirtual="/asptest/subdbtable.inc"--></BODY></HTML>  <HEAD><TITLE>asp11c.asp</TITLE></HEAD><HTML><bodybgcolor="#FFFFFF">  <%  callquery2table("select*frompublisherswhereamount>10000andsex=male")将表publishers中一切数目年夜于10000且性别为男的纪录查询出来  %>  <!--#includevirtual="/asptest/subdbtable.inc"--></BODY></HTML>  <HEAD><TITLE>asp11d.asp</TITLE></HEAD><HTML><bodybgcolor="#FFFFFF">  <%  callquery2table("select*frompublisherswherestateNY")将表publishers中一切地点乡村不为纽约的纪录查询出来。  %>  <!--#includevirtual="/asptest/subdbtable.inc"--></BODY></HTML>  使用subdbtable.inc文件中的所界说的历程query2table,你就能够十分敏捷地对数据库举行查询,你所要做的只是将“conntemp.open"DSN=Student;uid=student;pwd=aspmagic"”中的数据库称号、用户身份和暗码略加修改,并在挪用query2table时输出想要利用的SQL查询语句便可。是否是很复杂?这就是ASP和SQL的魅力地点!!!  明天,我们固然用了一整篇的篇幅只进修了一个SQL指令,但请你信任你所取得远分歧于一个DOS指令,SELECT指令使得你能够十分简单地对数据库举行查询,也许在这之前你对数据库查询还一窍不通,可是经由过程本篇的进修,你实在已会利用ASP举行经常使用的数据库查询了,是否是很冲动?鄙人一篇中,作者将持续给人人先容SQL的别的几个基础指令。在停止本文之前,作者在这里要向良多来信的伴侣道歉,因为比来作者事情忙碌,其实得空逐一回覆列位的成绩,请包涵,我会只管将一些罕见的、产生频次较高的成绩在文章中写出来,至于一些不罕见的成绩,我倡议人人到上面这个站点发问,你将会失掉实时的回复。www.onlinechina.net/friend/flybird/bbs/wwwboard.asp?id=1,这是作者至今为止所见的最棒的中文ASP进修站点,由上海的飞鸟掌管,人人务必往看看。无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-17 08:44:48 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
老尸 该用户已被删除
板凳
发表于 2015-1-20 16:13:31 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
飘灵儿 该用户已被删除
地板
发表于 2015-1-29 12:54:13 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
活着的死人 该用户已被删除
5#
发表于 2015-2-6 01:04:49 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
精灵巫婆 该用户已被删除
6#
发表于 2015-2-14 19:30:14 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
小妖女 该用户已被删除
7#
发表于 2015-3-4 10:01:31 | 只看该作者
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-11 18:12:47 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
山那边是海 该用户已被删除
9#
发表于 2015-3-19 06:29:09 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
小魔女 该用户已被删除
10#
发表于 2015-3-27 10:37:44 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 01:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表