江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
5.1 查询与视图

 

考点1 查询设计器

  1查询的概念
  查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询结果。查询以扩展名为QPR的文件保存在磁盘上的,这是一个文本文件,它的主体是SQL SELECT语句。
  2查询的建立
  建立查询可以使用“查询设计器”,但它的基础是SQL SELECT语句。建立查询的方法有以下几个方面 。
  (l)可以利用CREATE QUERY命令打开查询设计器建立查询。
  (2)可以利用“新建”对话框打开查询设计器建立查询。
  (3)可以在项目管理器的“数据”选项卡中打开查询设计器建立查询。
  (4)可直接编辑QPR文件建立查询。
  建立查询时,首先进入如图6-1所示的界面选择用于建立查询的表或视图,选择表或视图后,单击“添加”按钮。最后单击“关闭”按钮,进入如图6-2所示的查询设计器界面。


 
    图6-1 为查询选择表或视图
  查询设计器中的各选项卡和SQL SELECT语句的各短语是相对应的,对应关系如下。
  “字段”――SELECT短语,用于指定要查询的数据
  “连接”――JOIN ON短语,用于编辑连接条件。
  “筛选”――WHERE短语,用于指定查询条件。
  “排序依据”――ORDER BY短语,用于指定排序字段和排序方式。
  “分组依据”――GROUP BY短语和HAVING短语,用于分组。


 
             图6-2 查询设计器
  3查询的运行
  运行查询有下列两种方法。
  (1)可以在项口管理器的“数据”选项卡中,展开“查询”选项,然后选择要运行的查询文件,单击“运行”按钮,可查看查询结果。
  (2)在命令窗门执行命令DO QueryFile。
  注意:此处的查询文件名是全名,包括扩展名QPR。
  4查询去向
  设计查询的目的不只是完成一种查询功能,在查询设计器中可以根据需要为查询输出定位查询去向。通过“查询”菜单卜的“查询去向”,或在“查询设计器”工具栏中单击“查询去向”按钮。“查询去向”对话框如图6-3所示

 
            图6-3 “查询去向”对话框
  各去向的含义如下。
  (1)浏览:在“浏览" (BROWSE)窗口中显示查询结果,这是默认的输出去向。
  (2)临时表:将查询结果存储于一个命名的临时只读表中。
  (3)表:将结果保存在一个命名的数据表文件中。
  (4)图形:查询结果可以用于Microsoft Graph。
  (5)屏幕:在Visual FoxPro主窗口或当前活动输出窗口中显示查询结果。
  (6)报表:将结果输出到一个报表文件。
  (7)标签:将结果输出到一个标签文件。

小提示:
  在7种输出去向中,只有“浏览”和“屏幕”两种输出去向才能直接看到查询结果。

6.2 视图

考点2 视图的概念与建立

  1视图的概念
  视图是操作表的一种手段,通过视图可以查询表,也可以更新表。视图是根据表定义的,因此视图基于表,而视图可以使应用更灵活,因此它又超越表。视图是数据库中的一个特有功能,只有在包含视图的数据库打开时才能使用。
   视图兼有“表”和“查询”的特点,与查询相类似的地方是可以用来从一个或多个相关联的表中提取有用信息;与表类似的地方是可以用来更新其中的信息,并将结果永久性保存在磁盘上。
  2视图的建立
  (l)用CREATE VIEW命令打开视图设计器建立视图。
  (2)利用“新建”对话框打开视图设计器建立视图。
  (3)在项目管理器的“数据”选项卡中打开视图设计器建立视图。
  (4)利用SQL命令CREATE VIEW... AS...建立视图。
  3视图设计象
  视图设计器(如图6一所示)与查询设计器基本上一样,主要有以下几点不同。
  (1)视图的结果保存在数据库中,在磁盘上找不到类似的文件。
  (2)视图可以用来更新数据,因此在设计器中多了一个“更新条件”选项卡。
  (3)在视图中没有“查询去向”的问题。


 
图6-4 视图设计器

考点3 远程视图与连接

  为了建立远程视图,必须首先建立连接远程数据库的“连接”,“连接”是Visual FoxPro数据库中的一种对象。
  1定义数据源和连接
  数据源一般是ODBC数据源,开放数据库互连ODBC是一种连接数据库的通用标准。为了定义ODBC数据源,必须首先安装ODBC驱动程序。
  2建立连接
  建立连接的方法有以下几种。
  (1)用CREATE CONNECTION命令打开“连接设计器”,或完全用命令方式建立连接。
  (2)通过“新建”对话框建立连接。
  (3)在项目管理器的“数据”选项卡中建立连接。
  3设计远程视图
  利用数据源或连接建立的远程视图的SQL语法要符合远程数据库的语法,例如,SQL Server的语法和Visual FoxPro的语法就有所区别。

考点4 视图与数据更新

  视图是根据基本表派生出来的,所以把它叫做虚拟表为了通过视图能够更新基本表中的数据,需要在视图设计器的“更新条件”选项卡中的左下角选中“发送SQL更新”复选框。
  1指定可更新的表
  如果视图是基于多个表的,默认可以更新“全部表”的相关字段,如果要指定只能更新某个表的数据,则可以通过“表”下拉列表框选择表
  2指定可更新的字段
  在“字段名”列表框中列出了与更新有关的字段,在字段名左侧有两列标志,“钥匙”表示关键字,“铅笔”表示更新通过单击相应列可以改变相关的状态,默认可以更新所有非关键字字段,并且通过基本表的关键字完成更新,即Visual FoxPro用这些关键字字段来唯一标识那些已在视图中修改过的基本表中的记录建议不要改变关键字的状态,不要试图通过视图来更新基本表中的关键字字段值,如有必要,可以指定更新非关键字字段值
  3检查更新的合法性
  如图6-1所示,“SQL WHERE子句包括”框中的选项决定哪些字段包含在UPDATE或DELETE语句的WHERE子句中,Visual FoxPro正是利用这些语句将在视图中修改或删除的记录发送到远程数据源或基本表中,WHERE子句就是用来检查自从提取记录用于视图中后,服务器上的数据是否已经改变。
  “SQL WHERE子句包括”框中各选项的含义如下。
   (l)关键字段:当基本表中的关键字字段被改变时,更新失败。
   (2)关键字和可更新字段:当基本表中任何标记为可更新的字段被改变时,更新失败。
   (3)关键字和已修改字段:当在视图中改变的任一字段的值在基本表中已被改变时,更新失败。
  (4)关键字和时间戳:当远程表上记录的时间戳在首次检索之后被改变时,更新失败。
  4使用更新方式
  “使用更新”框的选项决定当向基本表发送SQL更新时的更新方式。
  (1)SQL DELETE然后INSERT:先用SQL DELETE命令删除基本表中被更新的旧记录,再用SQL INSERT命令向基本表中插入更新后的记录。
  (2)SQL UPDATE:使用SQL UPDATE命令更新基本表。

考点5 使用视图

  视图建立后,不但可以用它来显示和更新数据,而且可以通过调整它的属性来提高性能,它的使用类似于表。
  1视图操作
  (1)在数据库中使用USE命令打开或关闭视图。
  (2)在“浏览器”窗口中显示或修改视图中的记录。
  (3)使用SQL语句操作视图。
  (4)在文本框、表格控件、表单或报表中使用视图作为数据源。
  2使用视图
  视图一经建立就基本可以像基本表一样使用,适用于基本表的命令基本都可以用于视图。比如在视图上也可以建立索引,此索引当然是临时的,视图一关闭,索引自动删除,多工作区时也可以建立联系等。但视图不可以用MODIFY STRUCTURE命令修改结构。因为视图毕竟不是独立存在的基本表,它是由基本表派生出来的,只能修改视图的定义。

小提示:
  查询与视图的区别是:查询可以定义输出去向,可以将查询的结果灵活地应用于表单、报表、图形等各种场合,但是利用查询不可以修改数据;而利用视图可以修改数据,可以利用SQL将对视图的修改发送到基本表,特别是对于远程表的操作,利用视图是非常有效的。