《数据库应用技术》PPT课件.ppt

上传人:sh****n 文档编号:7432398 上传时间:2020-03-21 格式:PPT 页数:60 大小:1.44MB
返回 下载 相关 举报
《数据库应用技术》PPT课件.ppt_第1页
第1页 / 共60页
《数据库应用技术》PPT课件.ppt_第2页
第2页 / 共60页
《数据库应用技术》PPT课件.ppt_第3页
第3页 / 共60页
点击查看更多>>
资源描述
1 第10章数据库应用基础 10 1数据库概述10 2VB数据库访问10 3记录集对象10 4综合应用 10 1数据库概述 1 数据库 是指一组排列成易于处理或读取的相关信息 它是由一个或多个表对象组成的集合 这有些类似于Excel的工作簿和工作表 根据数据模型 即实现数据结构化所采用的联系方式 数据库可以分为层次数据库 网状数据库和关系数据库 10 1 1关系型数据库模型 关系型数据库模型将数据用表的集合来表示 通过建立简单表之间的关系来定义结构 1 记录 行 每张二维表均由若干行和列构成 其中每一行称为一条记录2 字段 列 二维表中的每一列称为一个字段 每一列均有一个名字 称为字段名 各字段名互不相同3 主键 关系数据库中的某个字段或某些字段的组合定义为主键 每条记录的主键值都是唯一的 这就保证了可以通过主键唯一标识一条记录 10 1 2使用SQL查询数据库 结构化查询语言 StructureQueryLanguage SQL 是操作关系数据库的标准语言通过SQL命令 可以从数据库的多个表中获取数据 也可对数据进行更新操作用户提出一个查询 数据库返回所有与该查询匹配的记录 SQL的主要语句 SELECT语句 SELECT语句的基本语法形式SELECT字段表FROM表名WHERE查询条件GROUPBY分组字段HAVING分组条件ORDERBY字段ASC DESCSELECT目标表达式列表FROM表名WHERE查询条件GROUPBY分组字段HAVING分组条件ORDERBY排序关键字段ASC DESC它包含4部分 其中SELECT和FROM子句是必须的 通过使用SELECT语句返回一个记录集 例在学生基本情况表中查询物理系的学生情况 SELECT FROM基本情况WHERE专业 物理 SELECT语句 输出表达式 目标表达式为查询结果要显示的字段清单 字段间用逗号分开 数据的显示顺序由字段清单的顺序决定 可用星号 代表所有字段 可用AS短语指定字段别名 可通过构造表达式对原始数据进行复杂的运算处理 产生查询结果 例如 根据出生年月计算每个学生的年龄SELECT姓名 Year Date Year 出生年月 AS年龄FROM基本情况 SELECT语句 查询条件 WHERE子句用于限制记录的选择例如 查询1985 01 01到1986 12 31之间出生的学生 SELECT FROM基本情况WHERE出生年月BETWEEN 1985 01 01 AND 1986 12 31 要枚举出若干项进行查询 使用运算符IN例如 查询物理系和数学系的学生数据 SELECT FROM基本情况WHERE专业IN 物理 数学 等价于 SELECT FROM基本情况WHERE专业 物理 OR专业 数学 复合条件 如查询数学和英语成绩均不及格的学生信息SELECT FROMscoreWHERE数学 60AND英语 60 SELECT语句 合计函数 合计函数用于对记录集进行统计 例如 统计物理系学生的人数 SELECTCOUNT AS学生人数FROM基本情况WHERE专业 物理 COUNT 在统计时包含值为空值的记录COUNT 表达式 统计时忽略表达式值为空值的记录 SELECT语句 分组 GROUPBY子句将指定字段列表中有相同值的记录合并成一条记录 例如 计算每个学生各门课程平均分 SELECT学号 AVG 成绩 AS平均分FROM成绩表GROUPBY学号要对分组后的数据进行过滤 可在GROUPBY子句后结合HAVING子句在分组中选择 例如 查询平均分在80分以上的学生 SELECT学号 AVG 成绩 AS平均分FROM成绩表GROUPBY学号HAVINGAVG 成绩 80 SELECT语句 排序 ORDERBY子句决定了查询结果的排列顺序在ORDERBY子句中 可以指定一个或多个字段作为排序关键字 ASC选项代表升序 DESC代表降序 例如查询学生成绩表中的所有数学成绩及格的学生信息 并将查询结果按数学成绩降序排列SELECT FROMscoreWHERE数学 60ORDERBY数学DESC SELECT语句图解 SELECT语句 多表连接 若查询的数据分布在多个表中 则必须建立连接查询 SELECT目标表达式列表FROM表1 表2WHERE表1 字段 表2 字段例如 学生成绩表中只有学号 如何在查看学生成绩的同时能够直观地看到学生姓名 这就要在两表之间建立连接 SQL语句如下 SELECT基本情况 姓名 成绩表 FROM基本情况 成绩表WHERE成绩表 学号 基本情况 学号 10 2VB数据库访问 10 2 1ADO数据控件使用基础ADO ActiveXDataObject 数据访问接口数据库应用程序引例例10 1设计一个窗体 用DataGrid控件显Student mdb数据库中 基本情况 表的内容 ADO数据控件使用 VB采用ADO ActiveXDataObjects 数据访问技术 编写本程序 需要完成以下工作 在窗体上添加ADO数据控件使用ADO连接对象建立与数据提供者之间的连接使用ADO命令对象操作数据源 从数据源中产生记录集并存放在内存中建立记录集与数据绑定控件的关联 在窗体上显示数据DataGrid控件是一种类似于电子表格的数据绑定ActiveX控件 MicrosoftDataGridControl6 0 需要配合ADO控件一起使用 它用若干行 列来表示Recordset对象的记录和字段 数据源连接设置操作 右单击ADO控件 选择快捷菜单ADODC属性命令 打开ADO控件属性页窗 选择提供程序 选择提供程序 指定访问的数据库 指定要访问的数据库文件 连接对象重要属性 1 连接对象最重要的属性是ConnectionString 它是一个字符串 包含了用于与数据源建立连接的相关信息典型的ConnectionString属性值如下 Provider Microsoft Jet 4 0OLEDBProvider DataSource Student mdbProvide 指定连接提供程序的名称 DataSource 用于指定要连接的数据源文件 VB数据库访问过程 2 CommandType 指定获取记录源的命令类型 3 RecordSource属性RecordSource确定具体可访问的数据来源 这些数据构成记录集对象Recordset 该属性值可以是数据库中的单个表名 也可以是使用SQL查询语言的一个查询字符串 例 要指定记录集对象为Student mdb数据库中的 基本情况 表 则设置RecordSource 基本情况 若要用所有物理专业的学生数据构成记录集对象 则设置RecordSource Select From基本情况Where专业 物理 3 ADO数据控件的其他属性 事件和方法 1 Recordset 记录集 对象 记录集 对象描述来自数据表或命令执行结果的记录集合 记录集对象中的每个字段值用Recordset Fields 字段名 获得 2 BOFAction和EOFAction属性BOF 当前记录位置位于Recordset对象的第一个记录之前EOF 当前记录位置位于Recordset对象的最后一个记录之后 3 Refresh方法 建立或重新显示与Data控件相连接的数据库记录集 当在运行状态改变ADO数据控件的数据源连接属性后必须使用Refresh方法激活这些变化例 记录集由 基本情况 改为 成绩表 Adodc1 RecordSource 成绩表 Adodc1 Refresh 4 WillMove和MoveComplete事件 当用某种方法改变记录集的指针使其从一条记录移到另一条记录 产生WillMove事件MoveComplete事件发生在一条记录成为当前记录后 它出现在WillMove事件后 数据访问过程 应用程序通过连接对象与数据源建立连接 不同类型的数据库使用各自的连接提供程序 命令对象发出SQL命令从数据源中获取数据数据集对象用来保存所查询到的数据记录应用程序对记录集进行操作记录集表示内存中来自基本表或命令执行结果的集合 也由记录 行 和字段 列 构成 可以把它当作一个数据表来进行操作 10 2 2数据绑定 数据绑定是一个过程 即在运行时自动为与记录集中的元素关联的控件设置属性 以便通过控件显示数据集中的数据 数据绑定 Windows窗体有简单数据绑定和复杂数据绑定简单数据绑定简单数据绑定 将控件绑定到单个数据字段 每个控件仅显示数据集中的一个字段值 最常用的简单数据绑定是将数据绑定到文本框和标签在设计或运行时设置控件属性建立绑定 DataSource 指定ADO数据控件DataField 设置记录集中有效的字段 简单数据绑定 例10 2设计一个窗体 用以浏览Student mdb数据库中基本情况表的内容界面设计ADO数据控件3个文本框2个组合框5个标签控件 建立连接和产生记录集1 选中ADO数据控件 单击右键 ADODC属性 打开属性页 使用连接字符串 选Microsoft Jet 4 0OLEDBProvider2 单击下一步 选择数据库文件 测试连接3 在属性页中单击 记录源 命令类型选2 表名称选择 设置绑定属性1 将文本框 组合框的DataSource属性设置为Adodc12 数据显示格式通过DataFormat属性改变3 将文本框 组合框的DataField选择4 若将ADO控件的EofAction属性设置为2 则应用程序具有添加新记录的功能 复杂数据绑定 复杂数据绑定允许将多个数据字段绑定到一个控件 同时显示记录源中的多行或多列 支持复杂数据绑定的常用控件 DataGrid数据网格MSHFlexGrid数据网格DataList数据列表框DataCombo数据组合框 复杂数据绑定 例10 3复杂数据绑定的操作过程界面设计 ADO数据控件 DataGrid 2个命令按钮建立连接和产生记录集 Adodc1控件记录源选 基本情况 或 成绩表 为默认值DataGridDataSource属性设置为Adodc1数据绑定本例DataGrid控件要绑定不同的表 故需要通过代码设置控件的DataSource属性 程序代码PrivateSubCommand1 Click Adodc1 RecordSource 基本情况 Adodc1 RefreshEndSubPrivateSubCommand2 Click Adodc1 RecordSource 成绩表 Adodc1 RefreshEndSub 例10 4使用SQL语句选择数据表部分数据构成记录集 在网格上绑定部分字段 需要对数据网格布局进行编辑Adodc1控件记录源 命令类型选8 adCmdUnknown 在命令文本框内输入 Select from基本情况Where性别 男 鼠标右击DataGrid 选检索字段 点击是将表中字段装载到DataGrid控件中 10 3记录集对象 10 3 1浏览记录集 1 AbsoloutPostion属性返回当前记录指针值 从1到Recordset对象所含记录数 第n条记录的AbsoloutPostion属性值为n2 BOF和EOF的属性BOF判定记录指针是否在首记录之前EOF判定记录指针是否在末记录之后如果BOF和EOF的属性值都为True 则记录集为空若当前记录指针值位于BOF AbsoloutPostion属性返回AdPosBOF 2 若当前记录指针值位于EOF AbsoloutPostion属性返回AdPosEOF 3 记录集为空 AbsoloutPostion属性返回AdPosUnknown 1 3 RecordCount属性对Recordset对象中的记录计数 该属性为只读属性PrivateSubAdodc1 MoveComplete Adodc1 Caption Adodc1 Recordset AbsolutePosition Adodc1 Recordset RecordCountEndSub可以在数据控件的标题区显示当前记录的序号和记录总数 4 Find方法在Recordset对象中查找与指定条件相符的第一条记录 并使之成为当前记录 如果找不到 则记录指针指在记录集末尾 Recordset Find搜索条件 位移 搜索方向 开始位置例 搜索条件是一个字符串Adodc1 Recordset Find 学号 50102 或者mt 50102 Adodc1 Recordset Find 学号 mt 若为数值类型则不加单引号使用Like运算符Adodc1 Recordset Find 学号Like 50 5 Move方法组Move方法可代替对数据控件对象的4个箭头按钮的操作遍历整个记录集 1 MoveFirst方法移至第1条记录 2 MoveLast方法移至最后一条记录 3 MoveNext方法移至下一条记录 4 MovePrevious方法移至上一条记录 5 Move n 方法向前或向后移n条记录 记录集属性方法小结 例10 5用命令按钮代替数据控件对象的4个箭头按钮的功能 使用Find方法查找记录 例10 2的基础上 PrivateSubCommand1 Click IndexAsInteger SelectCaseIndexCase0Adodc1 Recordset MoveFirstCase1Adodc1 Recordset MovePreviousIfAdodc1 Recordset BOFThenAdodc1 Recordset MoveFirstCase2Adodc1 Recordset MoveNextIfAdodc1 Recordset EOFThenAdodc1 Recordset MoveLastCase3Adodc1 Recordset MoveLastCase4DimmnoAsStringmno InputBox 请输入学号 查找窗 Adodc1 Recordset Find 学号like mno 1IfAdodc1 Recordset EOFThenMsgBox 无此学号 Adodc1 Recordset AbsolutePosition 提示 EndSelect 10 3 2记录集的编辑 1 数据编辑方法记录集中数据的增 删 改涉及到4个方法 AddNew方法 在记录集中增加入一个新行Delete方法 删除记录集中的当前记录Update方法 确定修改并保存到数据源中CancelUpdate方法 取消未调用Update方法前对记录所做的所有修改 增加新记录 2 增加新记录 1 调用AddNew方法增加一条空记录 2 给新记录各字段赋值 可以通过绑定控件直接输入或使用程序代码给字段赋值 格式为 Recordset Fields 字段名 值 3 调用Update方法 确定所做的添加 将缓冲区内的数据写入数据库 删除记录 3 删除记录 1 定位被删除的记录使之成为当前记录 2 调用Delete方法 3 移动记录指针注意 使用Delete方法当前记录立即删除 不加任何的警告或者提示 删除一条记录后 绑定控件仍旧显示该记录的内容 因此 必须移动记录指针刷新绑定控件 修改记录 4 修改记录当改变数据项的的内容时 ADO自动进入编辑状态 在对数据编辑后 只要改变记录集的指针或调用Update方法 即可确定所做的修改 Adodc1 Recordset AddNew增加记录 数据库 UpData 填入新数据 编辑记录删除记录给各字段赋值调用Delete方法调用Update方法移动记录指针 数据修改小结 例11 6在例10 5的基础上加入 新增 删除 更新 放弃 和 结束 5个按钮 通过对按钮的编程建立增 删 改功能 PrivateSubCommand2 Click IndexAsInteger DimaskAsIntegerSelectCaseIndexCase0Adodc1 Recordset AddNewCase1ask MsgBox 删除否 vbYesNo Ifask 6ThenAdodc1 Recordset DeleteAdodc1 Recordset MoveNextIfAdodc1 Recordset EOFThenAdodc1 Recordset MoveLastEndIfCase2Adodc1 Recordset UpdateCase3Adodc1 Recordset CancelUpdateCase4EndEndSelectEndSub 10 3 3查询与统计 通过SQL语句从数据源中获取信息 查询条件由Select语句的Where短语构成 使用And与Or运算符组合出复杂的查询条件 模糊查询使用运算符Like 百分号 代替任意不确定的内容 用下划线 代替一个不确定的内容 例如 姓名Like 张 将查询所有张姓的人员姓名Like 张 将查询张姓两个字的人员 例10 7根据输入的专业名称 在网格内显示Student mdb数据库中该专业所有学生信息设置ADO数据控件 DataGrid 1个命令按钮 标签 文本框 PrivateSubCommand1 Click IfText1 ThenAdodc1 RecordSource select from基本情况where专业 mlink mlink DataSource mpath Student mdb Adodc1 ConnectionString mlinkAdodc1 CommandType adCmdUnknownEndSub 例10 8使用数据列表框或数据组合框提供专业名称 实现查询设置2个ADO数据控件 DataGrid控件 DataList控件 PrivateSubDataList1 Click Adodc1 RecordSource select from基本情况where专业 mlink mlink DataSource mpath Student mdb Adodc1 ConnectionString mlinkAdodc1 CommandType adCmdUnknownEndSub 例10 9使用SQL的函数和分组功能 统计各专业的人数 年龄分布 PrivateSubCommand1 Click Adodc1 RecordSource Select专业 count as人数from基本情况groupby专业 Adodc1 RefreshEndSubPrivateSubCommand2 Click Adodc1 RecordSource Selectyear 出生年月 as出生年月 count as人数from基本情况groupbyyear 出生年月 Adodc1 RefreshEndSubPrivateSubForm Load Dimmpath mlink mpath App PathIfRight mpath 1 Thenmpath mpath mlink Provider Microsoft Jet OLEDB 4 0 mlink mlink DataSource mpath Student mdb Adodc1 ConnectionString mlinkAdodc1 CommandType adCmdUnknownEndSub 10 3 4BLOB数据处理 二进制大型对象 BinaryLargeObject BLOB 是指任何需要存入数据库的随机大块字节流数据 例如图形或声音文件 数据库中存放BLOB的字段必须是二进制类型 在Access中为OLE对象 在ADO中如何处理BLOB类型的数据 把图形作为数据库的一个字段值存放在数据库 并能显示图形数据 BLOB数据处理 1 AppendChunk方法将BLOB数据写入数据库语法格式 ADO对象 Recordset Fields 字段 AppendChunkData用二进制访问方式打开BLOB数据文件定义一个与文件长度相同大小的字节型数组将文件保存到数组使用ADO对象的AppendChunk方法写入数据库2 GetChunk方法从数据库中读出BLOB数据语法格式 变量 ADO对象 Recordset Fields 字段 GetChunk Size 例10 10选择指定图形文件将数据写入到数据库 在浏览记录时显示照片 在窗体上设置ADO数据控件 命令按钮 图像控件 通用对话框 文本框 标签控件 PrivateSubCommand1 Click Dimstrb AsByteCommonDialog1 ShowOpenOpenCommonDialog1 FileNameForBinaryAs 1Image1 Picture LoadPicture CommonDialog1 FileName fl LOF 1 ReDimstrb fl Get 1 strbAdodc1 Recordset Fields 照片 AppendChunkstrbClose 1EndSub 例10 11设计一个多媒体信息管理系统 要求能将多媒体数据保存在数据库 具有记录的增加 删除 统计和多媒体信息重现等功能 例10 12设计一个飞行航班信息查询系统 要求具有记录的增加 编辑 删除 查询等功能
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!