第七章 视图与查询 返回目录
本章要点 视图 创建视图 使用视图更新数据 定制视图 查询 创建查询 定制查询 使用查询 返回目录
视图其实是从数据库表或视图中导出的“表”。与其他表不同,视图中的数据还是存储在原来的数据库表或视图中。因此可以把视图看做是一个“虚表”,尽管它是一个虚拟表,但是在数据浏览、查询和更新方面却有着广泛的应用。 视图是数据库中特有的,它依赖于某一数据库而存在,只有打开与视图相关的数据库才能创建和使用视图。
7.1 创建视图 根据视图中数据来源的不同,视图可以分为本地视图和远程视图。本节所讲的内容是本地视图的创建方法。 7.1.1 用视图设计器创建视图 创建视图有以下几种方法: 1. 方法一 利用菜单方式创建视图。操作步骤如下: (1) 打开数据库,进入“数据库设计器”窗口。 (2) 打开“文件”菜单,选择“新建”,进入“新建”窗口。 (3) 在“新建”窗口,选择“新建文件”,进入“添加表或视图”窗口。
(4) 在“添加表或视图”窗口,把创建视图所依据的表或视图添加到视图设计器中,再按“关闭”按钮,进入“视图设计器”窗口。 (5) 在“视图设计器”窗口,在“可用字段”列表框中,逐个单击可用的字段,把选中的字段添加到“选定字段”的对话框中。 (6) 当可出现在视图中的字段被选定后,再按“退出”按钮,进入视图“保存”窗口。 (7) 输入视图文件名,保存视图。 2. 方法二 使用项目管理器创建视图。操作步骤如下: (1) 打开项目,进入“项目管理器”窗口。
(2) 在“项目管理器”窗口,打开数据库,进入“数据库设计器”窗口。 (3) 以下步骤与方法一的2,3,4,5,6,7相同。 3. 方法三 使用数据库设计器创建视图。操作步骤如下: (1) 打开数据库,进入“数据库设计器”窗口。 (2) 打开“数据库”菜单,选择“新建本地视图”,进入“视图设计器”窗口。 (3) 以下步骤与方法一的5,6,7相同。
例7.1 创建单表视图 例7.2 创建多表表视图 说明:在创建视图时,可以使用数据库中的表,也可以不使用数据库中的表
图6.7
上例是利用数据库中的两个表,将其中部分字段重新组合,创建视图文件。在使用视图中的数据时,可视为对一个文件进行操作,再不用与两个表发生联系,这样大大减少了对多表数据进行操作的过程。 7.1.2 用视图向导创建视图 利用视图向导可以创建视图,操作步骤如下: (1) 打开数据库文件,进入“数据库设计器”窗口。 (2) 打开“新建”菜单,选择“新建文件”,进入“新建”窗口。 (3) 在“新建”窗口,选择“视图向导”按钮,进入“本地视图向导”步骤1窗口。
(4) 在“本地视图向导”步骤1窗口,选择表,再逐个选择出现在视图中的字段,再按“下一步”按钮,进入“本地视图向导”步骤2窗口。 (5) 在“本地视图向导”各分步骤窗口,填写适当的参数,再按“下一步”按钮,直到进入“本地视图向导”步骤5窗口。
(6) 在“本地视图向导”步骤5窗口,当选定“保存视图方式”按钮后,再按“完成”按钮,便完成创建本地视图操作。 例7.3利用向导创建视图
6.2 使用视图更新数据 视图尽管是一个“虚表”,但是可以利用视图更新源表中的数据。因为视图可以限定表中数据的使用范围,所以也可以限定更新数据的范围,这样就保证了源表中数据不会被破坏,由此提高数据维护的安全性。 利用视图更新源表中数据,一是要指定更新字段,二是要选择SQL Update发送更新,把视图的更新结果返回源表中。在“视图设计器”窗口中,选择“更新条件”选项卡,可以控制源表中数据更新数量、范围等。以下是一个利用视图进行更新源表中数据的例子。
例6.4 利用视图设计器,根据“主数据库”文件,建立视图“视图1”,并更新“主表2”中的“始发站”字段名下的数据。 操作步骤如下: (1) 打开“主数据库”,进入“数据库设计器”窗口。如图6.14所示。
图6.14
(2) 打开“数据库”菜单,选择“新建本地视图”,再选择“新建视图”,进入“视图设计器”窗口,同时弹出“添加表或视图”窗口。将表“主表2”、表“主表3”添加到“视图设计器”中。如图6.15所示。
图6.15
(3) 在“视图设计器”窗口,选择“字段”选项卡,再选择可用的字段。如图6.16所示。
(4) 按“退出”按钮,保存“视图1”,完成视图文件的创建,进行浏览。如图6.17所示。
(5) 打开“视图设计器”窗口,选择“更新条件”选项卡,在字段名对话框内,用“笔”符号,确定更新字段,再选择发送SQL Update,把视图的更新结果返回源表中。如图6.18所示。
图6.18
(6) 按“退出”按钮,结束更新条件的设置。 (7) 激活“主表2”,并浏览。如图6.19所示。
(8) 激活“视图1”,浏览并修改“视图1”中的“始发站”字段名下的数据,将所有128次的始发站由长春改为吉林。如图6.20所示。
(9) 再激活“主表2”,并浏览,“主表2”中的数据已被更新。如图6.21所示。
上例是利用数据库中的两个表的部分字段重新组合,先建立了一个视图文件,再设置视图更新条件,利用更新视图中的数据,更新源表中的数据。 7.3 定制视图 因为视图是“表”,所以在数据库环境下对表进行的操作,对视图同样适用。此外还可以通过“视图设计器”定制视图,确定字段个数、字段的输出顺序、设置字段的属性、选择所需记录以及排列顺序等,从而更方便合理地使用数据库中的数据。 7.3.1 视图设计器选项卡 在“视图设计器”窗口中,有多个供选择的“选项卡”。选择不同的“选项卡”,系统将提供不同的环境设置相应的参数。其中常用的“选项卡”的作用如下:
(1) “字段”选项卡可以控制视图中字段个数、字段的属性及字段输出顺序。 (2) “筛选”选项卡可以控制视图中记录个数。 (3) “排序依据”选项卡可以控制视图中记录输出顺序。 7.3.2 设置视图字段属性 在“视图设计器”窗口中,选择“字段”选项卡,按“属性”按钮进入“视图字段属性”窗口,在该窗口可以设置视图中各字段的标题、注释、有效规则等属性。 下面通过例子了解视图字段属性设置方法。
习题 1. 什么是视图? 2. 视图有什么优点? 3. 用视图文件可以修改表中数据吗? 4. 利用视图设计器建立一个视图文件,熟悉各个选项卡的使用。 5. 建立一个数据库“图书管理系统.DBC”。如图6.25所示。
图6.25
完成以下操作: (1) 创建一个表,定义其名为“学生基本情况”。 (2) 给表输入部分数据。 (3) 创建一个视图,定义其名为“视图1”。 (4) 浏览表的内容。 (5) 浏览视图的内容。 6. 建立一个数据库“图书管理系统.DBC”。如图6.26所示。
图6.26
完成以下操作: (1) 创建一个表,定义其名为“学生基本情况”并输入部分数据。 (2) 创建一个表,定义其名为“借书表”并输入部分数据。 (3) 将“学生基本情况”和“借书表”两个表建立“一对多”关联关系。 (4) 创建一个视图,定义其名为“视图2”。 (5) 分别浏览两个表的内容。 (6) 浏览视图的内容。 7. 建立一个数据库“图书管理系统.DBC”。如图6.27所示。
图6.27
完成以下操作: (1) 创建一个表,定义其名为“学生基本情况”并输入部分数据。 (2) 创建一个表,定义其名为“借书表”并输入部分数据。 (3) 创建一个表,定义其名为“进书表”并输入部分数据。 (4) 将“学生基本情况”和“借书表”两个表建立“一对多”关联关系。 (5) 将“学生基本情况”和“进书表”两个表建立“一对多”关联关系。 (6) 利用“学生基本情况”和“借书表”创建一个视图,定义其名为“视图3”。 (7) 利用“学生基本情况”和“进书表”创建一个视图,定义其名为“视图4”。
(8) 分别浏览各个数据库表中的数据内容。 (9) 分别浏览各个视图中的数据内容。
查 询 7.4 创建查询 7.5 定制查询 7.6 使用查询 习题
查询和视图一样,可以从已有的数据资源中提取数据,但是它不能更新数据。但由于查询结果的多样化,又使得查询被广泛应用。
7.4 创建查询 利用查询设计器和查询向导都可以创建查询。当确定了查询的数据来源后,可以通过下面几个步骤创建查询: 7.4 创建查询 利用查询设计器和查询向导都可以创建查询。当确定了查询的数据来源后,可以通过下面几个步骤创建查询: (1) 打开“查询设计器”或“查询向导”。 (2) 选择出现在“查询结果”中的字段个数。 (3) 选择出现在“查询结果”中的字段顺序。 (4) 选择出现在“查询结果”中的记录个数。 (5) 选择出现在“查询结果”中的记录顺序。 (6) 确定“查询结果”。
7.4.1 用查询设计器创建查询 以下通过举例,介绍如何利用查询设计器创建查询。 例7.4 创建单表查询,其名定义为“查询1”。 操作步骤如下: (1) 打开“文件”菜单,选择“新建”,进入“新建”窗口。 (2) 在“新建”窗口,选择“查询”,再按“新建文件”,进入“查询设计器”窗口,并弹出“添加表或视图”窗口。 (3) 在“添加表或视图”窗口,选择要使用的表“团员”。 (4) 在“查询设计器”窗口,选择可用字段。如图7.1所示。
图7.1
(5) 当表中可出现在查询中的字段被选定后,按“退出”按钮,进入“另存为”窗口。如图7.2所示。
(6) 在“另存为”窗口,输入查询文件的名“查询1”,按“确定”按钮,一个查询文件建立完成。 利用查询设计器不仅可以创建单表查询还可以创建多表查询。 例7.5 创建多表查询,其名定义为“查询2”。 操作步骤如下: (1) 打开数据库“主数据库”。如图7.3所示。
图7.3
(2) 打开“文件”菜单,选择“新建”,进入“新建”窗口。 (3) 在“新建”窗口,选择“查询”,再按“新建文件”,进入“添加表或视图”窗口。 (4) 在“添加表或视图”窗口,选择将要使用的表,进入“查询设计器”窗口。 (5) 在“查询设计器”窗口,选择可用字段。如图7.4所示。
图7.4
(6) 按“退出”按钮,进入“另存为”窗口,再输入创建查询文件名“查询2”,按“确定”按钮,一个查询文件建立完成。 7.1.2 用查询向导创建查询 以下通过举例,介绍如何利用查询向导创建查询。 例7.3 利用查询向导创建单表查询,其名定义为“查询3”。 操作步骤如下: (1) 在打开“文件”菜单,选择“新建”,进入“新建”窗口。 (2) 在“新建”窗口,选择“查询”,再按“向导”,进入“向导选取”窗口。如图7.5所示。
图7.5
(3) 在“向导选取”窗口,选择“查询向导”,再按“确定”按钮,进入“查询向导”各分步骤窗口,可根据需求选择合适参数。如图7.6所示。
图7.6(a)
图7.6(b)
图7.6(c)
图7.6(d)
图7.6(e)
(4) 在“另存为”窗口,输入查询文件名“查询3”,再按“保存”按钮,结束利用查询向导创建单表查询文件的操作。 若利用查询向导创建多表查询,除完成图7.6全部操作外,在进入“查询向导”步骤1窗口后,将相继出现“查询向导”步骤2窗口和“查询向导”步骤2a窗口。如图7.7所示。 用户可以根据具体问题选择适当的参数。
图7.7(a)
图7.7(b)
7.2 定制查询 上一节介绍了创建查询文件的一般操作,如果更充分地发挥查询的功能,还要在“查询设计器”窗口,对字段个数、字段的输出顺序、记录个数以及排列顺序等加以控制。在“查询设计器”窗口中,可根据以下常用的“选项卡”来定制查询。 (1) “字段”选项卡可以控制查询文件的字段个数和字段输出顺序。 (2) “筛选”选项卡可以控制查询文件的记录个数。 (3) “排序依据”选项卡可以控制查询文件的记录输出顺序。
7.3 使用查询 使用查询和使用视图一样,比使用表更方便、更快捷、更安全。查询虽然不能更新数据,但是查询的输出格式的多样化又是表和视图所不及的。使用查询就是确定查询结果的输出格式从而更好地运行查询。 7.3.1 查询去向的确定 在Visual FoxPro系统环境下,有以下7种不同的“查询去向”,分别决定了查询结果的输出格式。 (1) 浏览格式: 把查询结果送入浏览窗口。 (2) 临时表格式: 把查询结果存入一个临时的表中,可以对这一临时表进行操作。
(3) 表格式: 把查询结果存入一个表中,可以随意处理这个表。 (4) 图形格式: 把查询结果以图形形式输出。 (5) 屏幕格式: 把查询结果输出到屏幕上。 (6) 报表格式: 把查询结果以报表形式输出。 (7) 标签格式: 把查询结果以标签形式输出。 例7.4利用已有“查询3”,定制查询结果的输出格式。 操作步骤如下: (1) 打开“查询3”,进入“查询设计器”窗口。如图7.8所示。
图7.8
(2) 打开“查询”菜单,选择“查询去向”,进入“查询去向”窗口。如图7.9所示。
(3) 在“查询去向”窗口,选择“浏览”,再按“确定”按钮,查询结果已确定。 例7.5 利用已有“travel”数据库资源,创建一个查询文件,其名定义为“查询4”,并定制查询结果以图形方式输出。 操作步骤如下: (1) 打开数据库,进入“数据库设计器”窗口。 (2) 打开“文件”菜单,选择“新建”,进入“新建”窗口。 (3) 在“新建”窗口,选择“查询”,再按“新建文件”,进入“添加表或视图”窗口。 (4) 在“添加表或视图”窗口,选择要使用的表,进入“查询设计器”窗口。
(5) 在“查询设计器”窗口,选择可用字段。如图7.10所示。
(6) 打开“查询”菜单,选择“查询去向”,进入“查询去向”窗口。如图7.11所示。
(7) 在“查询去向”窗口,选择“图形”,再按“确定”按钮,查询去向已确定。 7.3.2 运行查询 7.3.2 运行查询 创建查询并确定查询去向后,对查询进行的下一个操作便是运行查询。运行查询的操作步骤如下: (1) 打开查询设计器。 (2) 打开查询菜单,选择运行查询。 例7.6 运行“查询3”。 操作步骤如下: (1) 打开“查询3”,进入“查询设计器”窗口。 (2) 打开“查询”菜单,选择“运行查询”选项,进入查询“浏览”窗口。如图7.12所示。
图7.12
例7.7 运行“查询4”。 操作步骤如下: (1) 打开“查询4”,进入“查询设计器”窗口。 (2) 打开“查询”菜单,选择“运行查询”选项,进入“图形向导”步骤2窗口。如图7.13所示。
图7.13
(3) 在“图形向导”步骤2窗口,定义图形的布局,即横、纵坐标的数据来源。再按“下一步”按钮,进入“图形向导”步骤3窗口。如图7.14所示。
图7.14
(4) “图形向导”步骤3窗口给出许多图形样式,可以根据需要选择其中之一,再按“下一步”按钮,进入“图形向导”步骤4窗口。如图7.15所示。
(5) 在“图形向导”步骤4窗口,输入输出图形的标题,再按“预览”按钮,进入“图形预览”窗口。如图7.16所示。
(6) 在“图形向导”步骤4窗口,按“完成”按钮,进入“另存为”窗口,再输入图形文件名,这一查询运行结果将以表单文件保存下来。
4. 利用查询设计器创建一个查询文件,熟悉各个选项卡的使用。 习题 1. 什么是查询? 2. 视图与查询有什么不同,各自有什么优点? 3. 查询有几种查询去向? 4. 利用查询设计器创建一个查询文件,熟悉各个选项卡的使用。 5. 创建一个查询文件。如图7.17所示。
图7.17
(3) 创建一个查询,定义其名为“表1查询1”。 完成以下操作: (1) 创建一个表,定义其名为“表1”。 (2) 给表输入部分数据。 (3) 创建一个查询,定义其名为“表1查询1”。 (4) 定义“查询去向”为临时表。 (5) 浏览“临时表”的内容。 6. 建立一个查询文件。如图7.18所示。
图7.18
(1) 创建一个表,定义其名为“表1”并输入部分数据。 (2) 创建一个表,定义其名为“表3”并输入部分数据。 完成以下操作: (1) 创建一个表,定义其名为“表1”并输入部分数据。 (2) 创建一个表,定义其名为“表3”并输入部分数据。 (3) 将“表1”和“表3”两个表建立“一对一”关联关系。 (4) 定义“查询去向”为表。 (5) 浏览表的内容。 7. 建立一个查询文件(表1查询2.QPR)如图7.19所示。
图7.19
完成以下操作: (1) 创建一个表,定义其名为“表2”并输入部分数据。 (2) 利用“表2”创建一个查询,定义其名为“表2查询”。 (3) 确定“查询去向”为图形。 (4) 运行查询。