《数据库访问 》PPT课件.ppt
《《数据库访问 》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库访问 》PPT课件.ppt(172页珍藏版)》请在三一办公上搜索。
1、第10章 数据库访问,主要内容,几乎所有的基于Web的应用程序都使用到数据库,本章主要讨论 与数据库有关的技术 SQL语言中的常用语句 通过ADO使用数据库 通过ADO中的记录集使用数据库,本章目录,例2:插入一条静态记录,例1:显示通讯录中全部记录,10.2 设置ODBC数据源,例3:将表单中的输入插入到数据表中,10.1 网站数据库技术概述,本章小结,习题,10.3 使用SQL语言,例5:通过选择来删除记录,例6:更改某一记录,例4:删除满足条件的记录,例7:通过表单输入修改内容,例8:记录的显示和添加,例9:修改数据,例10:成批修改记录,10.4 通过ADO使用数据库,10.5 通过记
2、录集对象使用数据库,例11:删除数据,例12:分页显示记录,10.1 网站数据库技术概述,数据库是存放大量用户信息的场所,几乎所有的基于Web的应用程序都使用到数据库,通过网页形式访问数据库也是本课程中必不可少的内容。这里介绍CGI,IDC,ASP中与数据库有关的技术,CGI程序与数据库,在使用VB编写的CGI程序中,可以使用DAO和RDO提供的对象,直接打开数据库并创建记录集,形式如下:set DB=OpenDatabase(“数据库文件路径”)set rs=DB.OpenRecordSet(“数据库中的表名”)由于使用实际的文件路径,应用程序和数据的提供者密切相关。,参考:网页中使用CGI
3、程序例,IDC技术与数据库,引入IDC(Internet Database Connector)之后,人们使用IDC技术,在ODBC(开放式数据库连接)的支持下,通过执行SQL(结构化查询语言)语句,完成对数据库记录的查询、添加、更新和删除操作,并通过模板文件来规定结果的输出形式。,IDC技术与数据库,使用IDC技术,可以方便地完成数据库应用系统的编程,应用程序和数据提供者无关。但IDC技术的缺点是交互性较差。,参考:网页中使用IDC技术例,ASP中的数据库,ADO(ActiveX Data Objects)是一组接口,它通过系统级编程接口OLE DB,提供了一个应用程序级的数据访问对象,它易
4、于使用,与编程语言无关,与提供者无关,它通过ODBC支持,可以访问几乎所有类型的数据库。,ASP中的数据库,当ASP脚本中需要访问数据库时,可以创建ADO数据对象,再通过在数据对象上执行SQL语句,来操作数据库,或者通过进一步创建功能强大的记录集对象,通过记录集对象上的有关方法,方便、灵活地操作数据库中的数据。最后得到的结果可以组织成html文档发送到客户端。,ASP中的数据库,在ASP中访问数据库,需要掌握以下有关内容:数据库及数据表的建立ODBC数据源的设置方法SQL语句编写ADO数据对象的创建和操作记录集对象的创建和操作数据的组织与输出,10.2 设置ODBC数据源,通过设置ODBC数据
5、源,ASP脚本程序可以用统一的方式使用各种不同类型的数据库。这样,当数据库环境发生变化时,只需简单地重新设置ODBC数据源,就可以在新的数据库环境下使用了。应用程序几乎不要作任何改动。,10.2 设置ODBC数据源,ODBC实质上只是一个中间软件,它能够将通用的SQL语句转换为对某种数据库的具体操作。要设置ODBC数据源,可通过系统的控制面板来实现,具体操作步骤如下:,打开控制面板,单击开始、设置、控制面板显示如图:,10.2 设置ODBC数据源,注意:Windows2000中设置ODBC数据源在控制面板中的管理工具下进行:,10.2 设置ODBC数据源,双击ODBC 数据源(32bit)图标
6、,出现如图所示。,10.2 设置ODBC数据源,为确保计算机的所有用户都能访问新的ODBC数据源,选择系统DSN有。,10.2 设置ODBC数据源,(3)单击添加,创建一个新的数据源。,创建一个新的数据源,出现如下图:,ODBC Access 设置窗口,单击完成,出现如下图:,命名数据源,填写数据源名,如Northwind。并输入需要的描述(可省):,选择数据库文件,通过标准打开文件对话框,选择作为数据源的数据库文件。,确定设置,确定设置,显示如下图:,完成设置,完成设置,可看到已设置的数据源:,10.2 设置ODBC数据源,注意:若你刚使用Access数据库环境创建数据库及表,还没有退出这一
7、环境时,这步“选取”数据库操作可能会得到“非法目录”的提示。此时只需先关闭数据库,并退出Access环境即可。,10.3 使用SQL语言,SQL(Structured Query Language),结构化查询语言,用于查询、更新和操作关系数据库。本节主要讨论SQL的四个基本语句,即:查询(SELECT)插入(INSERT)删除(DELETE)修改(UPDATE),准备知识,在讨论之前,有必要对数据库的基本概念作一介绍。(1)表(2)记录(3)索引(4)数据库,(1)表,表是一种按行与列排列的相关信息的逻辑组,例如某厂的人事挡案表。表中每一列在数据库中称作一个字段。表中有什么样的字段,每个字段
8、中可以存放什么类型数据,这些信息决定了一个表的基本结构。,(2)记录,在表中,每个工作人员的相关信息都存放在表的一行中,被称为一个记录。一个表也就成了一个记录的集合(RecordSet)一般来说,数据库中表的任意两行都不能完全相同。,(3)索引,为了更快地访问数据,大多数数据库都使用索引。数据库表的索引类似于书的目录一样,它也是一个表,索引表中按照一定的顺序存放了数据表中经常要查询的一些重要数据及这些数据对应于表中的位置。对数据库进行查询时,系统可以首先查找索引表,再根据索引表中的记录位置找到数据记录。,(4)数据库,通常一个数据库由若干个表构成。或者说数据库是表的集合。以下分别介绍SQL中的
9、常用语句。,1查询(SELECT),Select语句用于从数据库中获得一些信息,如从一个表中获得部分记录的部分字段内容,从多个表中组合形成一个新的记录集等。,1查询(SELECT),Select语句的一般格式如下:SELECT DISTINCT项目名称表FROM 表名1,表名2,WHERE 条件GROUP BY 表达式HAVING 条件ORDER BY 字段名DESC|ASC,1查询(SELECT),其中:(1)DISTINCT指出若结果记录集中有重复记录时,只取其中一条。例如:为了从基本情况表中了解本单位有多少种不同的职称,可使用如下查询形式:SELECT DISTINCT 职称 FROM
10、基本情况表其中“基本情况表”是数据库中的一个表名,而“职称”为该表中的一个字段名。,1查询(SELECT),(2)项目名称表可以由多个项目用逗号分隔,每个项目可以是字段名或表达式,字段名前可以指出字段所属的表名。例如:为了得到基本情况表中的所有记录,形式如下:SELECT*FROM 基本情况表例如:为了得到学习情况表中的学号和总分数据:SELECT 学号,数学+语文+学习情况表.英语AS 总分 FROM 学习情况表,1查询(SELECT),当选择内容是一个表达式时,后面用AS引导一个名称,作为结果记录集的字段名。例如:为了从学习成绩表中得到全部同学的数学平均分,可使用如下形式:SELECT A
11、VG(数学)AS 平均分 FROM 学习情况表其中:AVG是SQL中可以使用的集合函数,作为结果记录集的字段名,1查询(SELECT),项目名称表中常用的集合函数还有COUNT(求记录条数)、SUM(求和)、MAX(求最大值)和MIN(求最小值)等。当需要表示选择全部字段时,用“*”表示。,1查询(SELECT),(3)WHERE后的条件可以是简单的关系式,如:职称=工程师也可以是由“AND”、“OR”和“NOT”连接起来的几个关系式,如:SELECT 书名 FROM 书目表 WHERE 类型=文学 AND 价格25,1查询(SELECT),(4)GROUP BY项可根据某一表达式的值将记录分
12、组,而HAVING可确定某一组是否满足条件。例如:为了从选修课程学生名单表中得到选修人数大于40的课程号和人数,可使用如下形式的查询:SELECT 课程号,COUNT(课程号)AS 人数 FROM 名单 GROUP BY 课程号 HAVING COUNT(课程号)=40,1查询(SELECT),(5)ORDER BY项用于将结果记录按某一字段值进行排序输出,ASC选项表示升序,DESC表示降序。例如:为了将学习成绩表按数学成绩从高到低输出,可使用如下形式查询:SELECT*FROM 学习成绩表 ORDER BY 数学 DESC,1查询(SELECT),(6)除了以上基本格式外,还可以在SELE
13、CT 后面直接跟“TOP n PERCENT”来指出只返回特定数目的记录,或前面一定百分比的记录。例如:要从学生基本情况表中返回2000年入学的前25名学生的姓名,可使用如下形式:SELECT 姓名 TOP 25 FROM 基本情况表 WHERE 入学年份=1994,2插入(INSERT),Insert语句用于向表中添加一个或多个记录。可以将一组值作为一个记录追加到表中,形式为:INSERT INTO 表名(字段名表)VALUES(值的列表)其中:如果“值的列表”中包含了所有字段的值,则格式中字段名表可以省略。“字段名表”和“值的列表”中各数据的类型必须保持一致,个数也要保持一致。,2插入(I
14、NSERT),例如:在只包含姓名和年龄的学生表中插入一个姓名为“张三”,年龄为23的记录的形式如下:INSERT INTO 学生表 VALUES(张三,23)其中字符型常量“张三”用单引号括起来,数值型常量23不用定界符。如果学生表中还有其它字段,则上述语句执行时会产生错误。,2插入(INSERT),可以将查询的结果插入到一个表中,形式如下:INSERT INTO 目标表(字段名表)SELECT 子句部分,3删除(DELETE),Delete语句可从表中删除满足一定条件的一个记录或一组记录。使用形式如下:DELETE FROM 表名 WHERE 条件其中,表名指出需要删除一个或多个记录的数据表
15、名称。该命令一次可能删除多个记录。,3删除(DELETE),例如:由于老职工的退休,需要从工资表中删除年龄大于60岁的全部人员,可以使用如下形式的SQL语句:DELETE FROM 工资表 WHERE 年龄=60,3删除(DELETE),注意:当删除记录之后,不能取消此操作。如果想要知道哪些记录将被删除,可以首先使用相同条件的查询观察结果,然后运行删除操作。随时将数据做备份副本。如果误删除记录,可以从备份副本中将数据恢复。,4修改(UPDATE),Update命令可以更改指定表中,满足指定条件的一个或多个记录的某些字段的值。使用形式如下:UPDATE 表名 SET 字段=值,字段=值,WHER
16、E 条件 其中,表名指出要更改的数据表名,SET子句后的“字段=值”表示将某个值赋给对应的字段。WHERE后的条件用来指出被更新的记录应符合的条件。,4修改(UPDATE),例如需要为联合王国的一家公司增加10%的订货量和3%的货运,对应的SQL语句如下:UPDATE 订货表SET 订货量=订货量*1.1,货运=货运*1.03WHERE 公司名称=UK 注意:UPDATE 不生成结果记录集。而且当使用更新操作更新记录之后,不能取消这次操作。如果想知道哪些记录将被更新,只能事先用相同条件的查询操作来观察。,4修改(UPDATE),注意:随时注意维护数据的复制备份。如果更新错了记录,可从备份副本中
17、恢复这些数据。,5建立数据表和删除数据表,可以使用CREATE命令来创建一个新的表格,其使用形式为:CREATE TABLE 表名(字段名 数据类型NOT NULL,字段名 数据类型NOT NULL,)例如:CREATE TABLE 学生(学号 INTEGER,姓名 CHAR(8),性别 CHAR(2),5建立数据表和删除数据表,一旦创建了一个数据表,就可以使用上面介绍的INSERT命令进行添加数据,以及用其它命令进行相应的操作。如果一个数据表不再有用了,可以使用DROP命令来删除这个数据表。其使用格式为:DROP TABLE 表名注意:删除表同时也将表中的全部数据删除,应谨慎使用。,10.4
18、 通过ADO使用数据库,应用ADO(ActiveX Data Object)技术实现网站数据库查询的操作的几个步骤:建立数据库在数据库中创建数据表建立ODBC数据源(见第2节)在脚本中利用ADO对象进行数据库中表的操作,用任意一种数据库,10.4 通过ADO使用数据库,应用ADO进行数据库设计一般有两种方式,一种是直接在连接对象上执行SQL语句,完成相应的操作。另一种方式是通过创建功能强大的记录集对象,再在记录集对象上进行相应的操作。,10.4 通过ADO使用数据库,第一种方式主要用于能使用简单的SQL语句直接能完成操作的场合,如插入一条已知数据的记录,删除一些满足简单条件的记录,对某一记录进
19、行简单的更改,或单纯显示满足简单条件的记录,在这种方式下,除了查询操作外,不生成记录集就能完成所需的操作。本节只讨论这种方式。,1打开数据库,在使用控制面板建立好ODBC数据源后,就可以使用“Server.CreateObject”建立一个数据库连接对象,形式如下:Set Conn=Server.CreateObject(“ADODB.Connection”)其中:Conn为连接对象变量名,Server为系统内置的服务器对象。,1打开数据库,通过连接对象的“Open”方法打开数据库,形式如下:Conn.Open“DSN=数据源名称;UID=sa;PWD=;”其中:数据源名称即建立ODBC数据源
20、时给出的名称,如:Conn.Open“DSN=TXL;UID=sa;PWD=;”UID后指出用户标识,sa是Access数据库中的缺省用户,PWD后面指出用户sa的口令,Access中用户sa的默认口令为空,所以直接用分号。,1打开数据库,在SQL Server中一般要求为用户sa设置口令,若设有口令,则在格式中应写出口令。在Access数据库中,当使用缺省的用户sa时,可以将连接对象的打开操作简写为如下形式:连接对象变量名.Open“数据源名称”而对于SQL数据库环境,连接对象的“Open”方法需要指出完整的参数。,不设置ODBC打开Access数据库,Set Conn=Server.Cre
21、ateObject(“ADODB.Connection”)Conn.open Provider=Microsoft.Jet.OLEDB.4.0;DataSource=mydb.mdb;UserId=sa;Password=;其中:mydb.mdb为当前目录中的数据库,sa为用户名,口令为空。,打开SQL Server数据库,set conn=server.createobject(adodb.connection)conn.open PROVIDER=MSDASQL;DRIVER=SQL Server;SERVER=(local);DATABASE=cyq;UID=sa;PWD=;,2执行SQ
22、L语句,可以通过(上面创建的)连接对象的“Exceute”方法来执行一条SQL语句,以实现对数据库的操作,如下所示:Set RS=Conn.Execute(SQL语句)这里的“SQL语句”可以是任何一条语句,Conn是已创建并打开的数据库连接对象名。这条指令建立了一个RecordSet(记录集)对象RS,通过这一对象,可实现显示数据库记录内容。,2执行SQL语句,由于除查询操作外不生成结果记录集,所以对于像删除、修改或插入操作,可以使用如下形式:Conn.Execute(SQL语句)即不返回记录集。,3显示结果,刚生成的记录集是自动打开的,记录指针指向第一条记录,假设记录集变量名为RS,则可以
23、使用如下各种形式获得数据:RS(“字段名”)=读取当前记录中指定字段的值 RS(i)=当前记录中第i个字段的值RS(i).Name=第i个字段的名称(I从0开始)RS.Fields.Count=当前记录集的字段总数,3显示结果,显示完当前记录内容后,可使用以下方式移动记录指针:RS.MoveFirst 将数据指针指向第一个记录RS.MoveLast 将数据指针指向最后一个记录RS.MoveNext 将数据指针指向下一个记录RS.MovePrev 将数据指针指向前一个记录 使用RS.EOF判别记录是否结束。一般情况,在开始显示前应首先用它来判别记录集是否为空。,4关闭数据库,在所有操作和显示结束
24、后,需要使用下述指令关闭记录集和数据库连接:RS.Close Conn.Close 由于Access数据库同时只能维持一个连接,如果用户不关闭连接,将使其它用户无法打开它。,注意次序,5释放对象,可以使用如下形式来释放对象所占的资源:Set RS=nothing Set Conn=nothing,使用例子,例1:显示通讯录中全部记录网页内容全部人员名单如下:姓名爱好,建立连接,并打开,选择全部记录,使用例子,例1:显示通讯录中全部记录网页内容(续)objRS.MoveNext Wend objRS.close:objConn.close Set objRS=Nothing Set objCon
25、n=Nothing%,关闭并撤消记录集,关闭并撤消连接,依次显示个记录内容,例1:显示通讯录中全部记录,浏览结果,为了得到如图结果,需要完成以下工作:,例1:显示通讯录中全部记录,准备工作为了测试本例的结果,需要首先通过某种数据库环境来建立数据库及数据表,数据表(名为txlb)中包含“姓名”、“性别”、“出生日期”、“联系电话”和“爱好”五个字段,出生日期为日期/时间类型,其它均为文本类型。在表中输入若干个记录,为便于验证以后各例的结果,输入内容可参照表10-2中的数据。,例1:显示通讯录中全部记录,准备工作通过控制面板,设置名为“txl”的系统DNS,指向建立的数据库。本例代码必须小心输入,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库访问 数据库访问 PPT课件 数据库 访问 PPT 课件
链接地址:https://www.31ppt.com/p-5519565.html