仓酷云

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

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

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:42:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。 在本篇的开首,我要感激一些伴侣来信给我指出了前几篇文章中的毛病。不知人人是不是记得在第八篇中我举了一个复杂的使用Application制造的页面会见计数器?有位伴侣来信问我,为什么当他改动计数器肇端变量NumVisits的值后对最初的记数了局没有任何感化?后来我也百思不解,让我们往返忆一下这段源程序,以下:
<%
DimNumVisits
NumVisits=0
Application.Lock
Application("NumVisits")=Application("NumVisits")+1
Application.Unlock
%>
接待到临本网页,你是本页的第<%=Application("NumVisits")%>位访客!  在这段程序中,假如你试图经由过程改动变量NumVisits的值来改动记数器了局,是相对办不到的。由于用变量的值往改动Application的值是不成以的,这二者是不相干的。以是这里对变量的界说和赋值都是过剩的。那末我们事实应当怎样来给Application("NumVisits")界说一个初始值呢?请看以下修改后程序:
<%
IfApplication("NumVisits")<999then
Application("NumVisits")=999
EndIf
Application.Lock
Application("NumVisits")=Application("NumVisits")+1
Application.Unlock
%>
接待到临本网页,你是本页的第<%=Application("NumVisits")%>位访客!  这里的999就是你要设定的计数器初始值,云云一来成绩就水到渠成了。我十分感激这位姓康的伴侣给我指出了这个毛病,固然这只是一个很小的毛病,但我们在配合学程序写程序的过程当中十分必要这类松散仔细的风格,但愿从此伴侣们们一旦发明文中的毛病马上来信告诉,我也能实时改正,感谢。
  SQL言语能够分为两年夜部分:数据界说言语和数据利用言语,继上一篇我们进修了数据利用言语中的Select语句后,明天作者要持续给人人扼要先容其他的SQL语句。
  SQL是一种完整的数据处置言语,不但用于数据库查询,并且用于数据库中的数据修正和更新,与撑持SQL查询的Select语句的庞大性比拟较,变动数据库内容的SQL语句就分外复杂。但是关于一个DBMS来讲,数据更新所酿成的风险年夜年夜超越了数据查询。数据库办理体系必需在变动期内回护所存储的数据的分歧性,确保无效的数据进进数据库,数据库必需坚持分歧性,DBMS还必需和谐多用户的并行更新,以确保用户和他们的变动不至于影响其他用户的功课。
  用于修正数据库内容的SQL语句次要有以下三个:
  1、Insert,向一个表中到场新的数据行
  2、Delete,从一个表中删除数据行
  3、Update,变动数据库中已存在的数据
  起首我们来看看Insert的用法:
  尺度语法:
  INSERTINTOtable_name
  (col1,col2...)
  VALUES(value1,value2...)
  下例要将墨客作为一个新的发卖员到场表Salesreps中
  InsertInto
  Salesreps(name,num,sales,hire_date,income)
  values(shusheng,9,10000,23-Feb-99,2000)
  在此语句中,列的称号列在括号中以逗号离隔,接下往是Value短语和括号中一样以逗号离隔的每列数据,应当注重的是数据和列称号的按次是不异的,并且如果字符串型则以单引号离隔。从观点下去讲,Insert语句创建的一个与表列布局相分歧的数据行,用取自Values子句的数据来添补它,然后将该新行到场表中,表中的行是不排序的,因而不存在将该行拔出到表的头或尾或两行之间的这个观点。Insert语句停止后,新行就是表的一部分了。
  Insert语句还能够将多行数据增加到方针表中往,在这类情势的Insert语句中,新行的数据值不是在语句注释中明白地指定的,而是语句中指定的一个数据库查询。增加的值来自数据库本身的行,这乍看起来仿佛有些奇异,可是在某些特定的形态下,这长短常有效的。好比,你想把1998年12月30日之前发生的定单编号、日期和数量从order表中拷贝到另外一个名为oldorder的表中往,多行Insert语句为拷贝数据供应了一种松散而高效的办法,以下:
  Insertintooldorder(Num,Date,Amount)
  SelectNum,Date,Amount
  Fromorder
  WhereDate<30-12-98
  这条语句看起来有些庞大,实在很复杂,语句标识了吸收新行的表oldorder和吸收数据的列,完整相似于单行Insert语句。语句的残剩部分是一个查询,它检索order表中的数据。SQL先实行对order表的查询,然后将查询了局逐行拔出到oldorder表中往。
  上面我们来看看Update的用法,Update语句用于更新单表当选定行的一列或多列的值。要更新的方针表在语句中界说,Set子句则指定要更新哪些列并盘算他们的值。Update语句老是包括Where语句,并且Update语句对照伤害,以是您必需明白地熟悉到Where语句的主要性,Where语句被用来指定必要更新的行。
  尺度语法:
  UPDATEtable_name
  SETcolumnname1=value1
  [,columname2=value2]...
  WHEREsearch_condition

  以下是一个复杂的Update语句的例子:
  Updatecustomers
  Setcredit=100000.00,id=99
  Wherename=asp

  在此例中我们将表customers中客户名为asp的客户的信贷值更新为10万并将他的ID变动为99。再看下例:
  Updatecustomers
  Setcredit=200000.00,state=021
  WhereIDin(80,90,100,120)

  我们能够发明,实在SQL处置Update语句的历程就是逐行遍历所指定的表,更新其搜刮前提了局为“真”的行,跳过其搜刮前提了局为“假”或“空”的行。
  最初,来看看Delete语句。
  尺度语法:
  DELETEFROMtablename
  WHEREcondition

  因为它过于复杂,以是所酿成的成果也是严峻的,固然个中的Where子句是任选的,但它几近老是存在的,若将Where子句从Delete语句中省略失落,则方针表的一切行都将被删除。看下例:
  DeletefromorderWhereID=99
  在文章的开端,作者在给人人扼要先容一下数据界说言语。它是用来创立和修正数据库布局的一种语句,包含Create和Drop语句。
  1、Create语句
  尺度语法:
  CREATETABLEtable_name
  (field1datatype[NOTNULL],
  field2datatype[NOTNULL],
  field3datatype[NOTNULL]...)
  如:
  CREATETABLEBILLS
  (NAMECHAR(30),
  AMOUNTNUMBER,
  ACCOUNT_IDNUMBER)
  只管CreateTable比后面先容的语句难了解一些,但仍旧很直不雅。它将bills付与一个新表,并指定表中三列的称号和数据范例。表被创建后我们就能够添进数据了。如:
  Insertintobills(name,amout,account_id)values(gates,100,1)
  假如,你以为不再必要保留产物信息,则可用Droptable语句将该表及其所包括的一切数据从数据库中删撤除。
  尺度语法:
  DROPTABLEtable_name
  至此,我们已懂得了一切经常使用的SQL语句,可别小视这些貌似英文的复杂语句,它们的功效非常壮大,当我们编写asp程序时必需利用他们对数据库举行操纵。从下一篇入手下手,作者将给人人先容ASP的内建ActiveX组件,敬请存眷。
写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们)
飘飘悠悠 该用户已被删除
沙发
发表于 2015-1-19 21:24:08 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-25 10:14:35 来自手机 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
爱飞 该用户已被删除
地板
发表于 2015-2-2 21:38:24 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
若天明 该用户已被删除
5#
发表于 2015-2-8 06:30:25 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
小魔女 该用户已被删除
6#
发表于 2015-2-24 16:58:17 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-7 12:36:36 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
谁可相欹 该用户已被删除
8#
发表于 2015-3-15 05:38:02 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
小妖女 该用户已被删除
9#
发表于 2015-3-21 19:05:20 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-20 21:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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