邪恶八进制信息安全团队技术讨论组's Archiver

勇敢的风 2007-11-25 19:15

[原创]《风的asp系列教程》(第一章 第四节)(07-11-26 12:42更新完毕)

文章作者:勇敢的风 [E.S.T 顾问团]
信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])

第一章 第四节 Access数据库简略介绍及数据库基础
  4.1 Access数据库
    Access 是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
    Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程序.这些应用程序都利用ASP技术在Internet Information Services运行.比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/Microsoft SQL Server.
  4.2 数据库基础
    表是所有数据库存储数据的地方本教程主要以asp为主,因此只对表的用法介绍一下。
    每个数据库都有自己的保留字,在创建表的过程中尽可能的避免使用这些保留字,每个数据库的保留字可以在相应的数据库中的帮助中找到。
    数据库中的表由1个或者多个列以及数据构成,列又由名称、字段大小、类型和说明构成。
    在asp中使用数据库可以说是对数据库中的表的操作,如创建表、创建列,添加、删除、修改标数据
  4.3 在asp中使用数据库
    4.3.1 连接
      使用数据库之前要创建一个数据库的连接,asp连接数据库需要调用adodb组件,创建代码:
      Dim Conn
      Set Conn = Server.Createobject("adodb.connection")
      此时变量Conn已经是一个连接,它可以连接的内容有:
      a、odbc连接
        该方法可以连接的数据库类型是最多的,数据库的类型由odbc来决定,代码也是最少的,代码如下:
        Conn.open "ODBC连接名,用户名(如果设定的话),密码(如果设定的话)"
        有关odbc的用法会在第三章的数据库安全中介绍。
        缺点:无服务器的用户无法使用。
      b、DSN-less连接方法
        该方法仅限于文件型数据库,代码如下:
        Conn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ=" & Server.MapPath("数据库所在路径")
        缺点:该方法有可能导致iis6.0运行错误,不过MS已经出了相关补丁,建议在安装MS系统的服务器上使用方法C
        连接的数据库非Access可选择已安装的驱动名称,并替换代码中的Driver的值
      c、OLEDB连接方法
        该方法仅限于access数据库,代码如下:
        Conn.open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("数据库所在路径")
        OLEDB.3.5表示Access97(含自己)以前的版本,OLEDB.4.0表示ACCESS2000以后的版本
      d、SQL server OLEDB连接方法
        Conn.open"provider=SQLOLEDB.1;Data Source=服务器或者ip;user ID=***;Password=***;inital Catalog=数据库名"
      e、SQL Server连接方法
        Conn.Open"Driver={SQL Server};Server=(服务器名或者ip);UID=***;PWD=***;database=数据库名;"
      f、DSN连接方法
        它连接的数据库于方法a一样多,取决于dsn文件的内容,代码如下:
        Conn.Open "DSNFile=DSN文件名"
        有关DNS文件的配置会在第三章的数据库安全中介绍。
  4.4 SQL基础
    4.4.1 关于SQL(来源于互联网)
      SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。\
      SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。
    4.4.2 简单的语法(高级查询以及方法将在第二章讲解)
      有关非常标准的语法格式在本教程中将不再介绍,教程中所介绍的的适用于asp中的单行sql语句。
      简单的sql语句分为以下几个部分
      a、操作选择部分:select【选择】;update【更新】;delete【删除】;insert【插入/新建】
      b、定量部分:top [数字]【可省略】
      c、关键字:[表字段]【可用*表示所有】
      d、选择表:from [表名称]
      e、查询:where [查询条件]【可省略】
      f、排序:order by [排序列] [正序或倒序/asc或desc]【可省略】
      完整的例子有关完整的例子会在第7节的asp实践应用中介绍
    4.4.3 应用
      a、一般应用于读取列表的方法
      Dim Rs
      Set Rs = Server.Createobject ("Adodb.Recordset")
      Rs.Open [Sql语句],Conn,0,1
      b、一般应用于直接操作数据库的方法
      conn.execute(sql语句)
      c、简单的方法
      Dim Rs
      Set Rs = conn.execute(Sql语句)

本节中我们知道Access是MS Office的成员之一,同时也知道表的构成内容,重要的是我们首次使用ASP连接(或者叫创建)组件的方法:Server.Createobject即asp对象Server的方法Createobject,至于数据库的连接方法在使用的过程中照搬上述内容即可,无需牢记。

在本教程中的数据库将以access为例,所以附上Access 2003 的保留字和变量

在下节的教程中会介绍目前常用的ASP组件以及简单的用法,但由于版权问题,所以不再附上所要讲到的组件
附:
Access 2003 的保留字和变量

-A
  ADD
  ALL
  Alphanumeric
  ALTER
  AND
  ANY
  Application
  AS
  ASC
  Assistant
  AUTOINCREMENT
  Avg
-B
  BETWEEN
  BINARY
  BIT
  BOOLEAN
  BY
  BYTE
-C
  CHAR, CHARACTER
  COLUMN
  CompactDatabase
  CONSTRAINT
  Container
  Count
  COUNTER
  CREATE
  CreateDatabase
  CreateField
  CreateGroup
  CreateIndex
  CreateObject
  CreateProperty
  CreateRelation
  CreateTableDef
  CreateUser
  CreateWorkspace
  CURRENCY
  CurrentUser
-D
  DATABASE
  DATE
  DATETIME
  DELETE
  DESC
  Description
  DISALLOW
  DISTINCT
  DISTINCTROW
  Document
  DOUBLE
  DROP
-E
  Echo
  Else
  End
  Eqv
  Error
  EXISTS
  Exit
-F
  FALSE
  Field, Fields
  FillCache
  FLOAT, FLOAT4, FLOAT8
  FOREIGN
  Form, Forms
  FROM
  Full
  FUNCTION
-G
  GENERAL
  GetObject
  GetOption
  GotoPage
  GROUP
  GROUP BY
  GUID
-H
  HAVING
-I
  Idle
  IEEEDOUBLE, IEEESINGLE
  If
  IGNORE
  Imp
  IN
  INDEX
  Index, Indexes
  INNER
  INSERT
  InsertText
  INT, INTEGER, INTEGER1, INTEGER2, INTEGER4
  INTO
  IS
-J
  JOIN
-K
  KEY
-L
  LastModified
  LEFT
  Level
  Like
  LOGICAL, LOGICAL1
  LONG, LONGBINARY, LONGTEXT
   
-M
  Macro
  Match
  Max, Min, Mod
  MEMO
  Module
  MONEY
  Move
-N
  NAME
  NewPassword
  NO
  Not
  Note
  NULL
  NUMBER, NUMERIC
-O
  Object
  OLEOBJECT
  OFF
  ON
  OpenRecordset
  OPTION
  OR
  ORDER
  Orientation
  Outer
  OWNERACCESS
-P
  Parameter
  PARAMETERS
  Partial
  PERCENT
  PIVOT
  PRIMARY
  PROCEDURE
  Property
-Q
  Queries
  Query
  Quit
-R
  REAL
  Recalc
  Recordset
  REFERENCES
  Refresh
  RefreshLink
  RegisterDatabase
  Relation
  Repaint
  RepairDatabase
  Report
  Reports
  Requery
  RIGHT
-S
  SCREEN
  SECTION
  SELECT
  SET
  SetFocus
  SetOption
  SHORT
  SINGLE
  SMALLINT
  SOME
  SQL
  StDev, StDevP
  STRING
  Sum
-T
  TABLE
  TableDef, TableDefs
  TableID
  TEXT
  TIME, TIMESTAMP
  TOP
  TRANSFORM
  TRUE
  Type
-U
  UNION
  UNIQUE
  UPDATE
  USER
-V
  VALUE
  VALUES
  Var, VarP
  VARBINARY, VARCHAR
-W
  WHERE
  WITH
  Workspace
-X
  Xor
-Y
  Year
  YES
  YESNO
   
以及以下标点符号
  .
  /
  *
  ;
  :
  !
  #
  &
  -
  ?
  "
  '
  $

页: [1]
© 1999-2008 EvilOctal Security Team