1 / 77

第4章 ASP 存取数据库

第4章 ASP 存取数据库. 学习目的. 在 ASP 中存取数据库是非常重要的,也是比较难学的。 学完后应该能开发简单的 BBS 等网络程序。. 本章要讲的内容. 数据库预备知识 利用数据库存取组件存取数据库 连接数据库 利用 Select 语句查询记录 利用 Insert 语句添加新记录 利用 Delete 语句删除记录 利用 Update 语句修改记录 对多个数据表进行操作 ADO . 数据库预备知识. 大型站点中一般采用 SQL、 Oracle 等数据库. 对于小型站点,也可以用 Access 数据库。

wolfe
Download Presentation

第4章 ASP 存取数据库

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4章 ASP存取数据库

  2. 学习目的 • 在ASP中存取数据库是非常重要的,也是比较难学的。 • 学完后应该能开发简单的BBS等网络程序。

  3. 本章要讲的内容 • 数据库预备知识 • 利用数据库存取组件存取数据库 • 连接数据库 • 利用Select语句查询记录 • 利用Insert语句添加新记录 • 利用Delete语句删除记录 • 利用Update语句修改记录 • 对多个数据表进行操作 • ADO

  4. 数据库预备知识 • 大型站点中一般采用SQL、Oracle等数据库. • 对于小型站点,也可以用Access数据库。 • 读取Access数据库和读取SQL数据库基本上是一样的,如要改成读取SQL库,程序几乎不用改动

  5. 创建一个Access数据库 • 首先创建一个Access数据库表,打开Access2000/XP,选择“新建数据库”,数据库命名为:“person.mdb”。

  6. 输入表的结构 • 单击“使用设计器创建表”出现输入界面,在其中输入表的结构。

  7. 创建的“grade”表 • 输入完以上的信息后,单击保存图标,并命名为“grade”,右击刚创建的“grade”表,选择“打开”,将产生一个空表。

  8. 输入人员的信息 • 在出现的界面中输入人员的信息,如图4-4所示。

  9. rs的结构 • 假定建立了一个RecordSet对象的实例rs,rs的内部结构和数据库表一样具有二维结构。rs对象包含一个无形的指针,默认的情况下指向第一行。

  10. rs的结构 • 其中:写法rs(0)、rs(“学号”)、rs.Fields(0)和rs.Fields(“学号”)是相同的,写法rs(2)、rs(“语文”)、rs.Fields(2)和rs.Fields(“语文”)是相同的。其余类推。 • 根据上表和注释: • rs(3).Name = rs.Fields(3).Name = "数学"; • rs(4).Name="英语"; • 假设当前的记录指向第三条,那么 • rs(1).Value=rs("姓名")=rs(1)= "张敏" • rs(4).Value=rs(4)=rs("英语")=200 • 有了这些基础,就可以进行数据库操作。

  11. 连接数据库 • 设置数据源 • 不设置数据源的方法

  12. 设置数据源 • ASP提供了一个非常有用的数据库存取组件,该组件利用ADO(Active Data Objects)技术来存取符合ODBC(Open Database Connectivity)标准的数据库。利用该组件,我们就可以轻松存取数据库了。不过,一般需要先用ODBC标识数据库,也就是设置数据源, • 方法:开始|设置|控制面板|ODBC数据源,按着提示一步一步设置即可。

  13. 连接数据库 • 设置数据源的方法 • <% • Dim db • Set db=Server.CreateObject(“ADODB.Connection”) • db.Open “wwwlink”‘打开数据源wwwlink • %>

  14. 连接数据库 • 不设置数据源的方法 • <% • Dim db • Set db=Server.CreateObject(“ADODB.Connection”) • db.Open "Dbq="&Server.Mappath("wwwlink.mdb")&“ • ;Driver={Microsoft Access Driver (*.mdb)}" • %>

  15. 使用SQL语句 • SQL语句主要包括 • 数据查询语言(Data Query Language,DQL) • 数据操作语言(Data Manipulation Language,DML)。 • 首先介绍DQL的使用方法。

  16. Select语句 • 语法: • Select 字段列表From 数据表列表 [Where 条件][Order By 字段]

  17. Select的三大基本格式 • 1. 基本句型一:(最简单的select语句) • Select 字段名 From 数据表 • (1)Select * From grade • 功能说明:将grade表中的所有字段取出来。 • (2)Select 学号,姓名 from grade • 功能说明:将grade表中学号和姓名字段取出来。 • (3)Select 学号,姓名,语文+数学+英语 as 总成绩 from grade • 功能说明:将grade表中的学号和姓名取出来,并将语文、数学和英语成绩相加产生虚拟列总成绩。

  18. 基本句型二:(使用条件查询) • 2. 基本句型二:(使用条件查询) • Select 字段名 From 数据表 where 筛选条件 • (1)Select * from grade where 数学>60 • 功能说明:把所有数学成绩大于60分的记录选出来。 • (2)Select * from grade where 数学=100 or 语文=100 • 功能说明:把数学成绩等于100分或者语文成绩等于100分的人选出来。

  19. 基本句型三:(进行排序) • 3. 基本句型三:(进行排序) • Select 字段名 From 数据表 Order by 字段名 • (1)Select * from grade order by 数学 注:从低到高排序 • 功能说明:从grade表中取出所有字段,并按数学成绩排序。 • (2)Select * from grade order by 数学,语文 • 功能说明:从grade表中取出所有字段,并按数学成绩排序,如果数学成绩相同则按照语文成绩排序。 • (3)Select * from grade order by 数学 desc 注:从高到低排序 • 功能说明:从grade表中取出所有字段,并按数学成绩倒序。 • (4)Select top 5 * from 成绩单 • 功能说明:从grade表中取出前五条记录的所有字段。

  20. Like子句 • 在实际应用系统中,模糊查询用得比较多,比如在一些网站上经常会提供按照关键字查询,可以利用Select语句的Like子句方便地实现模糊查询。 • 首先分析一下Like字句的使用方法。 • (1)基本格式一:“_”匹配。 • 说明:每个下划线匹配一个任意字符,注意只匹配一个字符。比如:姓名 like '_敏',匹配姓名以“敏”字结尾且字数等于二的所有数据记录,如:“张敏”。 • (2)基本格式二:“%”匹配。 • 比如:姓名 Like '%敏%',匹配姓名中出现“敏”的所有数据记录,如:“周惠敏”,“于敏”、“敏大”、“敏二”等。

  21. 使用SQL语句操作数据库 • 基本SQL语言分成三大体系。 • (1)数据定义语言DDL:用来定义数据。 • (2)数据查询语言DQL:数据检索语言。 • (3)数据操作语言DML:包括INSERT语句、UPDATE语句和DELETE语句。

  22. DELETE指令 • (1)DELETE指令:删除数据记录。 • 基本语法: • DELETE FROM 数据表 WHERE 条件 • 例: • delete from grade where 数学=0 • 说明:删除所有数学成绩为零的记录

  23. UPDATE指令 • (2)UPDATE指令:更新数据记录。 • 基本语法: • UPDATE 数据表 SET 字段值=新值 where 条件 • 例1: • update grade set 数学=数学+10 说明:将grade表中所有人的成绩加10分 • 例2: • update grade set 数学=100 where 姓名 like '%敏%' • 说明:将姓名中含有敏的人的数学成绩更新为100分

  24. INSERT INTO指令:添加 • (3)INSERT INTO指令:添加数据记录。 • 基本格式1: • INSERT INTO 数据表VALUES (字段新值) • 基本格式2: • INSERT INTO 数据表(字段一,字段二,……) VALUES (字段新值) • 两种格式的区别是:当values含有数据库表所有字段的值,并且顺序和数据库字段一致时,就可以省略数据库表后面的字段名称。

  25. 例1: • Insert into grade(学号, 姓名, 数学)values (1234, '周润发',70) • 例2: • Insert into grade values(5678, '周润发',70,80,90) • 说明:该语句等价于: • Insert into grade(学号, 姓名, 语文, 数学, 英语) values(5678, '周润发',70,80,90) • 因为包含数据库所有字段,而且顺序和数据库一致,所以字段列表可以省略。

  26. 对多个数据表进行操作 • 查询时经常需要从两张表里读取数据,如现在有两张表TA 、TB • Select TA.student_id,TA.name, TB.department,TB.age From TA,TB Where TA.student_id=TB.student_id

  27. 数据库存取组件ADO • ASP提供了一个非常有用的内置的数据库存取组件,该组件利用ADO(Active Data Objects)技术来存取符合ODBC(Open Database Connectivity)标准的数据库。过去用CGI来存取数据库非常不容易,现在利用ADO技术就非常简单了。ActiveX Data Object可以提供Web页面与数据库结合的数据库技术。 • 将传统的数据库后台管理模式放到Web页面上来进行。使数据库的存取更新更加简单、方便。 • 主要包含3个对象: • Connection、Command、Recordset

  28. 简介: • Connection:连接数据库(连接对象) • Command:对数据库进行操作(命令对象) • Recordset:对数据库中的记录进行操作 • 对数据库进行操作时,先用Connection对象来建立与数据库的连接,然后用Command对象或Recordset对象来对数据库进行操作。

  29. 4. 1 Connection对象4.1.1 建立Connection对象 • 对数据库进行操作前,先要建立Connection对象。方法: • 利用server对象的creatobject方法 • <% • Dim db • Set db=server.creatobject(“ADODB.connection”) • %>

  30. 4.1.2 Connection对象的方法: • Open:建立Connection对象与数据库间的连接 • Close:关闭Connection对象 • Execute:执行对数据库的操作 • Begintrans:开始事务处理 • Committrans:提交处理结果 • Rollbacktrans:取消处理结果

  31. 一、open方法: • (connection对象名)Db.open 参数 • 参数: Dbq=数据库的物理路径 Driver=数据库的类型(驱动程序) Dsn=ODBC数据源(可省略) 没有设置数据源时: Dim db, strConn Set db=Server.CreateObject("ADODB.Connection") strConn="DBQ=" & Server.Mappath("address.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}" db.Open strConn

  32. open方法: 设置数据源(addr)时: Dim db Set db=Server.CreateObject("ADODB.Connection") db.Open “Dsn=addr” (db.open “addr”) 优点:简单 缺点:可移植性

  33. 二、close方法: • <% • Db.close • Set db=nothing ’从内存中清除 • %> • 当一个页面关闭时,connection对象会自动关闭

  34. 三、Execute方法: • 语法: • 1、db.execute(SQLstring) • 2、set Recordset对象= db.execute(SQLstring) • (返回一个Recordset对象)

  35. 四、SQL语言 • Select 查询语句 • Insert 插入语句 • Delete 删除语句 • Update 修改语句 • Create Table 创建数据表语句 114 • Alter Table 修改数据表字段语句 114 • Drop Table 删除数据表语句 115

  36. 1> Select语句:查询记录 • 语法: • Select 字段列表From 数据表列表 [Where 条件][Order By 字段] • 例子: • Select name,URL,intro From link • Select * From link • Select * From link Where name=”新浪” • Select * From link Order By link_id

  37. 2> Insert语句:添加新记录 • 语法如下: • Insert Into 表名(字段1,字段2,…) Values(字段值1,字段值2,…) • 例如: • Insert Into link (name,URL,intro) Values(“中国教育网”,”www.edu.cn”,”中国教育部网站”)

  38. 3> Delete语句:删除记录 • 语法比较简单: • Delete From 数据表名 [Where 条件] • 例如: • Delete From link Where name=”网易”

  39. 4> Update语句:修改记录 • 语法如下: • Update 数据表名 Set 字段1=字段值1,字段2=字段值2,… [Where 条件] • 例如: • Update link Set intro=”非常棒的网站”Where name=”新浪”

  40. 5>Creat table:创建数据表 • 语法: • Creat table 数据表名(字段1名称 字段1类型,字段2名称 字段2类型,……) • 类型: • Text:文本,long<=255byte • Char(n):文本,long<=nbyte • Memo:备注,long<=65535byte • Number:数值,双精度数字

  41. 数据类型: • Int:整数 • Data/Time:日期/时间,100-9999年 • Logical:逻辑,true/false • Oleobject:Ole对象(数据库中链接或嵌入的对象,如:excel、word、图片、其他) • Autonumber:自动编号

  42. 例: • Creat table lab1(name text,age int,birthday date,intro memo,flag logical) • Creat table lab2(name text not NULL,age int, intro memo) • 不允许name字段为空

  43. 6>Alter Table:修改数据表字段 • 增加或减少一个字段 • Alter Table 数据表名 Add column 字段名 字段类型 • 增加一个字段 • Alter Table 数据表名 drup column 字段名 • 删除一个字段

  44. 7>Drup Table:删除数据表 • Drup Table 数据表名 • Drup Table lab1 • Drup Table lab2

  45. 4.1.3 Connection对象的属性: • 1、commandtimeout • 设置execute方法执行的最长时间 30秒 • <% db.commandtimeout=90 %> • 如果设置为0,无限制 • 2、connectiontimeout • 设置open方法执行的最长时间 15秒 • <% db.connectiontimeout=30 %> • 如果设置为0,无限制

  46. Connection对象的属性: • 3、connectionstring • 指定数据库链接信息,可用来打开数据库 例: <% Dim db Set db=Server.CreateObject("ADODB.Connection") db.connectionstring= "DBQ=" & Server.Mappath("address.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}" Db.open %>

  47. Connection对象的属性: • 4、mode • 设置连接数据库的权限 • Admoderead(1) 只读 • Admodewrite(2) 只写 • Admodereadwrite(3) 可读写 Dim db Set db=Server.CreateObject("ADODB.Connection") Db.mode=1 Db.open

  48. 4.2 Command对象 • Command对象简介 • 又称命令对象,主要用来对数据库进行查询,并将查询结果存储在recordset对像中。 • Command对象使用时,要先创建connection对象, Command对象向数据库提出操作请求(通过SQL指令),并将结果返回给recordset对象。

  49. 建立Comand对象 • 方法: • <% • Dim db,cmd • Set db=Server.CreateObject(“ADODB.Connection”) • db.Open ”addr”‘addr为数据源名称 • Set cmd=Server.CreateObject(“ADODB.Command”) • cmd.ActiveConnection=db • %>

  50. 4.2.1 Command对象的属性 • 属性 说明 • ActiveConnection 指定Connection连接对象 • CommandText 指定数据库查询信息 • CommandType 指定数据查询信息的类型 • CommandTimeout Command对象的Execute方法的最长执行时间 • Prepared 指定数据查询信息是否要先行编译、存储。

More Related