Page 1
第四章 关系数据库标准语言 SQL及数据查询
1 .学习目标 * 掌握 SQL 语言的基本功能 * 使用 SQL 语言产生和修改数据库表 * 使用 SQL 语言操纵数据库数据2 .学习指南 * 通过档案表、课程表、选课表练习各种 SQL 语句操作 * 完成 P127 习题四 1 ~ 9 题,并将对应的 SQL 操作语句 保留在一个文件中,作为作业提交。3 .难点重点 * 掌握 SQL 语句的各种基本操作语句的格式和使用方法 , 包括带有各种集合函数、分组排序的查询操作; * 给定关系表和查询要求,会写出正确的 SQL 语句
1 .学习目标 * 掌握 SQL 语言的基本功能 * 使用 SQL 语言产生和修改数据库表 * 使用 SQL 语言操纵数据库数据2 .学习指南 * 通过档案表、课程表、选课表练习各种 SQL 语句操作 * 完成 P127 习题四 1 ~ 9 题,并将对应的 SQL 操作语句 保留在一个文件中,作为作业提交。3 .难点重点 * 掌握 SQL 语句的各种基本操作语句的格式和使用方法 , 包括带有各种集合函数、分组排序的查询操作; * 给定关系表和查询要求,会写出正确的 SQL 语句
Page 2
查询的建立及使用介绍有关查询的建立、修改、运行方法,利用查询快速检索需要的数据,创建和使用交叉表查询。
视图的创建及使用介绍有关视图的建立、运行方法,利用视图更新数据以及用查询、视图操作多个数据表。
Page 3
SELECT [ DISTINCT ] < 目标字段表 >
FROM 表名 1 [ ,表名 2] [ , … ]
[WHERE 表连接条件 [ AND 记录筛选条件 ] ]
[ GROUP BY 分组字段表 ]
[ HAVING 组过滤条件 ]
[ORDER BY 排序字段 1[ASC | DESC] [ 排序字段 2 … ]
]
SELECT 语法回顾
Page 4
查询及查询文件 查询及查询文件
查询是向一个数据表或视图发出检索信息的请求,从而获得满足条件的数据的过程。 VFP 中可以将查询请求用指定的名字保存成查询文件(扩展名为 .QPR ),以便重复使用。创建方法:
用查询向导建立 用查询设计器建立
Page 5
查询的作用查询的作用应用中通过运行查询文件快速检索存储在
表中或通过视图映射到表中的数据,查找满足条件的记录,还可以按需要将查找到的记录排序和分组,将查询结果显示出来,也可以保存到新建表中或以报表、图表形式输出。
也就是说,查询只能从数据源中检索出数据,不能更新源数据,可以将检索出的数据重新组织,再以多种形式输出。
浏览显示新建表
报表图形
数据源:表
Page 6
用查询向导建立查询用查询向导建立查询可用查询向导快速建立几种特殊用途
的查询文件和一般用途的查询文件。 创建中一般包含以下操作: 选择要包含在查询中的表和字段 设定表间关联的连接条件 (数据跨表
时 ) 设定记录筛选条件 设定查询结果的记录顺序 指定查询结果的输出方式
Page 7
向导生成查询步骤向导生成查询步骤 打开项目文件,如“示例 .pjx”选择“文件 (F)/ 新建 (N)” 命令选定“查询 (Q)” 选项,单击“向导(W)” 按钮选择“查询向导”,单击“确定”按钮
Page 8
向导生成查询步骤(向导生成查询步骤( 22 )) 步骤 1 :字段选取。选定数据库和表,选
取查询中需要的字段。步骤 2:为表建立关系。当查询的数据来自两个以上的表或视图时,需要设置表间的关联条件。两者有共同字段
步骤 3:字段选取,筛选记录。选取关联表中的记录,设定筛选条件。
步骤 4:排序记录。设定查询数据的排序字段。按“预览”看结果
Page 9
查询文件查询文件步骤 5 :完成。系统将生成查询文件,如查询文件命名为“查询 1” ,则在磁盘上会产生文件“查询 1.qpr” 。
Page 10
用查询设计器建立查询用查询设计器建立查询 用“查询设计器”建立查询的功能很强,应该很好的掌握。
查询的基础是 SQL SELECT 语句,只有真正理解了 SQL SELECT 才能设计好查询。
打开“查询设计器”的方法如下
1 .在主菜单“文件”的下拉菜单中选择“打开”,选定“ ***.PJX” 项目,进入项目管理器,从数据选项卡中选择“查询”按钮,并单击“新建”按钮,打开“查询设计器”建立查询。
2 .在主菜单“文件”的下拉菜单中选择“新建”,在新建对话框中选择“查询”按钮,并单击“新建”按钮,打开“查询设计器”建立查询。 3. 可以用 CREAT QUERY 命令打开“查询设计器” 建立查询。
Page 11
用查询设计器建立查询用查询设计器建立查询
启动查询设计器后, VFP 系统主菜单中会增加“查询 (Q)” 菜单项。可使用其子菜单项完成相关操作。
在查询设计器中利用查询设计器工具栏和选项卡同样可以完成查询的设计、修改、输出等操作。
Page 12
用查询设计器建立查询用查询设计器建立查询例:建立对“学生档案”的查询,要求查询学生的“学号”、“姓名”、“专业”、“课程号”、“课程名”、“成绩”字段的具体信息。结果要求按“成绩”字段的降序排列,并且选修的课程号只包括“ 1004” 和“ 1005” 。操作步骤: 从“项目管理器”中选择新建查询或从“主菜单”中选新建查询进入到查询设计器窗口
Page 13
用查询设计器建立查询用查询设计器建立查询
Page 14
用查询设计器建立查询用查询设计器建立查询
从“添加表和视图”窗口中依次选取“档案表”、“选课表”、“课程表”,选择完后关闭“添加表和视图”窗口。 建立三个表之间的关联关系。 从“ Available fields”窗口中选取所需要的字段,将它们添加到 “ selected fields” 窗口中。
Page 15
用查询设计器建立查询用查询设计器建立查询
Page 16
用查询设计器建立查询用查询设计器建立查询
选” Join”选项卡建立 “档案表、选课表、课程表”的联接关系。
Page 17
用查询设计器建立查询用查询设计器建立查询
选“ Filter”选项卡,筛选出选修的“ 1004”、“ 1005”的课程号。
Page 18
用查询设计器建立查询用查询设计器建立查询 选“ Order By”选项卡,给出了建立排序条件的选项,其中 “选课表 .课程号” 选择“Ascending”升序排序,“选课表 .成绩”选择“Descending”降序排序。
Page 19
用查询设计器建立查询用查询设计器建立查询
关闭该窗口,以选定的文件保存该查询文件,就完成了整个操作。
Page 20
选择“查询”菜单,再选“查看 SQL”,可以看到查询窗口完整的 SQL 语句:SELECT 档案表 .学号 , 档案表 .姓名 , ;档案表 .专业 ,选课表 .课程号 , 课程表 .课程名 ,;选课表 .成绩 ; FROM 学籍数据库 !档案表 ; INNER JOIN 学籍数据库 !选课表 ; ON 档案表 .学号 = 选课表 .学号 ; INNER JOIN 学籍数据库 !课程表 ; ON 选课表 .课程号 = 课程表 .课程号 ; WHERE 选课表 .课程号 = '1004'; OR 选课表 .课程号 = '1005'; ORDER BY 选课表 .课程号 , 选课表 .成绩 DESC
Page 21
使用查询设计器修改查询使用查询设计器修改查询任何时候使用查询设计器都可以修改已有的
查询或重新设计查询。常见的修改查询操作有:添加或移去表格 设置排序字段添加或移去字段 设置分组设置联接条件 保存查询文件设置筛选条件 改变查询结果输出方式查询设计器的功能很强,应熟练掌握。
Page 22
演示演示• 【例 4-35 】建立选修了“会计学”或“经
济学”学生的学号、姓名、专业、课程号、课程名、成绩的查询文件,并且按课程号升序排序,再按成绩降序排序。
Page 23
运行查询 运行查询
• 浏览查询结果打开查询设计器窗口,单击查询( Q )菜单中的运行查询( R)命令,在 Browse 窗口显示查询结果
• 指定查询结果输出方式选择查询( Q )菜单中的查询去向( Q )命令弹出查询去向对话框 ,选择相应的输出去向;也可单击查询设计器工具栏上的查询去向
• 运行查询选择查询( Q )菜单中的运行查询( R )命令,或在项目管理器中选定查询文件后单击运行按钮
Page 24
查询结果去向查询结果去向在 Visual FoxPro 中,查询去向有四种形式。使用的方
法是:选择 “查询”菜单中的“查询去向”
1.Browse :以浏览窗口的方式显示查询的结果(默认的输出 )
2 . Cursor :将查询的结果存放到一个临时表文件中。 3 . Table : 将查询的结果存放到 .dbf 文件中。
4. Screen :在当前屏幕显示查询结果。
Page 25
建立和使用本地视图
创建远程视图
使用视图更新数据
查询更新多个表
视图与数据更新
Page 26
视图及视图文件 视图及视图文件 • 视图是一个定制的虚拟表,其数据来源于数
据库中的一个或多个表(视图)。也就是说,视图不能独立地存在,只能含于已有的数据库中,创建视图必须先打开它赖以生存的数据库,不能直接通过新建文件类型对话框的模式进行。
• 视图以视图文件(扩展名为 .VUE )保存在数据库中,该文件中只保存了视图的定义和关系,真正的数据全在表中。因此,只有打开数据库后才能使用包含在其中的视图。
Page 27
视图与查询视图与查询视图与查询有很多相似之处,查询只能显示检索到的记录而不允许更改,而在视图中则可以对数据源表进行更新。
获取一组只读的查询结果时,应使用查询并将其保存到扩展名为 .QPR 文件中 。
抽取表中的某些记录,然后将更新结果保存到源表中,需要使用视图。视图可以从本地表、其他视图、服务器远程数据源上的表来创建。
Page 28
视图种类视图种类• 本地视图:视图的数据源表存储在本机或本地服务器上的数据库中。
•远程视图:视图的数据源表存储在远程网络服务器上的数据库中,通过 ODBC访问远程数据库。因此,远程视图是处于网络中的计算机访问远程数据源表的基本途径。
Page 29
创建本地视图 创建本地视图 本地视图的创建方法与查询的创建方法基本
相同,同样可以使用本地视图向导或视图设计器建立 。
1. 在“项目管理器”中先创建或打开视图依赖的数据库,使“数据”卡选项显示所有数据库组件
2. 选定“本地视图”,单击“新建( N )”按钮,单击“视图向导( W )”按钮 ,打开本地视图向导对话框,其后的步骤 1 到步骤 5与查询向导中的内容一样。我们不再嗷述
Page 30
用视图设计创建用视图设计创建
1.在添加表或视图对话框中,选择所需要的表或视图,再选取建立视图所需要的字段,并设置需要的各种属性,就可完成视图的建立。
2.在项目管理器数据选项卡中选择本地视图,单击新建 (N)... ,选择新建视图(N) ;
Page 31
1. 打开“项目 1”, 选择“本地视图”—选“新建” ,进入新建视图对话框。
举例说明本地视图的建立
2. 选择“新建视图 (N)”,进入新建视图对话框3.选择建视图所需要的表或视图 ,在 “ fields” 中选取需要的字段 , 并设置各种属性 , 关闭该对话框 , 保存该视图 , 完成整个操作。 下面举例说明:
Page 32
远程视图远程视图通过远程视图,用户无须将所有需要的远程记录下载到本地机即可提取远程 ODBC服务器上的数据,并在本地操作选定的记录,然后将更改或添加的值回送到远程数据源中 。连接远程数据的方法:一种是直接访问已注册的 ODBC 数据源,另一种则是使用“连接设计器”建立自定义连接。
Page 33
创建远程视图创建远程视图1. 建立同数据源的连接
打开数据库后,在数据库设计器中点击鼠标右键,并选择新建远程视图 ,单击新建视图按钮;在选择连接或数据源对话框中,选取可用的数据源选项。如果已有定义并保存过的连接,也可选取连接选项 选择指定的数据源或连接并单击确定按钮 在设置连接对话框中选择数据源的位置 在打开对话框中,选定位于数据源中的表,远程视图的视图设计器就被打开了
2. 与本地视图的创建 方法相同
Page 34
视图的更新视图的更新 视图是根据基本表派生出来的,所以又把它称为虚拟表。在数据库管理系统中,灵活的使用视图,能够有效的解决一些较为复杂的问题,利用视图还可以进行数据更新。而查询不能进行数据更新。 下面举例说明数据更新的方法: 1. 指定更新的表 2. 指定更新的字段 ( 在“字段名”列表框中列出了与更新有关的字段,在字段名左侧有两列标志,“钥匙”表示关键字,“铅笔”表示更新 ) 3. 选用 “ Update using” 更新方法
Page 35
作业: 1、本章中例题 2、本章习题
3 、本章实验