[原创]《风的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]