2019最新第4章查询和视图0物理
第4章 查询与视图

第4章查询与视图在软件开发中经常用到数据的查询,如学生成绩管理,人事档案,图书检索等软件,查询的准确、速度直接影响软件的质量、效率、应用及维护,VFP开发工具用三个途径解决查询问题。
第一个途径就是运用SQL语句查询,第二个途径就是用查询设计器建立快速查询,第三个途径是用视图设计器建立视图,实现快速查询。
4.1 查询的一般概念4.1.1 查询VFP中的查询使用查询设计器,从数据库表或自由表中获取有用数据,经过对查询条件、查询要求的设置,形成一个*.QPR文件,通过DO命令来执行。
4.1.2 视图VFP中的视图是用视图设计器从数据库表中获取有用数据,与查询一样经过查询条件、查询要求的设置形成视图。
视图是以视图名的形式存在数据库中。
视图中数据的更新可以使源表相应数据更新。
视图的执行要在数据库中执行。
4.1.3 SQL查询SQL是关系数据库的国际标准语言。
为此,世界上许多语言开发商都将SQL 语言作为数据库对数据存取的共同标准接口。
有的已将SQL语言嵌入到语言开发工具中,使得人们在软件开发时运用数据库是极为方便。
之所以SQL能成为国际标准语言,主要原因它是结构化的查询语言。
它的综合统一体现在它集数据定义语言、数据操纵语言、数据控制语言的功能为一体。
再就是它高度的非过程化,无需一步步地告诉计算机如何做,只要指名怎么做系统就可以自动完成。
SQL 语言简单便于掌握,特别是在查询复杂可视化工具无法解决时,SQL可以解决。
4.2 SQL语句4.2.1 SELECT查询语句1.基本语句格式:SELECT <行列限制表达式> [INTO DBF | TABLE<新表名>] FROM <表名列表> [WHERE <条件>]功能:从表名列表的表中查找符合条件的,按<行列限制表达式>的形式显示。
若选[INTO DBF | TABLE<新表名>]子句,查询结果存入新表。
vfp6第4章查询和视图

FROM子句用于指定数据源表, WHERE子句用来设置筛选的条件, 使用ORDER BY子句实现排序(该子句中的“DESC”指以降序来 排序,默认为升序)。
4.2
查询的创建和使用
创建基于多表的查询 当需要获取存储在两个或更多表或视图中的信息时, 只要把所有有关的表或视图添加到查询中,并用公共字 段联接它们。多个表可以是库表、自由表或视图的任意 组合。 用查询设计器创建多表查询的方法与单个表的方法基 本一样。不同之处在于: (1) 表的个数是两个或两个以上 (2) 多个表之间需建立联接条件
4.2
查询的创建和使用
在建立联接条件时,要注意联接条件两边 字段有左右之分。如果两个表是一对多关系, 一般“一”表的字段在左,“多”表的字段在 右。 注意:涉及三个表或视图的查询,添加数据源的 次序应为一、多、一,即必须将纽带表放在中间。
4.2
查询的创建和使用
字段名不一 定要相同
表中不论是否 满足条件的所 有记录
数据源可以是一个或多个相关的自由表、数据库 表或视图。
4.1 查询和视图概述
查询和视图有许多相似之处
作用相似 建立方法相似 实质相似
都是从数据表中提取数据 两个设计器界面区别不大 都是依据SELECE-SQL语言
查询和视图的区别:
1. 查询主要是从表中检索或统计出所需数据,而视图不 仅具有查询的功能,而且可以改变视图中的数据,并 把更新结果返回到源表中; 2. 查询以独立的文件存储,而视图则不以独立的文件存 储,系统将其名称及其定义信息存储在数据库中。
1.用查询向导或查询设计器开始建立查询 2.选择包含要搜索信息的表或视图
3.定义查询结果的显示顺序及应满足的条件
VFP 第四章 查询和视图

第二节 视图的创建和使用
视图可以从表中提取一组记录,查看、改变这些记录, 并把更新的数据送回到原表中。 视图具有表和查询的共有特点,视图中的源表数据表 称之为“基表”(Base table) 可以创建两种视图:本地视图和远程视图。 远程视图使用SQL语法从远程数据源表中选择信息, 本地视图使用VFP的SQL语法从视图或表中选择信 息,可以将一个或多个远程视图添加到本地视图。 ODBC(open database connectivity)是一种用于数据库 的标准协议,通过他可访问多上 count(*) as 人数, AVG(table2.score) as “均分”; C)进一步的, 如果还想对查询结果进行记录的筛选,如仅想统 计男生或女生的平均分数及人数,可以在满足条 件选项里选择相应的条件,此时SELECT_SQL语 句会加上 having table1.sex=“男” 7)对查询结果的其他设置 A) “杂项”选项卡包含 《有无重复记录》 B)《设置记录的范围》共有:全部 / n个数 / 百分比 三个选项。 8) 运行查询 “!”按钮 / do example1.qpr / 查询->运 行查询 等方法。
第一节 查询的创建和使用
一:查询的本质 1)查询是指向一个数据源发出检索信息的请求,它 依据一定的条件提取特定的记录,查询运行的结 果是一个基于表和视图的动态 的数据集合。 2)创建查询基于的数据源可以是自由表、数据库表、 或另一个视图。并且常常不止一个表——方能显 出查询优势。 3)一个查询是SELECT_SQL语句,一个查询保存为 一个扩展名为 .qpr的文件。文件中保存的是实现查 询的SELECT_SQL语句(程序),而不是查询结 果。查询和视图本质上都是SELECT_SQL命令的 可视化 的设计方法。
VFP第4章 查询和视图

说明:查询文件的扩展名.qpr不可缺省 说明:查询文件的扩展名 不可缺省
注意事项
没有用到的表不要添加。 没有用到的表不要添加。 “分组依据”的设置(什么时候设?如何设?) 分组依据”的设置(什么时候设?如何设?) 分组依据 “筛选”与“满足条件”的区别。 筛选” 满足条件”的区别。 筛选 “前n个(前百分之 个)”时要排序。 前 个 前百分之n个 时要排序。
详细语法格式
SELECT [ ALL | DISTINCT ] ; [ TOP 数值 [ PERCENT ] ; 输出数据项 [ AS 标题 ] ; FROM 数据源表 ; 联接类型 JOIN 表名 ON 联接条件 ; INTO | TO 输出去向 ; WHERE 筛选条件 ; GROUP BY 分组依据 ; HAVING 分组结果筛选条件 ; UNION [ALL] 另一条SELECT-SQL语句 ; ORDER BY 排序依据
基于单个表的查询示例
表中所有教师的工号和姓名。 【例1】显示 表中所有教师的工号和姓名。 】显示JS表中所有教师的工号和姓名 表中学号以“ 开头的学生情况。 【例2】显示 表中学号以“01”开头的学生情况。 】显示XS表中学号以 开头的学生情况 【例3】基于 】基于KC表查询所有不带删除标记且课时 表查询所有不带删除标记且课时 数超过5或课时数少于 或课时数少于3(不包括5和 )的课程。 数超过 或课时数少于 (不包括 和3)的课程。 要求输出字段为: 要求输出字段为:kcdh、kcm、kss、bxk、xf, 、 、 、 、 , 查询结果按kss降序排序 降序排序。 查询结果按 降序排序。 【例4】统计各个系男女教师的人数,输出字段为: 】统计各个系男女教师的人数,输出字段为: xdh、xb、人数。 、 、人数。
查询和视图

1.1 什么是视图视图是一个定制的虚拟表。
可以是本地的、远程的或带参数的;其数据可以来源于一个或多个表,或者其他视图;它是可更新的,可以引用远程表;它可以更新数据源。
视图是基于数据库的,因此,创建视图的前必须有数据库。
Visual FoxPro 6.0的视图可以分为本地视图和远程视图。
本地视图的数据源是那些没有放在服务器上的当前数据库中的Visual FoxPro 表。
远程视图的数据源则是来自当前数据库之外,既可以是放在服务器上的数据库表或自由表,又可是来自远程的数据源。
视图不是“图”,而是观察表中信息的一个窗口,相当于我们定制的浏览窗口。
那为什么还要引入它呢?在数据库应用中,我们经常遇到下列问题,比如:我们只需要我们感兴趣的数据,如所有专业技术职务是副教授的所有职工情况、今年达到退休年龄的职工情况等,如何快速知道结果呢?用查询,您可能会这么回答。
查询的确可以轻松实现,但是进一步讲,我想对这些记录的数据进行更新又该怎么办?为数据库建立视图可以解决这一问题。
视图不但可以查阅数据还可以将更新数据并返回给数据库,而查询则只能起到查询的作用。
也就是说,我们使用视图,可以从表中将我们用到的一组记录提取出来组成一个虚拟表,而不管数据源中的其他信息,并可以改变这些记录的值,并把更新结果送回到源表中。
这样,我们就不必面对数据源中所有的(用到的或用不到的)信息,加快了操作效率;而且,由于我们的视图不涉及数据源中的其他数据,加强了操作的安全性。
一、选择题1.如果要使创建的查询按降序排列,应在____选项卡中操作。
(D)A.字段B.联接C.筛选D.排序依据2.运行查询的快捷键为____。
(A)A.Ctrl+QB.Ctrl+DC.Shift+QD.shift+D3.下列建立查询文件的方法中,不正确的一项是____。
(D)A.单击“文件”菜单中的“新建”命令,或单击常用工具栏上的“新建”按钮,打开“新建”对话框,选择“查询”并单击“新建文件”按钮,同时打开查询设计器和“添加表或视图”对话框。
考点分析之查询与视图

考点分析之查询与视图6.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; 多表查询中表1和表2进行联接(需要确定联结类型
和条件),默认联接类型是内联接;
联接类型:inner/left outer/right outer/full join 联接条件:主表.公共字段=子表.公共字段
13
SELECT-SQL语句格式
② select [⑥ [top<n>或者<n persent> ] [distinct]] <输出表达式> ; 输出显示内容和设置杂项 输出表达式包括可用字段或函数和表达式。 不同表中同名字段:加“表名.”进行限定 函数或表达式可用别名表示:AS 标题名称 杂项:显示前几条记录或前百分比记录;显示 不重复记录
17
UNION语句(组合查询)
组合查询必须由两条或两条以上SELECT语句组成, 语句之间用UNION分开 每个查询必须包含相同的列、表达式或聚集函数列 数据类型必须兼容 组合查询结果排序,只能使用一条order by子句。
18
4.4 视图的创建和使用
什么是视图?
可以把需要重复执行的一条SELECT语句或组合
多个字段进行排序,先排序在前,后排序在后。
杂项设置
可以排除查询结果中所有重复的行
设置结果的记录范围
全部,输出所有结果 前10个:记录个数为10 前10%:勾选百分比复选框
8
4.2 利用查询设计器创建查询
选择输出类型
临时表、基本表、数组; 文本文件; 屏幕兴趣或所负责处理的数据,过滤 掉不需要或不允许访问的数据。用户只能看到在视图中 定义的数据而不是基本表中的所有数据。
第四讲查询、视图与索引

1. SELECT
其中,匹配串可以是一个完整的字符串也可以含有以下通配符。 如果匹配串中不含通配符,则“LIKE”等价长度(可以是0)的字符串
_
任意单个字符
[字符1字符2…]
括号中的任一字符; 连续字符或数字可写为[开始字符-结束字符]
在指定的集合中 与指定的模式串匹配 为空 不为空 与其它条件组合,表式反意 使多个条件同时满足(交集) 多个条件之一满足(并集)
1. SELECT
▪ 使用LIKE进行模糊查找 ▪ 当对要搜索的内容不确定时,可以考虑
使用LIKE进行模糊搜索,如查找含有 “天”字的公司名称或“张”姓的人员。 LIKE的基本用法为:
SELECT必须要有一个FROM子句,使 用DUAL可以使SELECT语句与这些服务 器兼容,如果一个语句仅仅用在MySQL 中,则不必要使用该子句。
1. SELECT
▪ 为列重命名 ▪ 表中的列名由于经常采用简写或英文字
符,有时不便于查看,这时可以使用为 列重命名的方法将列名显示为易于理解 的别名。为列重命名可以采用如下方法: ▪ SELECT 列名 AS 新列名 FROM 表名
[^字符…]
不在括号中的字符
1. SELECT
▪ 有一种特殊情况,就是如果要搜索的字符中含 有通配符,这时的模式串会产生歧义。如,搜 索含有“%”的记录,这时候应该使用什么模式 串呢,您可能会想到使用如下的写法:
▪ SELECT * FROM 表名 WHERE 列名 LIKE '%%%';
▪ 然而这一写法是没有任何意义的,它等同于 “LIKE '%'”,而且是个没有意义的WHERE。
第4章查询和视图0-资料

若子表中有相 若父表中不存在
关记录,则禁 匹配的关键字值,
止删除
则禁止插入
忽 允许更新,不管子表中 略 的相关记录
允许删除,不 管子表中相关 允许插入 记录
四、VFP数据完整性综述
34
2020/2/10
4.7 几个常用函数
格式:DBC() 功能:返回当前打开的数据库的完整文件名。
格式:DBUSED(cDatabaseName)
17
2020/2/10
✓默认值
向一张数据库表中添加新记录时,为字段 所指定的最初的值称为该字段的默认值。在设 置字段默认值时,默认值必须是一个与字段类 型相同的表达式。
在使用CREATE TABLE-SQL命令创建数据库
表时,可用CHECK子句、ERROR子句和DEFAULT子
句设置字段的有效性规则、有效性信息和默认
12
➢通过命令创建数据库表
如果数据库已被打开,则利用 CREATE TABLE-SQL命令创建的表,如 果不使用FREE关键字,则该表不是自 由表,而是属于当前数据库的数据库 表。
13
2020/2/10
二、数据库表的字段扩展属性
14
2020/2/10
➢字段显示属性
✓字段的格式(Format)
字段的格式用于指定字段显示时的格式,包括在浏览 窗口、表单或报表中显示时的大小写和样式等。
8
2020/2/10
四、关闭数据库
格式:CLOSE DATABASE
功能:关闭当前数据库
格式:CLOSE DATABASE ALL
功能:关闭所有打开的数据库
五、删除数据库
2020/2/10
从“项目管理器”窗口中通过“移去”
VFP课件之ch4_查询和视图精品文档49页

用命令方式创建和运行查询文件
一、创建查询文件 1、在命令窗口输入命令:
MODIFY COMMAND 文件名.QPR
2、在编辑窗口输入一条SELECT-SQL命令 3、关闭编辑窗口保存查询文件 二、用命令方式运行查询文件
在命令窗口输入命令:
DO 文件名.QPR 注意:查询文件的扩展名.qpr 不可以省ELECT-SQL命令 SELECT-SQL应用举例
4.4 视图的创建和使用
用视图设计器创建本地视图 用命令方式创建本地视图 视图的使用
查询的本质
“查询”(Query),是指向一个数据库发出的检 索信息的请求,它根据给定的条件提取特定的记录。
创建基于一个表的查询
1、打开查询设计器 2、 添加表或视图 3、定义查询的输出内容 4、设置分组依据 5、设置排序依据 6、对查询结果的其它设置 7、设定查询去向 8、保存查询文件 9、运行查询文件
“查询去向”对话框
浏览: 在浏览窗口显示查询结果
临时表:在临时只读表中存储查询结果
INTO CURSOR TEMP01
1、打开查询设计器 2、 “添加表或视图” 3、定义查询的输出内容 4、设置筛选条件 5、设置排序依据 6、保存查询文件 7、运行查询文件
创建基于一个表的查询
【例2】基于学生表,查询各班级的男女 生人数及各自所占比例,要求输出字段为: 班级(bjbh)、男生人数、男生比例、女生 人数、女生比例,按班级的升序排列,在主 窗口中显示前30%的记录。
第4 章
查询和视图
4.1 查询和视图概述 4.2 查询的创建和使用 4.3 SELECT – SQL语句 4.4 视图的创建和使用
4.查询与视图

&& 删除字段 RENAME COLUMN <原字段名> TO <新字段名> && 更改字段名 SET CHECK <记录有效性规则> ERROR <出错信息> [ DROP CHECK ] && 设置或删除记录有效性规则 ADD PRIMARY KEY <复合索引表达式> TAG <索引标识> [ DROP PRIMARY KEY ] && 设置或删除主复合索引表达式 ADD UNIQUE <复合索引表达式> TAG <索引标识> [ DROP UNIQUE ] && 设置或删除候选复合索引表达式
语句格式:DROP TABLE <表名>; 例如:删除学生表。 DROP TABLE 学生1;
如果表是数据库中的表并且相应的数据库是当前数 据库,则从数据库中删除了表;否则虽然从磁盘上删 除了表文件,但是记录在数据库文件中的信息却没有 删除,此后会出现错误提示。所以要删除数据库中的 表时,最好应该使数据库是当前数据库。 基本表一旦被删除,表中的数据及在此表基础上建 立的索引、视图将自动地全部被删除。
FROM 课程 WHERE 课程名= 'VB');
3、数据删除
语句格式:DELETE FROM〈表名〉 [WHERE 〈条件表达式1〉]; 说 明: (1)<表名>指定要删除数据的表名。 (2)WHERE选项指明只对满足条件的记录删除。如果不使用WHERE子句, 则删除该表中的全部记录。
例如,将“学生1”表中所有男生的记录逻辑删除:
SQL的特点
1、一体化语言。 2、高度非过程化。用户只需提出“做什么”,而不 必指明“怎么做”。 3、语言简洁,易学易用。完成数据定义、数据查询、数据
VFP 课件 第4章 查询与视图

第4章查询与视图5.1.1 SQL概述:发展、特点SQL(Structured Query Languang,结构化查询语言)语言是集数据定义、数据查询、数据操纵和数据控制功能于一体的语言,1986年被美国国家标准局批准成为关系型数据库语言的标准。
它只能用于对数据库中数据的操作。
SQL语句最主要的功能就是查询功能。
使用时无须打开表,只需将要连接的表、查询所需的字段、筛选记录的条件、记录分组的依据、排序的方式以及查询结果的显示方式,写在一条SQL语句中,就可以完成特定的工作。
特点:(1)建立查询之前,源表处于开/关皆可;(2)查询命令运行之后:所用到的所有源表处于开状态,但活动工作区中是结果表;(3)建议:不用时关闭所有工作区。
5.1.2 SELECT_SQL命令格式SQL语句创建查询使用的是Select语句。
语句结构:P127Select [ALL|DISTINCT]<字段名清单>From数据源Where查询条件Group by分组关键字Having组提取条件Order by排序关键字[ASC/DESC]To file文件名|into 目标|to printer|to screen 目标:into dbf <表名>into array <数组名>into cursor <临时表名>一、单表查询。
1、select [范围]from <表或视图>(1)查询学生的全部信息。
select*from学生信息(2)、查询每个学生的学号与姓名。
select 学号,姓名from 学生信息(3)、显示表中所有专业①select 专业from 学生信息;②select distinct 专业from 学生信息2、select <select数值表达式>as列名from <表或视图>(4)查询学生的姓名及出生年份,要求显示姓名和出生年份两个字段。
查询与视图(4)

查询与视图(4)单选题:(1.0分)视图是一组存储在数据库中的特殊的表,当它被打开时,对于本地视图而言,系统将同时在其他工作区所基于的基表打开,这是因为视图包含一条_ __语句A. SELECT—SQLB. USEC. LOCATED. SET FILTER TO解答:A 答题正确参考答案:A2. 单选题:(1.0分)有关查询与视图,下列说法中不正确的是A. 查询是只读型数据,而视图可以更新数据源B. 查询可以更新数据源,视图也有此功能C. 视图具有许多数据库表的属性,利用视图可以创建查询和视图D. 视图可以更新源表中的数据,存储于数据库中解答:B 答题正确参考答案:B3. 单选题:(1.0分)不可以作为查询与视图的数据源的是A. 自由表B. 数据库表C. 查询D. 视图解答:C 答题正确参考答案:C4. 单选题:(1.0分)不可以作为查询和视图的输出类型A. 自由表B. 表单C. 临时表D. 数组解答:D 答题错误参考答案:B5. 单选题:(1.0分)视图与基表的关系是A. 视图随基表的打开而打开B. 基表随视图的关闭而关闭C. 基表随视图的打开而打开D. 视图随基表的关闭而关闭解答:A 答题错误参考答案:C6. 单选题:(1.0分)下列关于查询和视图的叙述中,正确的是查询和视图都A. 保存在数据库中B. 可以用USE命令打开C. 可以更新基表D. 可以作为列表框对象的数据源解答:D 答题正确参考答案:D7. 单选题:(1.0分)“查询”文件的扩展名为A. .prgB. .fpxC. .qprD. .qpx解答:C 答题正确参考答案:C8. 单选题:(1.0分)查询文件中保存的是A. 查询的命令B. 查询的结果C. 与查询有关的基表D. 查询的条件解答:参考答案:A9. 单选题:(1.0分)如果查询和视图的基表数据发生变化,要刷新查询和视图中的结果,正确的方法是A. 查询需要重新运行,视图可以用REQUERY( ) 函数B. 需重新创建查询和视图C. 查询需要重新运行,视图会自动刷新D. 查询和视图都会自动刷新解答:C 答题正确参考答案:C10. 单选题:(1.0分)对于视图不可以创建的是A. 字段的默认值B. 独立索引C. 临时关系D. 永久关系解答:B 答题错误参考答案:D11. 单选题:(1.0分)利用查询设计器创建的查询,其查询结果输出去向的默认类型是A. 临时表B. 浏览窗口C. 表D. 屏幕解答:C 答题错误参考答案:B12. 单选题:(1.0分)在SQL查询时,用where子句指出的是A. 查询条件B. 查询结果C. 查询目标D. 查询视图解答:A 答题正确参考答案:A13. 单选题:(1.0分)创建一个参数化视图时,应在筛选对话框的实例框中输入A. * 及参数名B. ?及参数名C. ! 及参数名D. 参数名解答:B 答题正确参考答案:B14. 单选题:(1.0分)下列_________子句可以实现分组结果的筛选A. GROUP BYB. HAVINGC. WHERED. ORDER解答:A 答题错误参考答案:B15. 单选题:(1.0分)使所有工人的基本工资增加10元的错误程序语句是A. REPLACE FOR 职务=”工人”基本工资WITH 基本工资+10B. SCAN FOR 职务=”工人”REPLACE 基本工资WITH 基本工资+10C. DO WHILE .NOT.EOF( ) REPLACE NEXT 1 FOR 职务=”工人”基本工资WITH 基本工资+10D. DO WHILE .NOT.EOF( ) .AND. 职务=”工人”REPLACE 基本工资WITH 基本工资+10解答:C 答题错误参考答案:D16. 单选题:(1.0分)下面有关对视图的描述正确的是A. 可以使用MODIFY STRUCTURE命令修改视图的结构B. 视图不能删除,否则影响原来的数据文件C. 视图是对表的复制产生的D. 使用SQL对视图进行查询时必须事先打开该视图所在的数据库解答:D 答题正确参考答案:D17. 单选题:(1.0分)视图设计器中含有的、但查询设计器中却没有的选项卡是A. 筛选B. 排序依据C. 分组依据D. 更新条件解答:D 答题正确参考答案:D18. 单选题:(1.0分)如果要在屏幕上直接看到查询结果,"查询去向"应该选择A. 屏幕B. 浏览C. 临时表或屏幕D. 浏览或屏幕解答:A 答题错误参考答案:D19. 单选题:(1.0分)使用菜单操作方法打开一个在当前目录下已经存在的查询文件zgjk.qpr后,在命令窗口生成的命令是A. OPEN QUERY zgjk.qprB. MODIEY QUERY zgjk.qprC. DO QUERY zgjk.qprD. CREATE QUERY zgjk.qpr解答:C 答题错误参考答案:B20. 单选题:(1.0分)有如下SQL语句:CREATE VIEW view_stock AS SELECT 股票名称AS名称,单价FROM stock执行该语句后产生的视图含有的字段名是A. 股票名称、单价B. 名称、单价C. 名称、单价、交易所D. 股票名称、单价、交易所解答:B 答题正确参考答案:B21. 单选题:(1.0分)下面关于查询描述正确的是A. 可以使用CREATE VIEW打开查询设计器B. 使用查询设计器可以生成所有的SQL查询语句C. 使用查询设计器生产的SQL语句存盘后将存放在扩展名为QPR 的文件中D. 使用DO语句执行查询时,可以不带扩展名解答:D 答题错误参考答案:C22. 单选题:(1.0分)在SQL语句中,用来修改表结构的命令是A. modify tableB. modify structureC. alter tableD. alter structure解答:C 答题正确参考答案:C23. 单选题:(1.0分)SQL用于显示部分查询结果的TOP短语,必须与()短语同时使用A. order byB. joinC. group byD. from解答:D 答题错误参考答案:A24. 单选题:(1.0分)SQL命令DELETE *FROM SWHERE 年龄>50的功能是A. 删除S表B. 删除S表中的年龄列C. 从S表中彻底删除年龄大于50的记录D. 将S表中年龄大于50的记录加上删除标记解答:D 答题正确参考答案:D25. 单选题:(1.0分)在Visual FoxPro中,使用SQL命令将学生STUDENT中的学生年龄AGE字段的值增加1岁,应该使用的命令是A. REPLACE AGE WITH AGE+1B. UPDATE STUDENT AGE WITH AGE+1C. UPDATE SET AGE WITH AGE+1D. UPDATE STUDENT SET AGE=AGE+1解答:D 答题错误参考答案:C26. 单选题:(1.0分)用SQL语句从表STUDENT中查询所有姓王的同学的信息,正确的命令是A. SELECT*FROM STUDENT WHERE LEFT (姓名,2)="王"B. SELECT*FROM STUDENT WHERE RIGHT (姓名,2)="王"C. SELECT*FROM STUDENT WHERE TRIM (姓名,2)="王"D. SELECT*FROM STUDENT WHERE STR (姓名,2)="王"解答:A 答题正确参考答案:A27. 单选题:(1.0分)查询订购单号首字符是“P”的订单信息,应该使用命令A. SELECT * FROM 订单WHERE HEAD(订购单号,1)=“P”B. SELECT * FROM 订单WHERE LEFT(订购单号,1)= “P”C. SELECT * FROM 订单WHERE “P”$订购单号D. SELECT * FROM 订单WHERE RIGHT(订购单号,1)= “P”解答:B 答题正确参考答案:B28. 单选题:(1.0分)在SQL语句中,与表达式"工资BETWEEN 1210 AND 1240"功能相同的表达式是A. 工资>=1210 AND 工资<=1240B. 工资>1210 AND 工资<1240C. 工资<=1210 AND 工资>1240D. 工资>=1210 OR 工资<=1240解答:A 答题正确参考答案:A29. 单选题:(1.0分)在SQL语句中,与表达式"仓库号NOT IN("wh1","wh2")"功能相同的表达式是A. 仓库号="wh1" AND 仓库号="wh2"B. 仓库号!="wh1" OR 仓库号# "wh2"C. 仓库号<>"wh1" OR 仓库号!="wh2"D. 仓库号!="wh1" AND 仓库号!="wh2"解答:D 答题正确参考答案:D30. 单选题:(1.0分)查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按职工人数降序排列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能:为当前数据库或当前数据库中表的字段、 表或视图设置属性。
第四章 数据库的创建和使用
4.1 VFP数据库概述 4.2 数据库的创建 4.3 数据库的使用 4.4 VFP数据字典概述 4.5 数据库表 4.6 永久关系与参照完整性 4.7 几个常用函数
1
11:45
4.1 VFP数据库概述
数据库是一个容器,是许多相关的数据 库表及其关系的集合。在数据库中可以存储 和管理各种对象,如表、视图、关系、连接 以及存储过程等。
29
11:45
永久关系的编辑
在“数据库设计器”窗口中,双击关 系连线打开“编辑关系”对话框,在该对 话框中可重新选择用以建立关系的两张表 的索引标识。
永久关系的删除
在“数据库设计器”窗口中,单击关 系连线后(此时连线变粗),按【Del】键。
30
11:45
三、参照完整性
“参照完整性”(Referential Integrity,简称RI)是用来控制数据的完整性, 尤其是控制数据库中相关表之间的主关键字和 外部关键字之间数据一致性的规则。
功能:返回指定的数据库是否已经打开。如果已 打开,则函数返回值为.T. ,否则函数返回值 为.F. 。
格式:DBGETPROP(cName , cType , cProperty)
35
11:45
功能:返回当前数据库的属性,或返回当前数据 库中的表字段、表或视图属性。
其中: cName用于指定数据库名、字段名、表名 或视图名; cType用于指定对象名的类型; cProperty用于指定属性名称。
[EXCLUSIVE|SHARED][NOUPDATE][VALIDATE] 功能:打开指定的数据库 其中:VALIDATE用于说明在打开数据库时进行数 据库的有效性检验。
6
11:45
二、设置当前数据库
数据库可以同时打开多个。只有一个是 当前数据库。在打开数据库时,最后一个打 开的数据库为当前数据库。可以把其他的数 据库设置为当前数据库。
多次修改数据库结构、数据库表结构之后,应进行 数据库清理操作。
26
11:45
4.6 永久关系与参照完整性
一、表之间的关系
关系的种类 一对一关系 一对多关系 多对多关系
分析并确定表之间关系
27
11:45
二、表之间的永久关系
数据库表间的永久关系是根据表的索引建立的, 索引的类型决定了要创建的永久关系类型。
插入触发器:每次向表中插入或追加记录时 触发该规则
更新触发器:每次向表中修改记录时触发该 规则
删除触发器:每次向表中删除记录时触发该 规则
触发器值返回.T.,则允许执行相应的操作, 否则不允许执行相应的操作。
21
11:45
格式:CREATE TRIGGER ON TableName FOR DELETE|INSERT|UPDATE AS lExpression
8
11:45
四、关闭数据库
格式:CLOSE DATABASE
功能:关闭当前数据库
格式:CLOSE DATABASE ALL
功能:关闭所有打开的数据库
五、删除数据库
从“项目管理器”窗口中通过“移去”
操作进行删除,则该数据库不包含在项目
中。
9
11:45
4.4 VFP数据字典概述
数据字典是指存储在数据库中用于描述所管理 的表和对象的数据,即关于数据的数据,这些数 据称为元数据。
17
11:45
默认值
向一张数据库表中添加新记录时,为字段 所指定的最初的值称为该字段的默认值。在设 置字段默认值时,默认值必须是一个与字段类 型相同的表达式。
在使用CREATE TABLE-SQL命令创建数据库
表时,可用CHECK子句、ERROR子句和DEFAULT子
句设置字段的有效性规则、有效性信息和默认
在使用多个数据库时,如要打开或说明非当前数据 库中的表,可使用“!”符号,即<数据库名>!<表名>。
在移动数据库文件的存储位置时,应相应地考虑该 数据库的数据库表文件的存储位置,否则可能会出现 数据库与数据库表之间的前后链不一致。
不要轻易地从数据库中移去表,因为数据库表移去 时会丢失存储在数据库中的字段扩展属性、表属性等。
23
11:45
六、数据库表的添加与移去
向数据库中添加或移去表可在“项目管理 器”窗口或“数据库设计器”窗口中进行,也 可用命令实现。
格式:ADD TABLE TableName [NAME LongTableName]
功能:向数据库中添加表 其中:NAME子句用于指定长表名
24
11:45
格式:REMOVE TABLE TableName
式的值为.F.),则拒绝该字段值,并显示
一个提示框。
16
11:45
字段有效性信息是一个字符型表达式, 通常与字段有效性规则配合使用,用于指 定在不满足规则要求时显示的提示信息。
如果表中已有记录,且需要设置或修 改某字段的有效性规则,则首先必须确保 表中所有记录满足将要设置的有效性规则, 否则,有效性规则无法设置或在确认保存 时选择对现有数据不作检查。
31
11:45
参照完整性的一般要求
对于一对多关系的两张表,其数据的完 整性、一致性要求相关表之间应该满足如下 三个规则:
子表中的每一个记录在对应的主表中必须 有一个记录。
在子表中插入记录时,其外部关键字必须 是父表主关键字值中的一个。
在父表中删除记录时,与该记录相关的子 表中的记录必须全部删除。
记录有效性规则除了可在数据库表的“表设计器”
对话框中设置,也可在CREATE TABLE-SQL命令中通过
CHECK子句或在ALTER TABLE-SQL命令中通过SET
CHECK子句进行设置。在ALTER TABLE-SQL命令中通过
DROP CHECK可删除记录的有效性规则。
20
11:45
表的触发器
10
11:45
数据字典可以创建和指定以下内容:
表中字段的标题、注释、默认值、输入掩码和 显示格式,以及表单中使用的默认控件类等
表的主索引关键字
数据库表之间的永久性关系
长表名和表注释
字段级和记录级有效性规则
存储过程
插入、更新和删除事件的触发器
11
11:45
4.5 数 据 库 表
一、数据库的创建
输入掩码(Input Mask)
字段的输入掩码用于指定字段中输入数据的格式。
字段的标题(Caption)和注释(Comment)
标题和注释都是为了使表具有更好的可读性。在设置 表结构时,如果字段名不能明确地表达列的含义,可以为 字段设置一个标题。如果标题还不能充分地表达含义或需 要给字段以详细的说明,还可以给字段加上注释。 15
若子表中有相 若父表中不存在
关记录,则禁 匹配的关键字值,
止删除
则禁止插入
忽 允许更新,不管子表中 略 的相关记录
允许删除,不 管子表中相关 允许插入 记录
四、VFP数据完整性综述
34
11:45
4.7 几个常用函数
格式:DBC() 功能:返回当前打开的数据库的完整文件名。
格式:DBUSED(cDatabaseName)
通过界面操作数据库表
在“项目管理器”窗口中,选择某一数据 库下属的“表”项,然后单击“新建”命 令按钮
在“数据库设计器械”打开时,单击“数 据库设计器”工具栏上的“新建表”按钮
在数据库打开时,利用菜单命令“文
件”→“新建”或常用工具栏上的“新建”
按钮,在出现的“新建”对话框中选择
12
11:45
永久关系的创建
确定两张具有一对一或一对多关系的表
建立主表的主索引或候选索引
建立子表的主索引或候选索引(一对一关系)或建立 子表的普通索引(一对多关系)
在“数据库设计器”窗口中,将主表的主索引或候选 索引标识拖放到子表相应的索引标识上,即完成了永 久关系的设置
(如下图所示)
28
11:45
永久关系的创建(续)
通过命令创建数据库表
如果数据库已被打开,则利用 CREATE TABLE-SQL命令创建的表,如 果不使用FREE关键字,则该表不是自 由表,而是属于当前数据库的数据库 表。
13
11:45
二、数据库表的字段扩展属性
14
11:45
字段显示属性
字段的格式(Format)
字段的格式用于指定字段显示时的格式,包括在浏览 窗口、表单或报表中显示时的大小写和样式等。
格式:SET DATABASE TO DatabaseName
功能:将指定的数据库设置为当前数据库
7
11:45
三、检查数据库的有效性][TO
PRINTER|TO FILE FileName]
其中:RECOVER用于说明更新链接,缺省时仅 检查数据库的有效性;TO子句用于说明检查结 果信息的去向,缺省时在VFP主窗口是显示。 该命令只能处理以独占方式打开的当前数据库。 在更新链接时,如果数据库表文件不在原位置, 系统会打开“检查数据库”对话框,要求用户 进行文件定位。
值。在使用ALTER TABLE-SQL命令修改表结构时,
可通过SET CHECK子句、SET DEFAULT子句设置
字段的有效性规则(信息)、默认值;通过
DROP CHECK和DROP DEFAULT子句删除字段的有
效性规则(信息)、默认值。
18
11:45
三、数据库表的表 属性
长表名与表注释