VFP数据查询与视图
VFP基础教程-创建查询和视图
5.1 创建查询1. 查询的概念查询:就是向一个数据库发出检索信息的请求,从中提取符合特定条件的记录。
查询文件:即保存实现查询的SELECT-SQL命令的文件。
查询文件保存时,系统自动给出扩展名.qpr;查询被运行后,系统还会生成一个编译后的查询文件,扩展名为 .qpx。
查询结果:通过运行查询文件得到的一个基于表和视图的动态的数据集合。
查询结果可以用不同的形式来保存。
查询中的数据是只读的。
查询的数据源:可以是一张或多张相关的自由表、数据库表、视图。
2. 用查询设计器创建查询基本步骤:打开查询设计器→ 添加创建查询所基于的数据表→定义输出内容→设置联接、筛选、排序、分组条件→ 选择查询结果的输出形式→保存查询文件→运行查询。
(1)打开查询设计器方法1:从文件菜单或工具栏上单击新建→查询→新建文件→进入查询设计器方法2:当所用到的数据表已在项目中时,从项目管理器窗口中单击数据→ 查询→新建→ 新建查询→进入查询设计器方法3:从命令窗口中输入命令:create query 查询文件名& 创建新查询modify query 查询文件名& 修改已存在的查询(2) 定义查询的输出内容单击字段选项卡→从可用字段列表框中单击所需字段(当输出的列不是直接来源于表中的字段时,单击函数和表达式框边的… 按钮,打开表达式生成器,构造出所需的表达式)→单击添加按钮→所需字段自动出现在选定字段框中。
(3) 设置查询的筛选条件筛选条件决定将哪些记录显示出来。
在筛选框中构造筛选条件表达式时,要注意在实例框中输入不同数据类型时的格式:1) 字符串可以不带引号(当与源表中的字段名相同时才用引号);2) 日期型数值要用{ }括起来;3) 逻辑型数据两侧要带 .号,如 .T.,.F.(4) 设置查询结果的排序依据排序决定查询输出结果中记录显示的顺序。
设置方法:单击排序依据→ 从选定字段框选中字段→选择升序或降序→单击添加。
VFP中常用命令(包含一些SQL命令)
VFP中常用命令(包含一些SQL命令)一、数据库的建立、打开、关闭和删除建立数据库:CREATE DATABASE [databasename|?]从磁盘中删除数据库:DELETE DATABASE databasename|?打开数据库:OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE [databasename|?]指定的数据库databasename为当前数据库。
指定当前的数据库:SET DA TABASE TO [databasename]Databasename必须为已经打开的数据库。
如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。
关闭数据库:CLOSE DATABASE [ALL]关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。
二、数据表和视图的建立、打开、关闭和删除建立数据表(SQL命令):CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL][{,Col_name2 Type2 [NOT NULL/NULL]}...])table_name是所创建的数据表的名字。
Col_name1,Col_name2,...是表中列的名。
Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。
如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。
向当前打开的数据库中添加数据表:ADD TABLE tablename|?从当前打开的数据库中删除数据表:REMOVE TABLE tablename|? [DELETE]如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。
二级VFP课件 SQL语言、查询与视图
第五章 SQL语言、查询与视图
5.1.1 SQL的数据定义 1、定义表
命令格式: CREAT TABLE <表名> (<字段名1> <类型> ( <长度> [,<小数 位数> ] ) [,<字段名2> <类型> (<长度> [,<小数位数>] ) ] 例5.1 用SQL创建学生表
第五章 SQL语言、查询与视图
1、简单查询 (1) 只有FROM子句
查询指定列 • 例8.6 查询学生表中的学生的年龄 • SELCET 姓名,年龄 FROM 学生 查询全部列 列出表中的所有字段,一是在SELECT后列出所有字段名, 一是使用“*”。(注意,有的数据库管理系统不支持“*”) • 例8.7 查询学生表中全体学生的所有信息。 • SELCECT * FROM 学生 •或 • SELECT 学号,姓名,性别,出生日期,简历
第五章 SQL语言、查询与视图
例5.17 查询每个学生的选课成绩 (1) 内部联接 SELECT 学生.*,成绩.* FROM 学生 INNER JOIN 成绩; ON 学生.学号=成绩.学号 (2) 左联接,除满足条件的记录外,左表中不满足条件的记录 也出现在结果中 SELECT 学生.*,成绩.* FROM 学生 LEFT JOIN 成绩; ON 学生.学号=成绩.学号 (3) 右联接,除满足条件的记录外,右表中不满足条件的记录 也出现在结果中 SELECT 学生.*,成绩.* FROM 学生 RIGHT JOIN 成绩; ON 学生.学号=成绩.学号
VF课件
黑龙江省黑河学院计算机系
6.1.2 视图
视图其实是从数据库表或视图中导出的“ 视图其实是从数据库表或视图中导出的“表”。 与其他表不同, 与其他表不同,视图中的数据还是存储在原来的 数据库表或视图中。 数据库表或视图中。因此可以把视图看做是一个 虚表” 尽管它是一个虚拟表, “虚表”,尽管它是一个虚拟表,但是在数据浏 查询和更新方面却有着广泛的应用。 览、查询和更新方面却有着广泛的应用。 视图是操作表的一种手段,通过视图可以查询表, 视图是操作表的一种手段,通过视图可以查询表, 也可以更新表。视图是数据库中特有的, 也可以更新表。视图是数据库中特有的,它依赖 于某一数据库而存在, 于某一数据库而存在,只有打开与视图相关的数 据库才能创建和使用视图。 据库才能创建和使用视图。
黑龙江省黑河学院计算机系
2、用“查询向导”创建查询 查询向导”
(1)打开“查询向导”。 打开“查询向导” 向导选取” (2)在“向导选取”对话框中选择要使用的向导类 型。 单击“确定”按钮,弹出“查询向导”窗口, (3)单击“确定”按钮,弹出“查询向导”窗口, 选择查询时所用的字段,单击“下一步”按钮。 选择查询时所用的字段,单击“下一步”按钮。 查询向导步骤3 筛选记录” (4)在“查询向导步骤3-筛选记录”中设置记录 筛选条件,单击“下一步”按钮。 筛选条件,单击“下一步”按钮。 查询向导步骤4 排序记录” (5)在“查询向导步骤4-排序记录”中设置排序 的字段和排序方式,单击“下一步”按钮。 的字段和排序方式,单击“下一步”按钮。 查询向导步骤5 完成”中选择“ (6)在“查询向导步骤5-完成”中选择“保存查 单击“完成”按钮, 另存为” 询”,单击“完成”按钮,在“另存为”对话框 中输入查询名称,保存查询。 中输入查询名称,保存查询。
数据库__VFP6第4章查询与视图
图4-15 查询设计器界面
(3)查询参数的设置 第一节 查询 ①确定输出的字段。在图4-15中的“可用字段”列表框中显示了上部窗 口中表的所有字段名称,通过“添加”或“全部添加”将“可用字段” 中所选择的字段移到“选定字段”列表框中。在本例中,B_xsxx表中除 szbj、xsjg、xspy等三个字段不选外其余全选,B_bjxx表中选择bjmc, B_dqxx表中选择dqmc ②设置联接条件 ③查询结果的排序。如果需要对查询的结果按一定的顺序排列,则可以 选择“排序依据”选项卡,以决定排序的依据。该选项卡如图4-16所示 。
第一节
图4-2 查询向导步骤之2 查询 查询向导步骤之2
第一节 查询 (4)步骤2:关联表
通常查询向导会自动查找两个表之间相匹配的字段 并显示在第二步的两个列表框中, 并显示在第二步的两个列表框中 , 如果这种关系正是 所需要的, 可以直接单击“ 添加” 按钮。 所需要的 , 可以直接单击 “ 添加 ” 按钮 。 如果在表之 间没有相匹配的字段, 就需要手工建立, 间没有相匹配的字段 , 就需要手工建立 , 只要分别在 两个下拉列表框中选取相应的字段即可。 两个下拉列表框中选取相应的字段即可。
图4-16 排序依据选项卡
第一节 查询 ④查询条件的设置。在“筛选”选项卡中可以设定查询的
条件,例如可以查询所有男同学的情况。“筛选”选项卡 如图4-17。
图4-17 筛选选项卡
⑤其他查询参数的设置 查询参数主要包括以上四项,其 他还有“分组依据”和“杂项”两个选项。
(4)查询结果的去向 第一节 查询
在查询设计的过程中,为了查看查询的结果, 可以随时单击“运行”按钮,VFP就会在屏幕上显 示查询的结果记录。在默认情况下,查询的结果直 接输出到屏幕上而且是不保存的。如果想改变查询 结果的去向,可以单击“查询设计器”工具栏中的 “查询去向”按钮,在图4-18所示的查询去向对话 框中选择不同的查询去向。
VFP第五章 查询与视图
利用视图向导创建本地视图
用本地视图向导创建本地视图,可采用以下方法:
方法一:“工具”菜单向导全部本地视图向导
方法二:“文件”菜单新建视图向导 方法三:项目管理器选定数据库本地视图新建 视图向导 方法四:数据库设计器数据库菜单新建本地视图 视图向导
利用视图向导创建本地视图
1. 当视图使用的数据源是当前数据库中的表或存在的 视图,则所建立的视图是本地视图; 2. 当数据源采用的是当前数据库之外的其他数据,包 括在当前VFP环境下建立的其他数据库和表,以及 其他的ODBC数据源,则建立的是远程视图。 若希望针对数据库服务器上的ODBC数据源进行 查询,则应该建立远程视图。 所谓ODBC是Open Database Connectivity的 缩写,即开放式数据库连接。它是用于数据库服务 器的一种标准协议(规则),它向应用程序提供访 问数据库服务器上所存放数据库的接口,以便应用 程序访问。
(5)执行查询
① “查询”菜单“运行查询”命令 ②在查询设计器窗口单击右键,快捷菜单“运行 查询”命令 ③ “程序”菜单“运行”命令→ 打开“查询文 件” →“运行”按钮 ④ 命令窗口中执行命令“DO <查询文件名.qpr>
(6) 查询的保存 查询窗口关闭前,以下三种方法可用来保存 查询设置: ① 按Ctrl+W ② 单击窗口右上角“关闭”按钮、双击窗 口左上角、或单击窗口左上角后选定“关闭” 命令,均会出现“确认”对话框 ③ “文件”菜单“保存”命令
二、 将查询结果以图形方式输出
例1 生成“zhggz”的表单,以图形方式输出。 S1:打开职工.dbf,创建一个新查询 S2:设置查询去向为“图形” S3:单击工具栏的“运行”按钮,弹出图形向导的 “步骤2——定义图形布局”对话框 S4:确定数据系列、图例: S4.1:数据系列:将要输出的数值型字段拖到“数 据系列”列表框,可以有多个数据系列。如:工资 等 S4.2:图例:将要显示的字符型字段拖到坐标轴图 形框。如:职工号.
VFP课件查询与视图
查询结果排序
排序决定了查询输出结果中记录或行的先后顺序,我们可以通
过“排序依据”选项卡设置查询的排序次序,方法同在用查询向
导设计查询介绍的一样,首先从“选定字段”框中选定要使用的
字段2024/2/24
16
并把它们移到“排序条件”框中,然后利用“排序选项”(从 中选择升序或降序)来设置排序条件。本例中设置Student.学号, 升序为排序依据。
选择筛选字段 设置筛选条件 输入筛选实例 是否区分大小写 设置条件逻辑
在字段名下的下拉选择框中选择“Student.性别”,在“条件”
下的下拉选择框中选择“=”,在“实例”下的文本框中输入.T.,
则查询所有的男生。
2024/2/24
15
在“逻辑”下的下拉选择框中选择“AND”,然后再在字段名下 的下拉选择框中选择“Student.学号”,在“条件”下的下拉选 择框中选择“In”,在“实例”下的文本框中输入“9904,9804” (请注意中间的“,”是En状态下输入的)。
单击
单击【预览】按钮可以显示查询结果。根据要求,设置条件如上图。其中,
虽然表中没有年级字段,但可通过“学号”得到年级(学号的前二位为年
级)202。4/2/24
6
——
查 询 向 导
记
录
排
序
调整排 序顺序
移动按钮
选择排序字段 单击【添加】 选择排序方式 单击
2024/2/24
7
查询向导——限制记录
说明:查询结果中所包含
2024/2/24
14
பைடு நூலகம்
筛选记录
选择表中符合条件的一部分记录而不是全部记录是查询的重要 任务。此例要求从所有学生的信息中选出“学号”前四位为 “9904”和“9804”的所有男生,可以利用查询设计器中的“筛选” 选项卡。“筛选”选项卡可确定用于选择记录的字段和比较准则, 以及输入与该字段进行比较的示例值。
VFP查询与视图习题及答案
查询与视图习题六一.选择题1.在Visual FoxPro中,关于查询正确的描述是()。
A)查询是使用查询设计器对数据库进行操作B)查询是使用查询设计器生成各种复杂的SQL SELECT语句C)查询是使用查询设计器帮助用户编写SQL SELECT命令D)查询是使用查询设计器生成查询程序,与SQL语句无关2.查询是以下面那种类型的文件保存于磁盘上的()。
A).DBFB).QPRC).PRGD).EXE3.查询的数据源不能是()。
A)自由表B)视图C)查询D)数据库表4.在“添加表或视图”窗口,“其他”按钮是让用户选择()。
A)数据库表B)视图C)不属于当前数据库的表D)查询5.查询设计器中,“联接”选项卡对应的SQL SELECT短语是()。
A)WHEREB)JOINC)SETD)ORDER BY6.下列()SQL SELECT短语实现分组结果的筛选条件。
A)GROUP BYB)HAVINGC)WHERED)ORDER BY7.默认查询的输出形式是()。
A)数据表B)图形C)报表D)浏览窗口8.查询的输出不能是()。
A)临时表B)永久表C)视图D)屏幕9.修改查询文件的命令是()。
A)MODIFY COMMANDB)MODIFY FILEC)MODIFY QUERYD)MODIFY STRUCTURE10.运行查询使用的命令是()。
A)USE 查询文件名.QPRB)DO 查询文件名.QPRC)MODIFY 查询文件名.QPRD)SELECT 查询文件名.QPR11.完成查询名为aaa的查询设计后,运行查询不正确的方法是()。
A)在查询设计器打开的情况下,单击“常用”工具栏上的“运行”按钮B)在查询设计器打开的情况下,单击“查询”菜单中“运行查询”菜单项 C)在命令窗口输入命令DO aaaD)在命令窗口输入命令DO aaa.qpr12.在Visual FoxPro中,关于视图的正确叙述是()。
A)视图与数据库表相同,用来存储数据B)视图不能同数据库表进行连接操作C)在视图上不能进行更新操作D)视图是从一个或多个数据库表导出的虚拟表13.在数据库中实际存储数据的是()。
查询与视图VFP课件
查询与视图
一 创建查询(打开查询设计器): 创建查询(打开查询设计器) 1.鼠标操作:“文件” →“新建” →“查询” →“新 1.鼠标操作:“文件” 建文件夹” 2. 命令操作: CREATE QUERY 查询文件名
二
介绍“查询设计器”
查询设计器下部分的窗口中有几个选项卡,其含义简介如 下: “字段”:对应于SELECT短语,用来选定包含在查询结果 中的字段 图之间的联接关系; “筛选”:对应于WHERE短语,用于指定查询条件; “排序依据”:对应于ORDER BY短语,用来指定排序的 字段和排序方式;
BY和HAVING短语,用于分组; “杂项”:可以指定是否要重复记录(DISTINCT)以及列在 前面的记录(TOP短语)
“分组依据”:对应于GROUP
三 查询的输出
鼠标操作:“查询” →“查询去向”
四 运行查询(先保存再运行)
鼠标操作: 单击“查询”/“运行查询”,或 “!”按钮 。 单击“查询”/“运行查询”,或 命令操作:Do 命令操作:Do 查询文件名 :查询文件名中一定要给出查询文件的扩展名.qpr :查询文件名中一定要给出查询文件的扩展名.qpr :单击“查询”/“查看SQL”,Select-SQL命令将文本窗口 :单击“查询”/“查看SQL”,Select-SQL命令将文本窗口 中显示
一
创建视图(打开视图设计器)
鼠标操作:打开 “数据库设计器” “文件”/“新建” “文件”/“新建” “视图” 命令操作:CREATE 命令操作:CREATE VIEW 视图文件名
数据库表,创建视图。
vfp第5章查询视图
第5章 查询与视图
视图
⑸保存视图
• “文件” →“保存”
浏览视图
• 在相关数据库设计器中,右击视图,选择“浏览”命令。
第5章 查询与视图
练习3 简单应用:
32.1(先做基1-2)、32.2、43.2(先做基1) 42.2、41.2、66.2、67.2(先做基1)、79.2 22.2、73.1(先做基1-2)
第5章 查询与视图
查询
“查询设计器”工具栏
第5章 查询与视图
查询
⑷运行查询
• 选择“查询→运行查询”命令。 • 单击常用工具栏上的“ ”按钮。
第5章 查询与视图
查询
⑸保存查询
• “文件” →“保存”
查询文件的扩展名是.QPR,
主体是相应的SQL SELECT语句。
第5章 查询与视图
第5章 查询与视图
视图 2. 有关视图的常用命令
⑴新建视图
• CREATE VIEW <视图名> AS <SELECT 语句>
⑵删除视图
• DROP VIEW <视图名> 或 DELETE VIEW <视图名>
第5章 查询与视图
练习4 简单应用:
46.1
第5章 查询与视图
查询与视图的区别
视图与查询在功能上有许多相似之处,但又有各自特点,主要区别如下:
功能不同:视图可以更新字段内容并返回数据源表,而查询文件中的记录数
据不能被修改。
从属不同:视图不是一个独立的文件而从属于某一个数据库。查询是一个独
立的文件,它不从属于任何数据库。
访问范围不同:视图可以访问本地数据源和远程数据源,而查询只能访问本
VF查询与视图
填空 1、为“成绩”表中“总分”字段增加有效性规则:“总分必须 大于等于0并且小于等于750”,正确的SQL语句是: TABLE 成绩 ALTER 总分 总分>=0 AND 总分 <=750
2、为“学生”表的“年龄”字段增加有效性规则“年龄必须在18~45岁之间” 的SQL语句是 ALTER TABLE学生ALTER年龄 年龄<=45 AND 年 龄>=18 2、在SQL语言中,用于对查询结果计数的函数是 。 3、在SQL的SELECT查询中,使用 4、使用SQL Select语句进行分组查询时,有时要求分组满足某个条件时才查 询,这时可以用 子句来限定分组。 5、设有SC(学号,课程号,成绩)表,下面SQL的SELECT语句检索成绩高于 或等于平均成绩的学生的学号。 SELECT 学号 FROM SC WHERE 成绩>=(SELECT FROM SC)
空值查询
表中值为空表示没有确定内容,当要查询的时候: repl 供应商号 with null,订购日期 with null for 职工号 ="E4 " 然后才能用IS NULL查询,考试的时候不需要设置。
当需要本仓库的职工的工资和本仓库的平均工资 进行比较时候
自身连接和嵌套查询 sele * from 职工 A where 工资>(sele avg(工资) from 职工 B where A.仓库号=B.仓库号) 自身连接:将同一关系与自身连接。 注意:应用的原因:根据出自同一个字段,值域相同 的两个进行比较。属性是“包含”与“被包含”的关 系。
5.在Visual Foxpro中,如果要将学生表S(学号,姓名,性别,年 龄)中“年龄”属性删除,正确的SQL命令是 。 A)ALTER TABLE S DROP COLUMN 年龄 B)DELETE 年龄FROM S D)ALTER TABLE S DELETE COLUMN 年 龄 D)ALTER TABLE S DELETE年龄 6.在Visual Foxpro的数据库表中只能有一个 。 A)候选索引 B)普通索引 C)主索引 D)惟一索引 7. 设有学生表 S( 学号 ,姓名,性别 , 年龄),查询所有年龄小于等于 18 岁的女同学,并按年龄进行降序生成新的表WS,正确的SQL命令是 。 A)SELECT*FROMS WHERE性别=“女”AND年龄<=18ORDER BY 4 DBSC INTO TABLE WS B)SELECT*FROMS WHERE 性别 = “女” AND 年龄 <=18ORDER BY 年龄 INTO TABLE WS C)SELECT*FROMS WHERE 性别 = “女” AND 年龄 <=18ORDER BY 年龄 DESC INTO TABLE WS D)SELECT*FROMS WHERE 性别 = “女” OR 年龄 <=18ORDER BY 年龄
visualfoxpro数据库查询与视图
3.记录级规则主要包括记录有效性、触发器的设置和表注释。
每逢星期一才可做插入、追加、 更新和删除记录的操作:
“教授的基本工资要≥1650元,其 他职工为:
CDOW(DATE())="Monday"
学习 教程 教材 分享】GOOD
多媒体课件【友5情50≤基本工资≤3000"
GOOD STUDAY,
10
6
分享】GOOD GOOD STUDAY,
6.浏览数据库文件
浏览数据库rsgzk.dbc的命令如下:
CLOSE DATABASE ALL&&浏览前首先关闭.DBC文件
USE rsgzk.dbc
&&打开数据库文件必须指明扩展名. DBC
BROWSE
学习 教程 教材 多媒体课件【友情
7
分享】GOOD GOOD STUDAY,
(1)按照表4-7和表4-8建立部门代码表(bmdm)和增资表(zz)结构, 并输入记录数据。
(2)建立数据库rsgzk.dbc。
(3)添加表rsb.dbf、gzb.dbf、bmdm.dbf和zz.dbf 。
学习 教程 教材 多媒体课件【友情
3
分享】GOOD GOOD STUDAY,
2.用命令方式建立数据库
删除规则:是指删除父表中的记录时使用的规则,包括级联、 限制和忽略3种。
插入规则:是指在子表中插入新的记录,或更新已存在的记录 时所用的规则,包括限制和忽略2种。
学习 教程 教材 多媒体课件【友情
13
分享】GOOD GOOD STUDAY,
级联 限制 忽略
更新规则
删除规则
插入规则
当父表中的关键字 当父表的记录被删 值被修改时,系统 除时,系统相应的 用新的关键字值更 删除子表中所有相 新子表中所有相关 关记录 记录
VFP第四章查询视图
Full Join:指定将所有满足和不满足条件的记 录都包含在查询结果中。
▪ [字段名]用来设置联接两的字段或表达式. 注:此外建立联接的字段不一定是表中的 索引,除备注字段和通用字段外,可在任意 字段间建立联接.
D.CREATE VIEW myview SELECT * FROM 歌手 WHERE LIKE(“1”,歌手号)
用于分组的字段不一定是选定输出的字 段,但分组字段不能是一个计算字段。
可以用 满足条件… 来对分组结果进行 进一步筛选。
(6)“杂项”选项卡 用于指定是否要对重复记录进行检索,是 否对返回记录结果的最大数目或最大百分 比作限制。 [列在前面的记录]:
选择”全部”,则表示查询记录范围是全部记录. 不选择”全部”时,下面选项变为可用,可在记录个 数微调框中,选择或输入查询范围的记录个数.选 中”百分比”复选框,则[记录个数]微调框变为[百分 比]微调框
一个相匹配,这些样本由逗号分隔.
[实例]:是一个文本框,要注意在实例框中输入 不同数据类型时的格式: 1) 字符串可以不带引号(当与源表中的字段名
相同时才用引号); 2) 日期型数值要用{^ }括起来; 3) 逻辑型数据两侧要带“ .”号,如 .T.,.F. [大小写]:指定在条件中与实例的比较是否区分 大小写.选中表示不区分大小写. [逻辑]:将两个筛选条件用逻辑运算符AND或OR 连接.
▪ 4.查询的建立,见上机演示。
查询设计器
2. 查询设计器的使用
使用查询设计器中的“页面”选项 修改查询(定义输出的内容)
(1)“字段”选项卡 用于选取最后在查询结果中输出的字段。 选取的字段对象可以是一个表中的字段,多 个表中的字段或某个字段的表达式,如对某 一数值型字段的求和或求平均值.
VFP第五章
用select-sql命令实现单表查询
1.无条件查询 无条件查询 SELECT <字段名表 FROM <表名 字段名表> 表名> 字段名表 表名 SELECT后用“* SELECT后用“*”表示全部字段,还可以是标准统计 函数,如min 函数,如min ,max ,sum,avg,count等 ,sum,avg,count等 例1: Sele * from STUDENT Sele ‘学号’,‘姓名’,‘奖学金’ from STUDENT sele max(奖学金) as '最高奖学金‘ , min(奖学金) as '最 低奖学金', avg(奖学金) as '平均奖学金' from student 注意标题名称
建立表之间临时关系
Set relation to <关联字段表达式 into <子表 关联字段表达式> 子表> 关联字段表达式 子表
表间临时关系:指当一个表的记录指针移动时,另 表间临时关系 一个表中的记录作相应移动。前者的移动是主动的, 称为父表或主动表,后者是被动的,称为子表或被 动表。 说明:关联字段表达式通常由两表共有的字段构成, 说明: 关联字段表达式 同时又是子表的主控索引,这说明子表须建索引才 能建立临时关系。 SET RELATION TO则表示取消当前工作区与其他 则表示取消当前工作区与其他 工作区的关联
第五章: 第五章:查询与视图
5.1 查询与统计命令 5.2使用查询设计器建立查询 使用查询设计器建立查询 5.3 结构化查询语言 结构化查询语言SQL 5.4 视图
数据筛选命令
1.记录筛选命令: Set filter to <条件> 设置当前表中可以被访问的记录满足的条件。 几次筛选以后,仅最后一次起作用。 几次筛选以后,仅最后一次起作用。 取消记录筛选命令:set filter to 2.设置字段筛选命令: Set fields to <字段名表> | [all | like | except <字段名 通配式> ] 指定当前可以被访问的字段,
vfp的查询和视图
二、视图的创建和使用
视图的概念:把分散在相关表中的数据通过联 接条件把他们收集到一起,构成一张“虚表”。 这张“虚表”就是视图,视图是数据库的一个组 成部分,是基于表的并且可更新的数据集合
视图与查询的区别:视图除了可以用来查询数 据之外,还可以当作表来使用,可以作为数据源, 也可对查询出来的数据进行修改并送回源表中
❖多表查询的创建:步骤 例题 ▪ 若有2张以上的表,在添加时一定要注意先后次 序,“纽带表”要放在两张“父表”之间 ▪ 若已进行了永久性关系的设置,则无须进行联接 ▪ 修改联接条件可在“查询设计器”—“联接”卡 片中进行 ▪ 联接条件和筛选条件类似,都是选出符合条件的 记录;不同的是筛选是将字段值和筛选值进行比 较,而联接条件是将一张表中的字段值与另外一 张表中的字段值进行比较
❖查询时会考到的最难的程度如下例:
查询信息管理系中所有成绩在480分以上,并且各门课程的成
绩不低于70分的学生。要求在查询的结果中包含学号,姓名, 总分,均分,最低分,并按照总分从高到底排列
❖ 一部分查询的练习 1. 查询学生的学号,姓名,系名,总分和平均分, 按照系名升序排序,同一个系的学生按照总分 降序排序。 2. 查询每个系每门课程的总分和平均分,要求输 出课程名,课程代号,系名,每个系的平均成 绩和总成绩,按课程代号升序排序 3. 查询各个系每位教师的课时数,要求输出系名, 工号,姓名,课时数,并按系名升序排序,同 一个系的教师按照工号升序排序 4. 查询计算机科学系各位教师的课时数,要求输 出工号,姓名,系名,课时数,并按工号降序 排序,并且将查询信息保存为表,表名为:
(完整版)《VF》数据库基础知识及操作,视图、查询、SQL经典试题
《VF》数据库基础知识及操作,视图、查询、SQL经典试题一.选择题(每个1分,共50分)1.关系运算不包括()A.连接运算 B.选择运算 C.投影运算 D.并运算2、退出Visual Foxpro 6.0的操作方法是()A.从“文件”菜单中选择“退出”命令 B.直接按Alt+F4C.在命令窗口中输入QUIT命令后回车 D.以上都可以3.在Visual FoxPro6.0中,下列有关数据库的描述,正确的是 ( ) A.数据库不能多用户共享B.在关系型数据库系统中,关系型数据库是通过一个二维表来表示数据之间的联系的C.数据库中的最小访问单位是记录D.数据库中的数据不能是图像4.在Visual Foxpro中,XS表中含有备注型字段,备注型字段内容存到另一个文件中,该文件名为()A.XS.DBC B.XS.QPR C.XS.DBF D.XS.FPT5.在Visual Foxpro表文件中,逻辑型、日期型、备注型数据的宽度分别是()A.1、8、128 B. 2、8、10 C.1、8、4 D. 1、8、任意6.在Visual FoxPro6.0中,关于视图的叙述正确的是( )A.视图文件是一个独立的数据文件,不属于任何的数据库B.视图可以对源表中的数据进行更新C.如果希望每次运行视图时,根据输入值的不同而检索到不同的结果,可以建立远程视图D.视图只能从一个表派生出来7.在Visual FoxPro6.0中,使用查询设计器创建查询时,查询去向中不包括的是( )A.标签 B.屏幕 C.视图 D.临时表8.在Visual FoxPro6.0中,项目文件的扩展名是( )A..PRG B. .PJX C..SCX D..QPR9. 不允许记录中出现重复索引值的索引是( )。
A.主索引 B.主索引、候选索引、普通索引C.主索引和候选索引 D主索引、候选索引和唯一索引10. 在VisuAlFoxPro中,可以对字段设置默认值的表( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.1 创建查询
1. 查询的概念
查询:就是向一个数据库发出检索信息的请求,从中提取符合特定条件的记录。
查询文件:
即保存实现查询的SELECT-SQL命令的文件。
查询文件保存时,系统自动给出扩展名 .qpr;查询被运行后,系统还会生成一个编译后的查询文件,扩展名为 .qpx。
查询结果:
通过运行查询文件得到的一个基于表和视图的动态的数据集合。
查询结果可以用不同的形式来保
存。
查询中的数据是只读的。
查询的数据源:可以是一张或多张相关的自由表、数据库表、视图。
2. 用查询设计器创建查询
基本步骤:
打开查询设计器→ 添加创建查询所基于的数据表→ 定义输出内容→ 设置联接、筛选、排序、分组条件→ 选择查询结果的输出形式→ 保存查询文件→运行查询。
(1)打开查询设计器
方法1:
从文件菜单或工具栏上单击新建→ 查询→ 新建文件→ 进入查询设计器
方法2:
当所用到的数据表已在项目中时,从项目管理器窗口中单击数据→ 查询→ 新建→ 新建查询→
进入查询设计器
方法3:从命令窗口中输入命令:
create query 查询文件名& 创建新查询
modify query 查询文件名& 修改已存在的查询
(2) 定义查询的输出内容
单击字段选项卡→ 从可用字段列表框中单击所需字段(当输出的列不是直接来源于表中的字段时,单击函数和表达式框边的… 按钮,打开表达式生成器,构造出所需的表达式)→ 单击添加按钮→ 所
需字段自动出现在选定字段框中。
(3) 设置查询的筛选条件
筛选条件决定将哪些记录显示出来。
在筛选框中构造筛选条件表达式时,要注意在实例框中输入不同数据类型时的格式:
1) 字符串可以不带引号(当与源表中的字段名相同时才用引号);
2) 日期型数值要用{ }括起来;
3) 逻辑型数据两侧要带 .号,如 .T.,.F.
(4) 设置查询结果的排序依据
排序决定查询输出结果中记录显示的顺序。
设置方法:
单击排序依据→ 从选定字段框选中字段→ 选择升序或降序→ 单击添加。
(5) 设置查询结果的分组依据
分组是指将一组类似的记录压缩成一个结果记录,目的是为了完成基于该组记录的计算,比如:求平均值、总和、统计个数、其中的最大值、最小值等。
几个常用的统计函数
用于分组的字段不一定是选定输出的字段,但分组字段不能是一个计算字段。
可以用满足条件… 来对分组结果进行进一步筛选。
(6)对查询结果的其他设置
可以排除查询结果中所有重复的行,并设置结果的记录范围。
(7)选择查询结果的输出类型
默认情况下,查询结果将输出在浏览窗口中,且其中的数据是只读的。
设置其他输出类型的方法:
打开查询菜单→ 选择查询去向→ 在查询去向对话框中选择一种。
一般多选择表或报表。
(8)运行查询
在查询设计器打开的状态下,单击常用工具栏上的!按钮或从查询菜单中选择运行查询。
其他情况下,可从项目管理器中选中查询文件并单击运行按钮,或从程序菜单中选择执行命令,或从命令窗口中输
入:DO 查询文件名。
(9)创建多表查询
打开查询设计器→ 将所需的多个相关表添加进来→ 设置联接条件→ 按上面(2)至(8)步进
行。
3. 用查询向导创建查询
(1)创建标准查询:
打开待查询的数据表→ 从文件菜单中单击新建→ 在新建对话框中选择查询并单击向导→ 选择查询向导→ 从单张或多张相关的表中进行字段选取→ 设置筛选条件→ 设置排序次序→ 选择查询结果的保存方式→ 给出查询文件名并选择保存位置→ 查询结果显示在查询窗口中。
注意:查询此时得到的数据是只读的,不可以更新。
(2)交叉表查询
打开待查询的数据表→ 从文件菜单中单击新建→ 在新建对话框中选择查询并单击向导→ 选择交叉表向导→ 从单张表中选取字段→ 设计布局→ 加入总和信息→ 选择查询结果的保存方式→ 给出查询文件名并选择保存位置→ 查询结果显示在查询窗口中。
注意:不是任何表都适宜采用交叉表的形式。
(3)用SELECT-SQL命令创建查询
常用的格式:
SELECT 表名1. 字段名1 [AS 标题名1], 表名1. 字段名2 [AS 标题名2], …
FROM 数据库名! 表名1 [,数据库名! 表名2 ] [, 数据库名! 表名3 ]
[TO FILE 文本文件名| into table | into cursor 表文件名]
[ WHERE 选定条件]
[GROUP BY 分组字段名]
[HAVING 分组中的满足条件]
[ORDER BY 排序字段名1 [ASC | DESC] [, 排序字段名2 [ASC | DESC] ...]]
示例:
浏览学生中的查询学生student.qpr :
SELECT 表xs.xh as 学号, 表xs.xm as 姓名, 表xs.xb as 性别, ;
表xs.csrq as 出生日期, 表xs.bj as 班级名称;
FROM 数据test!表xs;
WHERE 表xs.bj =cs1;
ORDER BY 表xs.xh;
INTO TABLE xs
浏览成绩中的按课程查询sub_cj.qpr :
SELECT 表xs.bj as 班级名称, COUNT(表xs.xh) as 班级人数, AVG(表cj.cj) as 平均分, ;
MAX(表cj.cj) as 最高分, MIN(表cj.cj) as 最低分;
FROM 数据test!表xs, 数据test!表cj, 数据test!表kc;
WHERE 表cj.xh = 表xs.xh;
AND 表kc.kcm = 表cj.kcm;
AND 表cj.kcm = sc1;
GROUP BY 表xs.bj;
ORDER BY 表xs.bj;
INTO TABLE sub_cj
5.2 创建视图
1. 视图的特点
1) 视图是存在于数据库中的一个虚表,不以独立的文件形式保存;
2) 视图中的数据是可以更改的,它不仅具有查询的功能,且可以把更新结果反映到源数据表中;
3) 视图打开时,其基表自动打开,但视图关闭时,其基表并不随之自动关闭;
4) 视图的数据源可以是自由表、数据库表或另一个视图。
2. 用视图设计器创建本地视图
从项目管理器中选择一个数据库→ 选择本地视图→ 单击新建按钮→ 选择新视图→ 添加所需的数据表→ 在视图设计器中按照与创建查询相同的步骤(2)~(6)建立视图→ 设置更新条件→ 保存视图→ 给出视图名称→ 关闭视图设计器(可以先运行一下看看)。
创建参数化视图:
在筛选页面的实例框中输入:?参数名→ 从查询菜单中选择视图参数→ 在对话框中给出参数名并选择参数类型→ 确定→ 保存视图→ 给出视图名称→ 关闭视图设计器(可以先运行一下看看)。
3. 用视图向导创建本地视图
从项目管理器中选择一个数据库→ 选择本地视图→ 单击新建按钮→ 选择视图向导→ 选取字段→ 关联表→ 记录操作范围→ 筛选记录→ 排序记录→ 选择保存方式→ 完成。
4. 用CREATE SQL VIEW 命令创建视图
打开数据库,用命令来创建视图:
OPEN DATABASE 数据库名
CREATE SQL VIEW 视图文件名AS SQL-SELECT 语句
例: OPEN DATABASE SJ
CREAT SQL VIEW SCORE AS SELECT SJCJ.XH, SJCJ.CJ ;
FROM SJ!SJCJ WHERE SJCJ.KCH=”计算机基础”
5. 视图的使用
用菜单方式对视图中的记录进行编辑的方法与操作数据表相同。
也可用以下命令操作。
视图操作基本命令
6.利用视图更新源表数据
可在视图设计器的更新条件页面中进行如下设置来实现对源表数据的更新:
1)从表框中选择想要更新的源表;
2)在字段名框中单击一个字段前关键列B 和更新列! ,使其作为主关键字和可更新字段;
3)将发送SQL 更新复选框选中
5.3 SQL 语言中的命令语句
SQL是一种日趋流行的标准的数据库系统管理语言,能使数据检索异常地方便、灵活。
VFP6.0支持的7条SQL命令一览表。