Visual FoxPro 6.0学习笔记十

第十章查询与视图

一、利用查询向导建立查询文件

(1)执行系统“文件”/“新建”命令,从弹出的“新建文件夹类型”对话框中选择“查询”并单击“向导”按钮。

(2)在弹出的“向导选取”对话框中选择“查询向导”并单击“确定”按钮,将弹出“选取字段”对话框。

(3)在“可用字段”列表中双击“学号”、“姓名”、“性别”、“专业”、“出生日期”、“入学成绩”、“是否为党员”等字段,将其添加到“选定字段”列表中,单击“下一步”按钮,将弹出“筛选记录”对话框。

(4)在“筛选记录”对话框中的“字段”、“操作符”、“值”列表框中选择或输入“STUDENT.出生日期”、“大于”、{^1977-09-30}(下面图片中输入错误,请注意!),在下一行“字段”、“操作符”、“值”列表框中选择或输入“STUDENT.性别”、“等于”、“女”,并在两行之间的单选按钮组中选中“与”,单击“下一步”按钮,将弹出“排序记录”对话框。

(5)在“排序记录”对话框的“可用字段”列表中双击“STUDENT.学号”字段,将其添加到“选定字段”列表中,然后单击“完成”按钮,将弹出“完成”对话框。

(6)在“完成”对话框中选择“保存并运行查询”,单击“完成”按钮。

(7)在弹出的“另存为”对话框的“文件名”框中输入“学生查询”,并单击“保存”按钮,则完成了查询文件“学生查询.QPR”的建立,同时系统会自动运行该查询文件。

二、利用查询设计器设计查询

1.利用查询设计器建立基于单表的查询

(1)打开“Xsgl.DBC”数据库,执行“文件”菜单中的“新建”命令,将弹出“新建”对话框,在对话框中选择“查询”后单击“新建文件”按钮,将弹出“添加表或视图”对话框。

(2)在“数据库中的表”列表框中选择“STUDENT”,并单击“添加”按钮,将表“STUDENT.DBF”添加到“查询设计器”窗口,单击“关闭”按钮,将弹出“查询设计器”窗口。

(3)在“字段”选型卡的“可用字段”中双击“专业”字段将其添加到“选定字段”区;在“函数与表达式”框中输入“AVG(STUDENT.入学成绩)”,并单击右侧“添加”按钮,将其添加到 “选定字段”列表中。

(4)在“排序依据”选项卡的“选定字段”框中双击“AVG(STUDENT.入学成绩)”字段,将其添加到右侧的“排序条件”框中。

(5)在“分组依据”选项卡的“可用字段”框中双击“专业”字段,将其添加到右侧的“分组字段”框中。

(6)最后,在命令窗口中执行:

DO  平均成绩查询.QPR&&执行查询文件,运行查询的结果为:

利用查询设计器建立查询时,系统会根据用户所做的查询设置自动生成相应的SQL语言的查询语句。

SELECT Student.专业, AVG(Student.入学成绩);
 FROM xsgl!student;
 GROUP BY Student.专业;
 ORDER BY 2

2.利用查询设计器建立基于多表的查询

(1)打开“Xsgl.DBC”数据库,执行“文件”菜单中的“新建”命令,将弹出“新建”对话框,在对话框中选择“查询”后单击“新建文件”按钮,将出现“添加表或视图”对话框。

(2)在“数据库中的表”列表框中依次选择“STUDENT”、“COURSE”和“SCORE”三个表,并单击“添加”按钮,将三个表添加到“查询设计器”窗口,单击“关闭”按钮,将弹出“查询设计器”窗口。

(3)在“字段”选项卡的“可用字段”中的“STUDENT.姓名”、“COURSE.课程名”、“COURSE.学分”和“SCORE.成绩”等字段添加到“选定字段”区。

(4)在“筛选”对话框中的“字段”、“操作符”、“值”列表框中选择或输入“STUDENT.姓名”、“等于”、“郭树甜”。

(5)单击“筛选”选项卡,观察系统默认的三个表之间额连接条件(无需修改)。

(6)在“查询设计器”窗口中执行“查询”/“运行查询”命令,或者单击“常用”工具栏上的叹号状按钮,观察查询的运行结果。

关闭查询运行后的“浏览”窗口,在“查询设计器”窗口中,执行“查询”/“查看SQL”命令,观察所弹出窗口中显示的SQL语句。

三、视图的设计与应用

1.利用“视图设计器”设计视图

利用“视图设计器”,在“Rsgl”数据库中创建一个包含“工资.编号”、“员工.姓名”、“工资.基本工资”、“工资.奖金”、“工资.补贴”、“工资.扣税”和“工资.实发工资”的工资视图,并能通过对视图的修改,更新“工资.DBF”表中的部分字段的数据。

(1)在“数据库设计器”中打开“Rsgl”数据库,用鼠标右键单击“数据库设计器”窗口的空白处,从弹出的快捷菜单中选择执行“新建本地视图”命令,根据提示将“员工”和“工资”表添加到“视图设计器”窗口中。

(2)在“字段”选项卡的“可用字段”列表中,将“工资.编号”、“员工.姓名”、“工资.基本工资”、“工资.扣税”和“工资.实发工资”等字段添加到右侧的“选定字段”框中。

(3)在“联接”选项卡中设置“员工”和“工资”表按“编号”字段实现内部连接(Inner Join)。

(4)切换至“更新条件”选项卡,在指定可更新表的列表中选择“工资”,在可更新“字段名”列表框中的“工资.编号”字段左侧的钥匙标记列下单击,设定“编号”为关键字段,然后分别在“工资.补贴”和“工资.实发工资”字段左侧的铅笔标记所在的列单击,将“补贴”和“实发工资”字段设置为可修改字段,并选中“发送SQL更新”复选框和“SQL UPDATE”单选项,设置更新条件。

(5)关闭“视图设计器”窗口,将所设计的视图保存好,视图名为“工资视图”,并返回“数据库设计器”。

(6)USE 工资视图&&打开工资视图

BROWSE&&浏览视图

运行结果为:

REPLACE ALL 补贴 WITH 补贴+100&&将表格中所有的补贴增加100元

BROWSE&&浏览此时视图的结果

运行结果为:

REPLACE ALL 实发工资 WITH 基本工资+奖金+补贴-扣税&&将实发工资变更为基本工资+奖金+补贴-扣税得到的数值

BROWSE&&查看结果

运行结果为:

CLOSE ALL&&关闭所有

USE 工资&&打开工资表

BROWSE&&查看表中结果是否发生变化

运行结果为:

2.利用命令设计视图

OPEN DATABASE Rsgl&&打开Rsgl数据库

CREATE SQL VIEW 工资查询 AS SELECT 员工.编号,员工.姓名,员工.部门代码,工资.实发工资;

FROM Rsgl!员工,Rsgl!工资 WHERE 员工.编号=工资.编号&&创建了一个名为工资查询的视图,该视图是从员工表和工资表中提取了编号,姓名,部门代码,实发工资字段,两张表的是依据编号字段相连接的。

运行结果为:

SELECT 部门代码,SUM(实发工资) AS "工资总和" FROM 工资查询 GROUP BY 部门代码&&计算各个部门的实发工资的总和。

运行结果为:

思考与练习

利用查询设计器设计一个查询,实现从 Xsgl.DBC 数据库(如图 10-7 所示)中获
取“数据库原理与应用”课程的学生成绩信息(包括学生姓名、学号、课程名称、学分
和成绩等字段)。
DO f:\vfp98\查询5.qpr&&这个查询命名为查询5
4 .基于 Xsgl.DBC 数据库,按命令方式在该数据库中创建一个“潘璋成绩”的视图(包
括姓名、课程名称和成绩字段),并从该视图中统计出“潘璋”所学课程的平均成绩,请写
出完成上述任务所需的命令序列。
利用视图设计器的做法:
利用命令的做法:
OPEN DATABASE XSGL
CREATE SQL VIEW 视图4 AS SELECT STUDENT.姓名,COURSE.课程名称,SCORE.成绩;
FROM XSGL!STUDENT,XSGL!COURSE,XSGL!SCORE;
WHERE STUDENT.学号=SCORE.学号 AND COURSE.课程编号=SCORE.课程编号 AND STUDENT.姓名="潘璋"
USE 视图4
BROW
运行结果为:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值