VFP视图的SQL语句

视图既可以通过“视图设计器”来创建和修改,也可以利用命令方式来操作。

1.创建视图

  命令格式是:

CREATE SQL VIEw[<视图名)]EREMOTE]

ECONNECTION<联接名)ESHARE] |CONNECTION(ODBC数据源)]

[AS命令]

  按照AS子句中的SQL SELECT命令查询信息,创建本地或远程的SQL视图。

  例如,例7.i对应的命令是:

OPEN DATABASE D:\学生管理 &&先打开相应的数据库

CREATE SQL VIEW myview AS:

SELECT学生.学号,学生.姓名,学生.性别,学生.入学成绩;

FROM学生管理!学生

2.维护视图

  视图的维护主要包括对视图的重命名、修改和删除等操作。

(1)重命名视图

  命令格式是:

RENAME VIEw<原视图名)TO<目标视图名)

  该命令重命名视图。

(2)修改视图

  命令格式是:

MODIFY VIEw<视图名)EREMOTE~

  该命令打开视图设计器修改视图.

计算机二级VPF辅导:在VFP中建立查询

  掌握了查询设计器的使用方法,下面用具体的例子来说明查询设计的方法。现在对学生表建立一个查询,显示学生的学号、姓名、出生日期及入学成绩等信息,并按“入学成绩”的升序排列。

1.启动查询设计器

  启动查询设计器,并将学生表添加到查询设计器中。

2.选取查询所需的字段

  在查询设计器中单击“字段”选项卡,从“可用字段”列表框中选择“学号”字段,再单击“添加”按钮,将其添加到“选定字段”列表框中。使用上述方法将“姓名”、“出生日期”和“入学成绩”字段添加到“选定字段”列表框中,这4个字段即为查询结果中要显示的字段,显示结果中显示字段的顺序,用鼠标拖动选定的字段左边的小方块,上下移动,即可调整字段的显示顺序。

3.建立排序查询 ’

  如果在“排序依据”选项卡中不设置排序条件,则显示结果按表中记录顺序显示。现要求记录按“入学成绩”的升序显示,因此在“选定字段”列表框中选择“入学成绩”字段,再单击“添加”按钮,将其添加到“排序条件”列表框中,再选择“排序选项”的“升序”单选按钮,如图7.4所示。

4.保存查询文件

  查询设计完成后,选择系统菜单中“文件”下拉菜单的“另存为”选项,或单击常用工具栏上的“保存”按钮,打开“另存为”对话框。选定查询文件将要保存的位置,输入查询文件名,首发中国自学编程网,并单击“保存”按钮。

5.关闭查询设计器

  单击“关闭”按钮,关闭查询设计器。

  完成查询操作后,单击“查询设计器”工具栏中的“SQI。”按钮,或从“查询”菜单项中选择“查看SQL”命令,可看到查询文件的内容。例如,上面所建立查询的内容如下:

SEL,EcT学生.学号,学生.姓名,学生.出生日期,学生.入学成绩;

FROM学生管理!学生;

()RDER BY学生.入学成绩

计算机二级VFP辅导:VFP表的关联

所谓关联,就是当前表记录指针的移动,能引起别的表按某种条件相应地移动记录指针。建立关联后,称当前表为主文件,与主文件建立关联的表为子文件 。

1.一对一的关联

  命令格式是:

SET RELATION TO[<关联表达式l>]INTO(工作区号1)l(别名1)

[,(关联表达式2>INTO(工作区号2>I(别名2>]…][AI)DITIVE]

  该命令使当前表与INTO子句所指定的工作区上的表按表达式建立关联。

  命令中各子句的含义是:

(1)INTO子句指定子文件所在的工作区,<关联表达式>用于指定关联条件。

  可以使用索引表达式建立关联。首先在子文件中按某表达式建立索引并指定为主索引,然后使用某关联表达式建立关联,当关联成功后,每当主文件的记录指针移动时,Visual Fox—Pro就在子文件中查找索引表达式的值与主文件中关联表达式的值相匹配的记录,若找到了,则记录指针指向找到的第一条记录,如没有找到,则记录指针指向文件尾。注意,索引表达式和关联表达式不一定相同,当然大多数情况下是相同的。

  也可以使用数值表达式建立关联。当主文件的记录指针移动时,子文件的记录指针移至

  和主文件中数值表达式值相等的记录。

(2)若选择ADDITIVE,则在建立新的关联的同时保持原先的关联,否则会去掉原先的关联。

(3)省略所有选项时,SET RELATION TO命令将取消与当前表的所有关联。

2.一对多的关联

  前面介绍了一对一的关联,这种关联只允许访问子文件满足关联条件的第一条记录。如果子文件有多条记录和主文件的某条记录相匹配,当需要访问子文件的多条匹配记录时,就需要建立一对多的关联。

  命令格式是:

SET SKIP TO[(别名1)[,(别名2)…]

  该命令使当前表和它的子表建立一对多的关联。

  命令中各子句的含义是:

(1)别名指定子文件所在的工作区。如果缺省所有选项,则取消.主文件建立的所有一对多关联。

(2)一个主文件可以和多个子文件分别建立一对多的关联。因为建立一对多关联的表达式仍是建立一对一关联的表达式,所以建立一对多的关联应分两步完成:先使用命令SETRELATION建立一对一的关联(使用索引方式建立关联),再使用命令sET SKIP建立一对多的关联。

计算机二级VFP辅导:VFP工作区基础学习

1.工作区的概念 

  工作区是用来保存表及其相关信息的一片内存空间。平时讲打开表实际上就是将它从磁盘调入到内存的某一个工作区。在每个工作区中只能打开一个表文件,但可以同时打开与表相关的其他文件,如索引文件、查询文件等。若在一个工作区中打开一个新的表,则该工作区中原来的表将被关闭。

  有了工作区的概念,就可以同时打开多个表,但在任何一个时刻用户只能选中一个工作区进行操作。当前正在操作的工作区称为当前工作区。

2.工作区号与别名

  不同工作区可以用其编号或别名来加以区分。

Visual FoxPro提供了32767个工作区,系统以l~32767作为各工作区的编号。

  工作区的别名有两种,一种是系统定义的别名:1~lO号工作区的别名分别为字母A~J。另一种是用户定义的别名,用命令“USE(表文件名)ALIAs(别名)”指定。由于一个工作区只能打开一个表,因此可以把表的别名作为工作区的别名。若未用ALIAS子句对表指定别名,则以表的主名作为别名。

3.工作区的选择

  命令格式是:

SELECT(工作区号)|(别名)| O

  该命令选择一个工作区为当前工作区,以便打开一个表或把该工作区中已打开的表作为当前表进行操作。

  命令中各子句的含义是:

(1)工作区的切换不影响各工作区记录指针的位置。每个工作区上打开的表有各自独立的记录指针。通常,当前表记录指针的变化不会影响别的工作区中表记录指针的变化。

(2)SELECT 0表示选择当前没有被使用的最小号工作区为当前工作区。用本命令开辟新的工作区,不用考虑工作区号已用到了多少,使用最为方便。

(3)也可在USE命令中增加IN子句来选择工作区并打开表。例如,在l号工作区打开学生表,并给它取一个别名,可用命令:

USE学生ALIAS xs IN 1或USE学生ALIAS xs IN A

4.工作区的互访

  在当前工作区中可以访问其他工作区中的表的数据,但要在非当前表的字段名前加上别名和连接符,引用格式为:别名.字段名或别名一>字段名。

计算机二级VFP辅导:在VFP中建立索引文件的方法

1.用命令建立索引

  命令格式是:

INDEX ON(索引表达式)

TO<单索引文件名)I TAG(索引标志名)[OF<复合索引文件名>]

[FOR(条件)][c()MPACT][ASCENI)ING l I)ESCENI)ING][uNIQIjE][ADDITIVE]

  该命令对当前表建立一个索引文件或增加索引标志。

  命令中各子句的含义是:

(1)(索引表达式>是包含当前表中的字段名的表达式,表达式中的操作数应具有相同的数据类型。

(2)若给出TO(单索引文件名)子句,则建立一个单索引文件。若给出TAG(索引标志名)[OF<复合索引文件名>],则建立一个复合索引文件,或为已建立并打开的复合索引文件增加索引标志。OF<复合索引文件名)选项用于指定非结构复合索引文件的名字,省略此选项时,表示建立结构复合索引文件。

(3)若选择FOR(条件)选项,则只有哪些满足条件的记录才出现在索引文件中。

(4)选用COMP.ACT,则建立一个压缩的单索引文件。复合索引文件自动采用压缩方式。

(5)复合索引时,系统默认或选用ASCENDING,按索引表达式的升序建立索引。选用DEs(2ENDING按降序建立索引。单索引文件只能按升序索引。

(6)选用UNIQUE,对于索引表达式值相同的记录,只有第一个记录列入索引文件。

(7)选用ADDITIVE,建立本索引文件时,以前打开的索引文件仍保持打开状态。

vf编程计算3!+4!+5!

set talk off

s=0

p=1*2

n=3

do while n<=5

p=p*n

s=s+p

n=n+1

enddo

?s

  结果为150

计算机二级VPF辅导:VFP查询设计器

1.届动查询设计器 

  启动查询设计器,建立查询的方法很多:

(1)选择“文件”菜单下的“新建”选项,或单击常用“工具栏”上的“新建”按钮,打开“新建”对话框,然后选择“查询”并单击“新建文件”打开查询设计器建立查询。

(2)用cREATE QuERY命令打开查询设计器建立查询。

(3)利用SQL SELECT命令,直接编辑.qpr文件建立查询。

  下面介绍使用查询设计器建立查询的方法。

  不管使用哪种方法打开查询设计器建立查询,都首先进入图7.1所示的“添加表或视图”对话框,从中选择用于建立查询的表或视图,这时单击要选择的表或视图,然后单击“添加”按钮。如果单击“其他”按钮还可以选择自由表。当选择完表或视图后,单击“关闭”按钮正式进

  入如图7.2所示的查询设计器窗口。

  注意,当一个查询是基于多个表时,这些表之间必须是有联系的。查询设计器会自动根据联系提取联接条件,否则在打开图7.2所示的查询设计器之前还会打开一个指定联接条件的对话框,由用户来设计联接条件。

2.查询设计器的选项卡 、

  查询设计器中有6个选项卡,其功能和SQL SELECT命令的各子句是相对应的。

(1)字段。在“字段’’选项卡设置查询结果中要包含的字段,对应于SELECT命令中的输出字段。双击“可用字段”列表框中的字段,相应的字段枋自动移到右边的“选定字段”列表框中,中国自学编程网,www.zxbc.cn。如果选择全部字段,单击“全部添加”按钮。在“函数和表达式”编辑框中,输入或由“表达式生成器”生成一个计算表达式,如AVG(入学成绩)。

(2)联接。如果要查询多个表,可以在“联接”选项卡中设置表间的联接条件。对应于

JOIN ON子句。

(3)筛选。在“筛选”选项卡中设置查询条件。对应于wHERE子句。

(4)排序依据。在“排序依据”选项卡中指定排序的字段和排序方式。对应于ORI)ER BY子句。

(5)分组依据。在“分组依据”选项卡中设置分组条件。对应于GROUP BY子句和HAVING子句。

(6)杂项。在“杂项”选项卡中设置有无重复记录以及查询结果中显示的记录数等。

  由此可见,查询设计器实际上是SELECT命令的图形化界面。

看实例学VFP:更复杂的查询 时间:2009-02-12来源:编程入门网 作者:老马   在看实例学VFP:对表中记录进行定位与查找操作及看实例学VFP:用SELECT语句创建查询这两个例子中,我们可以在查询时可以从组合框中选定一个要查询的字段。本例对这种查询方式再做进一步改进,使之在查询时不仅可以从一个组合框中选取要查询的字段,还可以从另一个组合框中选定操作符(如<、=、>等),从而实现更复杂的查询。本例应用到了数据环境,并使用“数据1”数据库中的“人员信息表”作为数据环境的数据源,关于该数据库的情况已经在看实例学VFP:示例数据库一文中给出,这里不再详述。运行界面见本文末尾。   制作步骤如下:   一、新建表单,将其caption属性值设置为“更复杂的查询例子”,AutoCenter属性值设置为.T.,width属性值设置为520,height属性值设置为245,并保存为“更复杂的查询例子.scx”。   二、右击表单空白处,选“数据环境”命令,将“人员信息表”添加到数据环境中。在“数据环境设计器”中拖动“人员信息表”的标题栏到表单上,自动生成一个表格控件。由于是从数据环境中把“人员信息表”拖动过来由系统自动生成的,该表格控件的RecordSource属性及RecordSourceType属性已经由系统设置好了,不用管它,但name属性值系统给出的好长,为了书写代码的方便,我们把这个表格控件的name属性值修改为“grid1”。   三、在表格控件的下方添加一个Label控件,并把它的caption属性值设置为“查询条件”。   四、在label控件的右侧依次添加两个组合框控件、一个文本框控件及两个命令按钮command1和command2,并把这两个命令按钮的caption属性值依次设置为“查找”和“退出”。   五、适当调整各控件在表单上的位置,调整后的表单设计器如下图所示:   六、设置组合框控件的属性:   (一)组合框Combo1:RecordSourceType属性值设置为“8-结构”,RecordSource属性值设置为“人员信息表”。   (二)组合框Combo2:RecordSourceType属性值设置为“1-值”,RecordSource属性值设置为“,>,<,=,>=,<=,<>”。   七、添加事件代码:   (一)表单的unload事件代码:close data   (二)组合框Combo1的InteractiveChange事件代码: if alltrim(this.displayvalue)="出生日期" thisform.text1.value={} else thisform.text1.value='' endif   (三)“查找”按钮command1的click事件代码: if thisform.grid1.recordsource='临时人员信息表' thisform.grid1.recordsource='人员信息表' endif' private CXTJ if empty(thisform.combo1.displayvalue) or empty(thisform.combo2.displayvalue) ; or empty(thisform.text1.value) && 判断列表框和文本框是否为空 messagebox('请输入完整条件!',16,'系统提示') thisform.combo1.setfocus else do case case alltrim(thisform.Combo1.Displayvalue)='基本工资' CXTJ=alltrim(thisform.combo1.displayvalue); +' '+alltrim(thisform.combo2.displayvalue); +' '+alltrim(thisform.text1.value) case alltrim(thisform.Combo1.Displayvalue)='出生日期' CXTJ=alltrim(thisform.combo1.displayvalue); +' '+alltrim(thisform.combo2.displayvalue); +' ctod("'+dtoc(thisform.text1.value)+'")' otherwise CXTJ=alltrim(thisform.combo1.displayvalue); +' '+alltrim(thisform.combo2.displayvalue); +' "'+alltrim(thisform.text1.value)+'"' endcase Select * from 人员信息表 where &CXTJ. into cursor 临时人员信息表 thisform.grid1.recordsource='临时人员信息表' thisform.grid1.backcolor=rgb(200,224,248) endif   (四)“退出”按钮command2的click事件代码:thisform.release   八、运行“更复杂的查询例子.scx”,界面见下图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bryan Ding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值