第10章ASP访问数据库
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
② 创建记录集 rs(“title”) ③ 输出字段到页面
数据库
① 连接数据库
数据库
IIS
浏览器
ASP通过ADO访问数据库的步骤 (1)用Connection对象连接数据库; (2)创建记录集RecordSet。即通过查 询将指定表中需要的数据读取到内存中; (3)输出数据到页面。即输出记录集中 一条记录或多条记录的字段值到页面上。
Web标准网页设计 与ASP
唐四薪
主编
第十章 ASP访问数据库
网站数据库化的好处
将网站数据库化,就是使用数据库来管理整个网 站。只要更新数据库的内容,网站的内容就会被 自动更新。将网站数据库化的好处如下: ① 可以自动更新网页。采用数据库管理,只 要更新数据库的数据,网页内容就会自动得到更 新,过期的网页也可以被自动拿掉。 ② 加强搜索功能。将网站的内容储存在数据 库中,可以利用数据库提供的强大搜索功能,从 多个方面搜寻网站的数据。
7.1.3 SQL语言 简介
SQL语言
SQL(Structured Query Language)语言, 即结构化查询语言,包括: (1)Select语句——查询记录; (2)Insert语句——添加记录; (3)Delete语句——删除记录; (4)Update语句——更新记录。
7.1.4 Select语句
SQL语句中含有多个变量的情况
Insert Into lyb (author, title) Values ('芬芬','大 家好!') 把它写成SQL字符串就是: str="Insert Into lyb (author, title) Values ('芬 芬','大家好!') " 如果变量user='芬芬',tit='大家好!',则可将 该SQL字符串改写为: str="Insert Into lyb (author, title) Values ('"&user&"','"&tit&"')"
ADO对象示意图
数据库
Connection对象
Error对象
Command对象
Parameter对象
Recordset对象
Field对象
页面
通过ADO访问数据库的步骤
② 创建记录集 rs(“title”) ③ 输出字段到页面
数据库
① 连接数据库
数据库
IIS
浏览器
通过ADO访问数据库的步骤
Set conn=Server.CreateObject("ADODB.Connection") conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("lyb.mdb") ② 创建记录集 rs(“title”) ③ 输出字段到页面
模糊查询的例子
选取满足模糊条件的记录 查询所有姓名中有“芬”字的人: Select * From lyb Where author like '%芬%' 姓名以张开头的人 Select * From lyb Where author like '张%' Select * From lyb Where author like '唐_'
10.1 数据库的 基本知识
数据库的相关概念
数据库就是按照一定数据模型组织、存储在一起 的,能为多个用户共享的,与应用程序相对独立、 相互关联的数据集合
数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系 统之间的一系列以统一的方式管理和维护数 据库中数据的软件集合。 数据库系统(Database System,简称DBS) 是指在计算机系统中引入数据库后的系统。
字段名为SQL中 的关键字时,必 须加中括号
Delete语句
语法: Delete From表 [Where 条件] 实例: Delete from lyb where id =17 Delete from lyb where author='芬芬‘ Delete from lyb where date<#2010-9-1#
Group By子句
聚合函数还可以与Group By子句结合使用,以 便实现分类统计 比如要统计每个系的男生人数和女生人数 Select 系别, sex, count(*) From students Group By 系别, sex
5、HAVING短语
HAVING 短语指定组或聚合的条件。只有满足条件的 组才被选出来,HAVING通常与GROUP BY子句一起使用。 (注意与WHERE子句区分)
基于DSN的ODBC方式 conn.open "Dsn=lyb2" 无DSN(DSN-less)的ODBC方式 conn.open "Driver={Microsoft Access Driver (*.mdb)};Dbq=E:\Web\lyb.mdb " 基于OLE DB的连接方式 conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= E:\Web\lyb.mdb "
7.1.5 添加、删除、 更新记录的语句
Insert语句
语法: Insert Into 表 (字段1, 字段2, …) Values (字段1 的值, 字段2的值, …) 实例: Insert Into lyb (author ) Values('芬芬') Insert Into lyb (author, title, [date]) VALUES ('芬芬','大家好!',#207-12-12#)
关系与数据表
目前绝大多数数据库采用的数据模型都是关系数 据模型,所谓“关系”简单地说就是表。
7.1.2 建立Access数据库
1. 新建数据库 2. 新建和维护表
新建表 保存表 在表中输入数据 修改数据表的设计
3. 新建和维护查询
ห้องสมุดไป่ตู้
Access中的数据类型
数据类型主要有以下几种: 文本:用于比较短的字符串,最长为255个字符。 备注:用于比较长的字符串。 数字:用于整数、浮点数、小数等数值类型。 是/否:只有True和False两个值。 日期/时间:保存日期/时间的数据类型。 自动编号:可以自动递增或随机产生一个整数, 常用来自动产生唯一编号
Select语句用来实现对数据库的查询。就是可以 从数据库的相关表中查询符合特定条件的记录 (行)或字段(列)。语法如下: Select [Top 数值] 字段列表 From 表 [Where 条件] [Order By 字段] [Group By 字段] 查询工作的关键就在通过分析怎样把实际问题中 的自然语言描述转化为
Update语句
语法: Update 数据表名 Set 字段1=字段值1,字段2 =字段值2,… [Where 条件]
实例: Update lyb Set email='fengf@' where author='芬芬‘ Update lyb Set title='此留言已被删除', content=Null where id=16
例4.15查询选修了3门以上课程的学生及选课数:
SELECT XH, COUNT(*);
FROM XK; GROUP BY XH; HAVING COUNT(*) > 3
5. 多表查询
果要查询的内容来自多个表,就需要对多个表进 行连接后再进行查询 Select 姓名,性别,账号,密码 From User, Admin where User.ID=Admin.ID
数据库连接字符串中的可能参数
参数
说明
参数
说明
Dsn
User Password Driver
ODBC数据源名称
数据库登录用户名 数据库登录密码 数据库的驱动程序类型
Dbq
Provider Data Source
数据库的物理路径
OLE DB的数据提供者 OLE DB的数据库物理 路径
数据库连接字符串的类型
7.2 ADO概述
ADO的三个对象
ASP程序必须通过ADO(ActiveX Data Object) 组件才可以访问Access、SQL Server、Oracle 等数据库 ADO有三个主要对象:
Connection:用来创建ASP脚本与指定数据库 的连接 Command:对数据库执行命令,如查询、添加、 修改和删除等命令 RecordSet:用来得到从数据库中的表返回的记 录集
数据库
① 连接数据库
数据库
IIS
浏览器
通过ADO访问数据库的步骤
Set rs=conn.Execute("Select * From lyb")
② 创建记录集 rs("title") ③ 输出字段到页面
数据库
① 连接数据库
数据库
IIS
浏览器
通过ADO访问数据库的步骤
<h1><%= rs("title") %></h1>
4. 汇总查询
Select语句中提供了Count、Avg、Sum、Max 和Min共5个聚合函数,分别用来求记录总数、 平均值、和、最大值和最小值 下面的语句将查询表中总共有多少条记录: Select count(*) From lyb 下面的语句将查询所有记录的ID值的平均值,之 和和最大的ID号。 Select avg(id),sum(id),max(id) From lyb
1)从哪些表中查询 即:from 后的一项 2)要查询哪些列 即:select 后的一项 3) 要查询的条件 即: where 后的一项
一些常用的Select语句的例子
1)选取数据表中的全部数据 Select * from lyb (2)选取指定字段的数据(即选取表中的某几列) Select author, title from lyb (3)只选取前5条记录 Select Top 5 * from lyb 字符串两边 (4)选取满足条件的记录 要加单引号 Select * from lyb where ID>5 Select * from lyb where author='张三' Select author, title from lyb where ID Between 2 And 5 Select * from lyb where ID in (1, 3, 5)
7.3 Connection 对象
7.3.1 使用Open方法连接数据库
使用Connection对象之前先要建立该对象,语 法如下: Set conn = Server.CreateObject("ADODB.Connection") 建立Connection对象后,还需要利用 Connection对象的Open方法打开指定的数据库 conn.Open 数据库连接字符串 数据库连接字符串的形式:"参数1=值1; 参数2= 值2; …"
SQL字符串中含有变量的书写方法
Select * from link where name='搜狐' str="Select * from link where name='搜狐'" str="select * from link where name='"& webName &"'" 第一部分,字符串常量:"select * from link where name='" 第二部分,字符串变量:webName 第三部分,字符串常量:"'"
“%”表示与任何0个或多个字符匹配,“_”表示与任何 单个字符匹配。需要注意的是,在Access中直接写查 询语句时,“%”需换成“*”,“_”需换成“?”。
对查询结果进行排序
利用Order By子句可以将查询结果按照某种顺 序排序出来 下面的语句将按作者名的拼音字母的升序排列。 Select * From lyb order by author ASC 下面的语句将把记录按ID字段的降序排列。 Select * From lyb order by id DESC
其他查询
(1)使用Distinct关键字可以去掉查询结果中 重复的记录。如: /多条记录中有相同的作者则只显示一条 Select Distinct author From lyb (2)使用As关键字可以为字段名指定别名,如 将author字段名显示为“作者”: Select author As 作者, title As 标题 From lyb
数据库
① 连接数据库
数据库
IIS
浏览器
ASP通过ADO访问数据库的步骤 (1)用Connection对象连接数据库; (2)创建记录集RecordSet。即通过查 询将指定表中需要的数据读取到内存中; (3)输出数据到页面。即输出记录集中 一条记录或多条记录的字段值到页面上。
Web标准网页设计 与ASP
唐四薪
主编
第十章 ASP访问数据库
网站数据库化的好处
将网站数据库化,就是使用数据库来管理整个网 站。只要更新数据库的内容,网站的内容就会被 自动更新。将网站数据库化的好处如下: ① 可以自动更新网页。采用数据库管理,只 要更新数据库的数据,网页内容就会自动得到更 新,过期的网页也可以被自动拿掉。 ② 加强搜索功能。将网站的内容储存在数据 库中,可以利用数据库提供的强大搜索功能,从 多个方面搜寻网站的数据。
7.1.3 SQL语言 简介
SQL语言
SQL(Structured Query Language)语言, 即结构化查询语言,包括: (1)Select语句——查询记录; (2)Insert语句——添加记录; (3)Delete语句——删除记录; (4)Update语句——更新记录。
7.1.4 Select语句
SQL语句中含有多个变量的情况
Insert Into lyb (author, title) Values ('芬芬','大 家好!') 把它写成SQL字符串就是: str="Insert Into lyb (author, title) Values ('芬 芬','大家好!') " 如果变量user='芬芬',tit='大家好!',则可将 该SQL字符串改写为: str="Insert Into lyb (author, title) Values ('"&user&"','"&tit&"')"
ADO对象示意图
数据库
Connection对象
Error对象
Command对象
Parameter对象
Recordset对象
Field对象
页面
通过ADO访问数据库的步骤
② 创建记录集 rs(“title”) ③ 输出字段到页面
数据库
① 连接数据库
数据库
IIS
浏览器
通过ADO访问数据库的步骤
Set conn=Server.CreateObject("ADODB.Connection") conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("lyb.mdb") ② 创建记录集 rs(“title”) ③ 输出字段到页面
模糊查询的例子
选取满足模糊条件的记录 查询所有姓名中有“芬”字的人: Select * From lyb Where author like '%芬%' 姓名以张开头的人 Select * From lyb Where author like '张%' Select * From lyb Where author like '唐_'
10.1 数据库的 基本知识
数据库的相关概念
数据库就是按照一定数据模型组织、存储在一起 的,能为多个用户共享的,与应用程序相对独立、 相互关联的数据集合
数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系 统之间的一系列以统一的方式管理和维护数 据库中数据的软件集合。 数据库系统(Database System,简称DBS) 是指在计算机系统中引入数据库后的系统。
字段名为SQL中 的关键字时,必 须加中括号
Delete语句
语法: Delete From表 [Where 条件] 实例: Delete from lyb where id =17 Delete from lyb where author='芬芬‘ Delete from lyb where date<#2010-9-1#
Group By子句
聚合函数还可以与Group By子句结合使用,以 便实现分类统计 比如要统计每个系的男生人数和女生人数 Select 系别, sex, count(*) From students Group By 系别, sex
5、HAVING短语
HAVING 短语指定组或聚合的条件。只有满足条件的 组才被选出来,HAVING通常与GROUP BY子句一起使用。 (注意与WHERE子句区分)
基于DSN的ODBC方式 conn.open "Dsn=lyb2" 无DSN(DSN-less)的ODBC方式 conn.open "Driver={Microsoft Access Driver (*.mdb)};Dbq=E:\Web\lyb.mdb " 基于OLE DB的连接方式 conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= E:\Web\lyb.mdb "
7.1.5 添加、删除、 更新记录的语句
Insert语句
语法: Insert Into 表 (字段1, 字段2, …) Values (字段1 的值, 字段2的值, …) 实例: Insert Into lyb (author ) Values('芬芬') Insert Into lyb (author, title, [date]) VALUES ('芬芬','大家好!',#207-12-12#)
关系与数据表
目前绝大多数数据库采用的数据模型都是关系数 据模型,所谓“关系”简单地说就是表。
7.1.2 建立Access数据库
1. 新建数据库 2. 新建和维护表
新建表 保存表 在表中输入数据 修改数据表的设计
3. 新建和维护查询
ห้องสมุดไป่ตู้
Access中的数据类型
数据类型主要有以下几种: 文本:用于比较短的字符串,最长为255个字符。 备注:用于比较长的字符串。 数字:用于整数、浮点数、小数等数值类型。 是/否:只有True和False两个值。 日期/时间:保存日期/时间的数据类型。 自动编号:可以自动递增或随机产生一个整数, 常用来自动产生唯一编号
Select语句用来实现对数据库的查询。就是可以 从数据库的相关表中查询符合特定条件的记录 (行)或字段(列)。语法如下: Select [Top 数值] 字段列表 From 表 [Where 条件] [Order By 字段] [Group By 字段] 查询工作的关键就在通过分析怎样把实际问题中 的自然语言描述转化为
Update语句
语法: Update 数据表名 Set 字段1=字段值1,字段2 =字段值2,… [Where 条件]
实例: Update lyb Set email='fengf@' where author='芬芬‘ Update lyb Set title='此留言已被删除', content=Null where id=16
例4.15查询选修了3门以上课程的学生及选课数:
SELECT XH, COUNT(*);
FROM XK; GROUP BY XH; HAVING COUNT(*) > 3
5. 多表查询
果要查询的内容来自多个表,就需要对多个表进 行连接后再进行查询 Select 姓名,性别,账号,密码 From User, Admin where User.ID=Admin.ID
数据库连接字符串中的可能参数
参数
说明
参数
说明
Dsn
User Password Driver
ODBC数据源名称
数据库登录用户名 数据库登录密码 数据库的驱动程序类型
Dbq
Provider Data Source
数据库的物理路径
OLE DB的数据提供者 OLE DB的数据库物理 路径
数据库连接字符串的类型
7.2 ADO概述
ADO的三个对象
ASP程序必须通过ADO(ActiveX Data Object) 组件才可以访问Access、SQL Server、Oracle 等数据库 ADO有三个主要对象:
Connection:用来创建ASP脚本与指定数据库 的连接 Command:对数据库执行命令,如查询、添加、 修改和删除等命令 RecordSet:用来得到从数据库中的表返回的记 录集
数据库
① 连接数据库
数据库
IIS
浏览器
通过ADO访问数据库的步骤
Set rs=conn.Execute("Select * From lyb")
② 创建记录集 rs("title") ③ 输出字段到页面
数据库
① 连接数据库
数据库
IIS
浏览器
通过ADO访问数据库的步骤
<h1><%= rs("title") %></h1>
4. 汇总查询
Select语句中提供了Count、Avg、Sum、Max 和Min共5个聚合函数,分别用来求记录总数、 平均值、和、最大值和最小值 下面的语句将查询表中总共有多少条记录: Select count(*) From lyb 下面的语句将查询所有记录的ID值的平均值,之 和和最大的ID号。 Select avg(id),sum(id),max(id) From lyb
1)从哪些表中查询 即:from 后的一项 2)要查询哪些列 即:select 后的一项 3) 要查询的条件 即: where 后的一项
一些常用的Select语句的例子
1)选取数据表中的全部数据 Select * from lyb (2)选取指定字段的数据(即选取表中的某几列) Select author, title from lyb (3)只选取前5条记录 Select Top 5 * from lyb 字符串两边 (4)选取满足条件的记录 要加单引号 Select * from lyb where ID>5 Select * from lyb where author='张三' Select author, title from lyb where ID Between 2 And 5 Select * from lyb where ID in (1, 3, 5)
7.3 Connection 对象
7.3.1 使用Open方法连接数据库
使用Connection对象之前先要建立该对象,语 法如下: Set conn = Server.CreateObject("ADODB.Connection") 建立Connection对象后,还需要利用 Connection对象的Open方法打开指定的数据库 conn.Open 数据库连接字符串 数据库连接字符串的形式:"参数1=值1; 参数2= 值2; …"
SQL字符串中含有变量的书写方法
Select * from link where name='搜狐' str="Select * from link where name='搜狐'" str="select * from link where name='"& webName &"'" 第一部分,字符串常量:"select * from link where name='" 第二部分,字符串变量:webName 第三部分,字符串常量:"'"
“%”表示与任何0个或多个字符匹配,“_”表示与任何 单个字符匹配。需要注意的是,在Access中直接写查 询语句时,“%”需换成“*”,“_”需换成“?”。
对查询结果进行排序
利用Order By子句可以将查询结果按照某种顺 序排序出来 下面的语句将按作者名的拼音字母的升序排列。 Select * From lyb order by author ASC 下面的语句将把记录按ID字段的降序排列。 Select * From lyb order by id DESC
其他查询
(1)使用Distinct关键字可以去掉查询结果中 重复的记录。如: /多条记录中有相同的作者则只显示一条 Select Distinct author From lyb (2)使用As关键字可以为字段名指定别名,如 将author字段名显示为“作者”: Select author As 作者, title As 标题 From lyb