全国计算机等级考试二级Visual Foxpro 教案_第1页
全国计算机等级考试二级Visual Foxpro 教案_第2页
全国计算机等级考试二级Visual Foxpro 教案_第3页
全国计算机等级考试二级Visual Foxpro 教案_第4页
全国计算机等级考试二级Visual Foxpro 教案_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试二级

VisualFoxpro教案

NationalComputerRankExamination

VisualFoxproTeachingPlanning

兴龙计算机教育中心

内部教材

作者:邹莫泊

全国计算机等级考试二级

VisualFoxpro教案

第一章VisualFoxPro数据库基础

第1课

知识点一

计算机数据管理阶段

1人工管理阶段

2文件系统阶段

3数据库系统阶段

知识点二

数据库系统构成

1数据库(DATABASE)

2数据库管理系统(DBMS)

3数据库应用系统(DBAS)

4数据库管理员(DBA)

知识点三

数据库系统主要特点

1实现数据共享、减少数据冗余

2采用特定的数据模型

3具有较高的数据独立性

4有统一的数据控制功能

知识点四

实体和实体间联系

1实体(对客观事物的描述)

例如:教师、计算机、汽车等都是实体

2实体的属性(指实体的一些特性)

例如:学生的相关属性(学号、姓名、性别等)

3实体间的联系

一对一联系/一对多联系/多对多联系

例如:部门和职工之间的联系属于一对多联系。

练习题

1班级和班长之间的联系属于()联系。

2顾客和商品之间的联系属于()联系。

知识点五

数据库模型

1层次数据模型

用树型结构表示实体间的联系

2网状数据模型

主要优点:表达多对多联系很灵活

3关系数据模型

用二维表来表示实体和实体间的联系

知识点六

关系数据模型

1关系(指一张二维表格)

VisualFoxPro中关系为一个表文件,扩展名为.DBF。

例如:学生表就是一个关系,VF表示为学生表.DBF。

2元组(指二维表的一行)

例如:学生表中学号为“1103”的记录即为一个元组

因为学号唯一,所以这样的元组只有一个。

3属性(指二维表垂直方向的列)

例如:学生表的学号、姓名、性别等都是属性

属性在VF中又称为字段名

4域(指属性的取值范围)

例如:月份取值范围是1至12

5关键字(指能够唯一标识一个元组的属性)

例如:学号是关键字,而姓名不是。

通常在VF中称这种关键字为主关键字

知识点七

专门的关系运算

1选择(指水平方向的运算)

从关系中找出满足条件的元组称为选择

例如:从学生表找出所有男生的记录(条件:性别="男")

2投影(指垂直方向的运算)

从关系中指定若干个属性组成新的关系称为投影

例如:从学生表中列举所有学生的姓名和家庭住址

3连接(指两个表进行连接)

4自然连接(指去掉重复属性的等值连接)

练习题

3从学生表中找出所有学生的身份证号属于()运算。

4从学生表中找出所有姓王的女生属于()运算。

第2课

知识点一

VisualFoxPro系统概述

1VisualFoxPro6.0是一个32位数据库管理系统

2熟悉VisualFoxPro6.0工作界面

知识点二

VisualFoxPro6.0上机主要考点

1项目管理器

2向导/设计器/生成器/命令窗口

3数据库设计

4查询和视图

5程序设计

6表单设计

7菜单设计

8报表设计

9连编应用程序

第二章VisualFoxPro程序设计基础

第1课

知识点一

常量的类型

1数值型常量

例如:3、-6.78、1.6E-12(表示1.6x10」2)

2字符型常量

用单引号/双引号/方括号将字符串包含

例如:“计算机"、‘123'、[ABC]

注意:“"称为空串,而”“称为空格字符串。

3日期型常量

严格日期格式:{Ayyyy-mm-dd}

例如:{—2008-08-08}表示2008年8月8日

4日期时间型常量

完整格式:{〈日期〉,〈时间〉}

时间部分格式:hh:mm:ssAM|PM

例如:卜2001-03-22,03:25:30PM}

表示2001年3月22日下午3点25分30秒

5逻辑型常量

只有逻辑真和逻辑假两个值。

VF中用.T.表示逻辑真,用.F.表示逻辑假。

例如:学生表中〈是否党员〉字段类型为逻辑型

知识点二

变量的定义和使用

1变量必须以字母、汉字或下划线开头

例如:A、姓名、S_NO等都是合法的变量

而3AB、A+B则是非法变量

2变量的赋值

格式一:变量名=表达式

例如:A=3和A=B+C*D都是合法的语句

而A+B=C则是非法的,左边A+B并不是变量。

格式二:STORE表达式TO变量列表

例如:STORE5TOX1,X2,X3

表示同时给X1,X2,X3赋值5

知识点三

数组的定义和使用

格式:DIMENSION数组名

或DECLARE数组名

例如:DIMENSIONX(3)

上述数组包含3个元素X(1),X(2),X(3)

DECLAREY(2,3)

上述数组是一个二维数组,共包含

Y(1,1),Y(1,2),Y(1,3),Y(2,1),Y(2,2),Y(2,3)6个元素。

知识点四

表达式值的显示

格式一:?〈表达式,

例如:?3+4*5将显示结果23

格式二:??〈表达式,

例如:??[计算机]将显示结果计算机

上述两种格式的区别:

?每输出一个结果就自动换行,而??不会换行。

第2课

知识点一

常规表达式

1数值表达式

例如:3+5*63+5A23+20/3

3+15%23+MOD(100,3)(%和MOD均表示求余数)

2字符表达式

字符串运算符:

+前后两个字符串首尾连接

-连接前后两个字符串,前字符串尾部空格移至最后。

例如:a="Hello“尾部有一个空格

b=,,everyone!"

a+b="Helloeveryone!"

a-b="Helloeveryone!"尾部有一个空格

3日期时间表达式

运算符有两个:+和-

例如:卜2001-03-19}+10结果为{人2001-03-29}

{A2001-03-19}-{A2000-03-19}结果为365

知识点二

关系表达式

例如:a>ba<=3aoba#ba!=b

(<>#!=均表示不等于)

“计算机"$"计算机等级考试”($表示子串包含测试)

标准信息交换码(ASCII码)

大写字母A65B66…依此类推

小写字母a97b98…依此类推

数字0-9048149…依此类推

空格32

常见的比较规则:

1)越早的日期越小,越晚的日期越大。

例如:卜2002-01-10}>{A2001-12-28}

2)逻辑型数据比较

规则是.T.大于.F.

3)字符串的比较(默认按拼音方式比较)

例如:“bcd”>“abcd”“计算机"〉“电脑”

知识点三

逻辑表达式

逻辑运算符:NOT徘)AND(与)OR(或)

优先级NOT>AND>OR

运算规则表

NOT

操作数结果

.T..F.

.F..T.

AND

操作数1操作数2结果

.T..T..T.

.T..F..F.

.F..T..F.

.F..F..F.

OR

操作数1操作数2结果

.T..T..T.

.T..F..T.

.F..T..T.

.F..F..F.

例如:6>5OR5<>5AND10<=10最终结果为.T.

例如:用逻辑表达式表示年龄大于18的男同学

年龄>18AND性别="男”

练习题

1将A和B的平方和赋给C,请写出两种表达式。

2定义一个3行4列的矩阵XY乙请写出表达式。

,,),

3判断表达式'A'>'5'AND6>=6ORNOT[A]=AO

4用逻辑表达式表示年龄在[18,20]的学生或计算机

专业的女生。

第3课

知识点一

数学函数

1绝对值函数ABS(表达式)

例如:ABS(-6)=6

2符号函数SIGN(表达式)

当表达式为正时,结果为1

当表达式为负时,结果为-1

当表达式为0时,结果为0

例如:SIGN(5*5)=1SIGN(-4)=-1

3平方根函数SQRT(表达式)

例如:SQRT(SQRT(81))=3

4求余函数MOD

例如:MOD(10,3)=1

而MOD(3,10)=3

5最大值MAX和最小值MIN

例如:MAX(15*15,224,226)=226

MIN(“汽车",“飞机“,“轮船")="飞机”

知识点二

字符函数

1字符串长度函数LEN(表达式)

例如:LEN("STUDENT")=7

而LEN(“学生”)=4

2删除前后空格函数ALLTRIM(表达式)

例如:ALLTRIMfSTUDENT")="STUDENT”

3取子串函数

左字符串函数LEFT(表达式,长度)

例如:LEFT("STUDENT",3)="STU”

右字符串函数RIGHT(表达式,长度)

例如:RIGHT("STUDENT",4)="DENT”

中间字符串函数SUBSTR(表达式,起始位置,长度)

例如:SUBSTR(UVISUALFOXPRO”,8,3)="FOX”

SUBSTRfVISUALF0XPR0",8)="F0XPR0”

4求子串位置函数AT(表达式1,表达式2)

返回表达式1首字符在表达式2中的位置,若表达式1

不是表达式2的子串则返回0。

例如:AT("FOX","VISUALFOXPROH)=8

而AT("fox","VISUALFOXPRO"”。

5字符串匹配函数LIKE(表达式1,表达式2)

若两个表达式对应字符都匹配返回.T.否则返回.F.

表达式1中可包含通配符*和?

例如:LIKE(“ABC”,"ABC")=.T.

知识点三

日期和时间函数

1系统日期和时间函数

DATE()返回当前系统日期,函数值为日期型

TIMEQ返回当前系统时间,函数值为字符型

DATETIMEQ返回当前系统日期时间

2年份/月份/天数函数

YEAR(日期表达式)返回指定日期中的年份

MONTH(日期表达式)返回指定日期中的月份

DAY(日期表达式)返回指定日期中的天数

3小时/分钟/秒函数

HOUR(日期时间表达式)返回时间的小时数

MINUTE(日期时间表达式)返回时间的分钟数

SEC(日期时间表达式)返回时间的秒数

知识点四

数据类型转换函数

1数值转换字符串STR(数值表达式)

例如:STR(123)="123”

2字符串转换数值VAL(字符表达式)

例如:VAL(“123”)=123

3字符串转换日期CTOD(字符表达式)

例如:CTOD(“2008/08/08")={A2008-08-08}

4日期转换字符串DTOC(日期表达式)

例如:DTOC({A2008-08-08})=),2008/08/08),

知识点五

测试函数

1值域测试函数

BETWEEN(表达式T,表达式L,表达式H)

若T>=LANDT<=H函数返回.T.否则返回.F.

若L为NULL或H为NULL函数返回NULL

2表文件尾测试函数EOF()

若记录指针指向表尾函数返回.T.否则返回.F.

3表文件首测试函数BOF()

若记录指针指向表头函数返回.T.否则返回.F.

4条件测试函数

IIF(逻辑表达式,表达式1,表达式2)

若逻辑表达式为.T.函数返回表达式1的值,否则

返回表达式2的值。

例如:假设X的值是5

则IIF(X>=5,X+5,X-5)的最后结果是10

练习题

5计算表达式3+5A0+SIGN(16-SQRT(257))o

6用VF表达式表示一元二次方程的两根。

7用逻辑表达式表示所有姓王或末字为军的学生。

8用IIF函数表示A和B中的较大者。

第4课

知识点一

顺序语句

1输入语句

格式:INPUT字符表达式TO变量

例如:从键盘上输入一个整数并保存到变量A

INPUT"请输入一个整数"TOA

2输出语句

用?或??在屏幕上显示结果

例如:计算上例中A的平方并显示出结果

?A*A或??A*A

知识点二

条件语句

格式1:

IFv条件,THEN

语句序列

ENDIF

若条件为真则执行语句序列,否则结束。

格式2:

IFv条件,THEN

语句序列1

ELSE

语句序列2

ENDIF

若条件为真则执行语句序列1,否则执行语句序列2o

例如:输入一整数,若能被3整除则输出它的平方;

否则输出它的2倍。

INPUT"请输入一个整数"TOA

IFMOD(A,3)=0THEN

?A*A

ELSE

?A*2

ENDIF

知识点三

分支语句

语法格式:

DOCASE

CASE条件1

语句序列1

CASE条件n

语句序列n

OTHERWISE

语句序列

ENDCASE

分别对条件1-n判断,若某个条件成立则执行相应的语句

序列;若条件均不成立,则执行OTHERWISE后的

语句序列。

例如:输入一个分数,并根据此分数显示相应等级。

90到100优秀

80至I」89良

70至U79一般

其余差

INPUT"请输入一个分数"TOA

DOCASE

CASEA>=90ANDA<=100

GRADE=”优秀”

CASEA>=80ANDA<=89

GRADE",

CASEA>=70ANDA<=79

GRADE="一般”

OTHERWISE

GRADE="差”

ENDCASE

?”此分数对应的等级为"+GRADE

知识点四

循环语句

语法格式:

DOWHILE条件

语句序列

ENDDO

若条件为真则执行语句序列,然后再判断条件,若仍为真

则重复执行语句序列直到条件为假时循环结束。

例如:编程计算S=1+2+……+100的值。

s=o

K=1

DOWHILEK<=100

S=S+K

K=K+1

ENDDO

?S

练习题

9输入一个年份,若是闰年则输出“yes”;否则输出“n。”。

10输入一个整数x,输出下列表达式的值。

x2+1(x>0)

s=2x+3(x=0)

x2-1(x<0)

11计算1至999之间所有能被7整除的数之和。

第三章VisualFoxPro数据库及其操作

第1课

知识点一

建立数据库

通常有三种方法:

1在项目管理器中建立数据库

2在新建对话框中建立数据库

3使用命令建立数据库

命令窗口中输入:CREATEDATABASE数据库名

知识点二

打开数据库

通常有三种方法:

1在项目管理器中打开数据库

2在打开对话框中打开数据库

3使用命令打开数据库

命令窗口中输入:OPENDATABASE数据库名

知识点三

删除数据库

通常有两种方法:

1在项目管理器中删除数据库

删除时有两个选项:移去和删除

移去:从项目管理器中删除数据库,但对应数据库文件

仍然存在。

删除:从项目管理器中删除数据库,同时对应文件也被

删除。

2使用命令删除数据库

命令窗口中输入:DELETEDATABASE数据库名

知识点四

建立数据库表

通常有两种方法:

1在数据库设计器中新建表

2使用命令新建表

在命令窗口中依次输入:

OPENDATABASE数据库名

CREATE表名

知识点五

修改表结构

表结构修改主要包括:增加字段、删除字段、修改字段。

通常有两种方法:

1在数据库设计器中修改表结构

2使用命令修改表结构

在命令窗口中依次输入:

USE表名

MODIFYSTRUCTURE

知识点六

数据库表的相关概念

1字段名

指关系的属性名。例如:学号、姓名等。

2字段类型和宽度

常见的类型及符号定义

字符型C数值型N

浮点型F整型I

日期型D日期时间型T

逻辑型L货币型Y

3空值(记作NULL)

在数据库中表示暂未确定的值,它和数值。含义不同。

注意:数据库中某些字段不允许空值。(例如:学号)

4数据库表和自由表

数据库表:在数据库设计器中创建的表。

自由表:指那些不属于任何数据库的表。

可以将自由表添加到数据库中使之成为数据库表,也

可以将数据库表从数据库中移出使之成为自由表。

第2课

知识点一

浏览表记录

通常有两种方法:

1在数据库设计器中浏览表记录

2使用命令浏览表记录

命令窗口中依次输入:

USE表名

BROWSE

知识点二

增加记录

1APPEND命令

在表的尾部增加记录,有两种格式。

APPEND和APPENDBLANK

APPEND一次可连续输入多条新记录

APPENDBLANK在表的尾部增加一条空白记录

2INSERT命令

在表的任意位置插入新记录

INSERT[BEFORE]

若不指定BEFORE,则在当前记录之后插入一条

新记录;否则在当前记录之前插入一条新记录。

知识点三

删除记录

1逻辑删除(指作删除标记)

DELETE[FOR条件]

若省略[FOR条件]则只删除当前一条记录;否则删除

满足条件的所有记录。

例如:逻辑删除学生表中年龄为20的学生记录

USE学生

DELETEFOR年龄=20

2物理删除(指真正删除记录)

PACK

记录彻底被删除并且不能恢复。

3物理删除表的全部记录

ZAP

全部记录被删除并且不能恢复,但表仍然存在。

知识点四

修改记录

REPLACE[ALL]字段名WITH表达式

若省略[ALL]则只修改当前记录,否则修改全部记录。

例如:将当前表中所有学生的年龄加1

REPLACEALL年龄WITH年龄+1

知识点五

定位记录

1GO命令

GO记录号|TOP|BOTTOM

TOP是表头BOTTOM是表尾

例如:定位至第5条记录

GO5

2SKIP命令

SKIP偏移量

若偏移量为正,表示向后移动;否则向前移动。

若省略偏移量,表示向后移动1条记录。

例如:将指针定位至倒数第3条记录的位置

GOBOTTOM

SKIP-2

3LOCATE命令

LOCATEFOR条件

将指针定位在满足条件的第1条记录上,若没有满足

条件的记录则指向文件结束位置。

LOCATE命令常用的结构是:

LOCATEFOR条件

DOWHILEFOUNDQ

语句序列

CONTINUE

ENDDO

例如:输出学生表中所有女生的姓名和年龄

USE学生

LOCATEFOR性别="女”

DOWHILEFOUND()

?姓名,年龄

CONTINUE

ENDDO

练习题

1创建两个数据库表,并输入至少5条记录。

学生(学号8姓名10性别年龄)

销售(商品号5商品名20价格10.2)

2用VF命令将销售表中所有商品价格提高12.88%。

3输出学生表中所有姓王的男同学的姓名和年龄。

第3课

知识点一

索引的分类

1主索引

字段中不允许出现重复值,起主关键字作用。

一个表只能建立一个主索引。

2候选索引

候选索引和主索引具有相同的特性。

一个表可以建立多个候选索引。

3唯一索引

唯一索引保持同早期版本的兼容性,其唯一是指索引项

唯一,并不是字段值的唯一。

一个表可以建立多个唯一索引。

4普通索引

普通索引允许字段有重复值。

一个表可以建立多个普通索引。

知识点二

索引的建立和删除

建立索引有两种方法:

1在表设计器中建立索引

2使用命令建立索引

INDEXON索引表达式TAG索引名

[UNIQUE|CANDIDATE]

UNIQUE指明建立唯一索引

CANDIDATE指明建立候选索引

若上述两个都省略,表示建立普通索引。

例如:在学生表中建立一个名称为姓名的普通索引

INDEXON姓名TAG姓名

删除索引

DELETETAG索弓I名

删除全部索引

DELETETAGALL

例如:在学生表中删除前面建立的姓名索引

DELETETAG姓名

知识点三

数据完整性

1实体完整性

实体完整性是保证表中记录唯一的特性。

VisualFoxPro中用主关键字保证数据的实体完整性。

2域完整性

域完整性通常限定数据类型、取值范围、有效性规则等。

例如:年龄为整型,月份取值为1至12等。

3参照完整性

参照完整性反映表和表之间的关联。

参照完整性规则包括更新规则、删除规则和插入规则。

练习题

4创建两个数据库表:

学生(学号8姓名10)

选课(学号8课程号5成绩3.1)

5为学生表创建一个主索引(学号),再为选课表创建一个

普通索引(学号),最后建立两个表的关联。

第四章关系数据库标准语言SQL

第1课

知识点一

SQL语言概述

SQL全称为StructuredQueryLanguage(结构化查询语言)

知识点二

SQL基本格式

SELECT字段1,字段2,……字段n

FROM表名1,表名2,……表名n

WHERE条件

GROUPBY分组字段HAVING分组条件

ORDERBY排序字段ASC|DESC

INTOTABLE表名

知识点三

单表查询

首先建立以下四个表,本章所有例子均对此操作。

仓库(仓库号,城市,面积)

职工(仓库号,职工号,工资)

订购单(职工号,供应商号,订购单号,订购日期)

供应商(供应商号,供应商名,地址)

例1从职工表中查询所有职工的工资

SELECT工资FROM职工

例2从仓库表中查询所有记录

SELECT*FROM仓库

例3查询工资多于1230元的职工号

SELECT职工号FROM职工WHERE工资>1230

知识点四

多表查询

例1查询工资多于1230元的职工号和他们所在城市

方法一

SELECT职工号,城市FROM职工,仓库;

WHERE职工.仓库号=仓库.仓库号;

AND工资>1230

方法二

SELECT职工号,城市FROM;

职工INNERJOIN仓库;

ON职工.仓库号=仓库.仓库号;

WHERE工资>1230

例2查询工资多于1230元的职工向北京的供应商发出的

订购单号。

方法一

SELECT订购单号FROM职工,订购单,供应商;

WHERE职工.职工号=订购单.职工号;

AND订购单.供应商号=供应商.供应商号;

AND工资>1230AND地址="北京”

方法二

SELECT订购单号FROM;

职工INNERJOIN订购单INNERJOIN供应商;

ON订购单.供应商号=供应商.供应商号;

ON职工.职工号=订购单.职工号;

WHERE工资>1230AND地址="北京”

知识点五

嵌套查询

例1查询哪些城市至少有一个仓库的职工工资为1250元

SELECT城市FROM仓库WHERE仓库号;

IN(SELECT仓库号FROM职工;

WHERE工资=1250)

例2查询所有职工的工资都多于1210元的仓库信息

SELECT*FROM仓库WHERE仓库号;

NOTIN(SELECT仓库号FROM职工;

WHERE工资v=1210)AND仓库号;

IN(SELECT仓库号FROM职工)

练习题

1查询在北京的供应商的名称。

2查询向供应商S3发过订购单的职工的职工号和仓库号。

3查询和职工E1、E3都有联系的北京的供应商信息。

第2课

知识点一

特殊运算符

BETWEEN……AND表示在一定范围内查询

例1查询工资在1220元到1240元范围内的职工信息

SELECT*FROM职工WHERE工资;

BETWEEN1220AND1240

上述语句的等价写法是:

SELECT*FROM职工;

WHERE工资>=1220AND工资v=1240

LIKE表示模糊查询,通常和%一起使用。

例2查询供应商名中最后两字为公司的供应商信息

SELECT*FROM供应商;

WHERE供应商名LIKE"%公司”

上述语句的等价写法是:

SELECT*FROM供应商;

WHERERIGHT(供应商名,4)="公司”

知识点二

字段排序ORDERBY

例1查询所有职工信息并按工资升序排序

SELECT*FROM职工ORDERBY工资

例2查询所有职工信息,先按仓库号升序再按工资降序。

SELECT*FROM职工;

ORDERBY仓库号,工资DESC

知识点三

计算查询

COUNT(计数)SUM(求和)AVG(平均值)

MAX(最大值)MIN(最小值)

例1查询供应商所在地的数目

SELECTCOUNT(DISTINCT地址);

FROM供应商

上述语句中DISTINCT表示去掉重复值

例2求所有职工的工资总数

SELECTSUM(工资)FROM职工

例3求在WH2仓库工作的职工的最高工资

SELECTMAX(工资)FROM职工;

WHERE仓库号="WH2”

知识点四

分组查询GROUPBY

例1求每个仓库的职工的平均工资和仓库号

SELECT仓库号,AVG(工资)FROM职工;

GROUPBY仓库号

例2求至少有两个职工的每个仓库的平均工资和仓库号

SELECT仓库号,AVG(工资)FROM职工;

GROUPBY仓库号HAVINGCOUNT(*)>=2

知识点五

SQL的几个特殊短语

1只显示前几项记录TOPn

例如:显示工资最高的3位职工信息

SELECT*TOP3FROM职工;

ORDERBY工资DESC

注意:此短语必须和ORDERBY一起使用

2将查询结果存放到数组INTOARRAY

例如:查询所有职工信息并存放到数组A中

SELECT*FROM职工INTOARRAYA

3将查询结果存放到表中INTOTABLE

例如:查询所有职工信息并存放到WORKER表中

SELECT*FROM职工;

INTOTABLEWORKER

练习题

4查询所有仓库的平均面积。

5查询每个仓库中工资多于1220元的职工个数。

6查询工资低于本仓库平均工资的职工信息。

第3课

知识点一

插入数据

格式一:

INSERTINTO表名VALUES(字段1值,字段2值,……)

例1往仓库表中增加记录(“WH45”,“天津”,4500)

INSERTINTO仓库VALUES(“WH45”,”天津”,4500)

格式二:

INSERTINTO表名FROMARRAY数组名

例2有一空表ZG,将前面数组A的数据插入到ZG中。

INSERTINTOZGFROMARRAYA

知识点二

更新数据

格式:UPDATE表名SET字段=表达式[WHERE条件]

例1将WH1仓库的职工工资提高10%

UPDATE职工SET工资=工资*1.1;

WHERE仓库号="WH1”

例2将所有学生的年龄增加1岁

UPDATE学生SET年龄=年龄+1

知识点三

删除数据

格式:DELETEFROM表名[WHERE条件]

例1删除仓库表中WH2仓库的信息

DELETEFROM仓库WHERE仓库号="WH2”

例2删除职工表的全部信息

DELETEFROM职工

练习题

7插入一个新的供应商元组(S9,智通公司,沈阳)。

8删除目前没有任何订购单的供应商。

9将低于所有职工平均工资的职工提高5%的工资。

第4课

知识点一

创建表

格式:CREATETABLE表名(字段1类型,字段2类型,.

例如:按如下要求创建一个学生表

学号字符型10成绩数值型2.1

CREATETABLE学生(学号C(10),成绩N(2,1))

知识点二

修改表

格式:ALTERTABLE表名ADD|ALTER字段

[CHECK表达式]

例1为订购单表增加一个总金额N(8,2)字段

ALTERTABLE订购单ADD总金额N(8,2)

例2将订购单表的订购单号字段宽度改为10

ALTERTABLE订购单ALTER订购单号C(10)

例3为订购单表总金额增加有效性规则(总金额>100)

ALTERTABLE订购单ALTER总金额;

SETCHECK总金额>100

知识点三

创建视图:CREATEVIEW视图名ASSELECT语句

例1创建一个视图MyView,包含WH1仓库职工信息。

CREATEVIEWMyViewAS;

SELECT*FROM职工;

WHERE仓库号="WH1”

删除视图:DROPVIEW视图名

例2删除前面创建的MyView视图

DROPVIEWMyView

练习题

10为教师表的教师号增加有效性规则:教师号最左边

三位字符是110。

11为学院表增加一个字段:教师人数(整数),同时设置

有效性规则:教师人数>=0。

12创建一个视图SView,包含工资不在[1000,1300]的

职工信息。

第五章SQL综合实例

例1学生(学号,姓名,出生日期)

选课(学号,课程号,成绩)

课程(课程号,课程名,学时)

1)查询18岁以上的学生的学号和姓名。

2)查询最年长的三位学生的姓名。

3)查询所有含有“程序设计”四个字的课程名。

4)查询选修了”数据库原理”且成绩在85分以上的学生的

学号和姓名,按学号升序和姓名降序保存至STU中。

5)查询每门课程的课程名和最高分。

6)查询没有选修任何课程的学生的姓名。

7)查询至少选修了两门课程的学生的学号和姓名。

8)查询选修了课程的学生人数。

9)将所有末字为"军"的学生出生日期更改为1983/5/12。

10)为学生表增加字段“实交学费"(整数),同时设置规则

实交学费>0。

解答:

1)SELECT学号,姓名FROM学生;

WHEREYEAR(DATE())-YEAR(出生日期)>18

2)SELECTTOP3姓名FROM学生;

ORDERBY出生日期

3)SELECT课程名FROM课程;

WHERE课程名IN(“程序设计”)

4)方法一

SELECT学生.学号,姓名FROM学生,选课,课程;

WHERE学生.学号=选课.学号;

AND选课.课程号=课程.课程号;

AND课程名=”数据库原理”AND成绩>85;

ORDERBY学生.学号,姓名DESC;

INTOTABLESTU

方法二

SELECT学生.学号,姓名FROM;

学生INNERJOIN选课INNERJOIN课程;

ON选课.课程号=课程.课程号;

ON学生.学号=选课.学号;

WHERE课程名=”数据库原理”AND成绩>85;

ORDERBY学生.学号,姓名DESC;

INTOTABLESTU

5)SELECT课程名,MAX(成绩)最高分;

FROM选课,课程;

WHERE选课.课程号=课程.课程号;

GROUPBY选课.课程号

6)SELECT姓名FROM学生WHERE学号;

NOTIN(SELECT学号FROM选课)

7)SELECT学号,姓名FROM学生;

WHERE学号IN(SELECT学号FROM选课;

GROUPBY学号HAVINGCOUNT(课程号)>=2)

8)SELECTCOUNT(DISTINCT学号)FROM选课

9)UPDATE学生SET出生日期={A1983-05-12};

WHERERIGHT(姓名,2)="军”

10)ALTERTABLE学生ADD实交学费I;

CHECK实交学费>0

例2工程(工程号,工程名,费用)

开工(工程号,零件号,数量)

零件(零件号,零件名,颜色)

1)查询所有和红色相关的工程的工程号。

2)查询同时使用了P2、P3、P4三种零件的工程名。

3)查询至少使用了两种零件的工程的工程名和费用。

4)查询费用低于所有工程平均费用的工程名。

5)创建视图SVIEW,包含每种零件的零件号和使用数量。

1)SELECT工程号FROM开工;

WHERE零件号IN(SELECT零件号FROM零件;

WHERE颜色="红”)

2)SELECT工程名FROM工程;

WHERE工程号IN(SELECT工程号FROM开工;

WHERE零件号="P2")AND工程号IN;

(SELECT工程号FROM开工WHERE零件号="P3");

AND工程号IN(SELECT工程号FROM开工;

WHERE零件号="P4”)

3)SELECT工程名,费用FROM工程;

WHERE工程号IN(SELECT工程号FROM开工;

GROUPBY工程号HAVINGCOUNT(零件号)>=2)

4)SELECT工程名FROM工程;

WHERE费用〈(SELECTAVG(费用)FROM工程)

5)CREATEVIEWSVIEWAS;

SELECT零件号,SUM(数量)使用数量;

FROM开工GROUPBY零件号

第六章表单设计与应用

第1课

知识点一

对象和类

1对象

客观世界里任何实体都被看作是对象。

例如:一台计算机,一个学生都可作为对象。

2类

类是由一系列相同特征的对象构成的集合。

例如:学生类、汽车类、电视机类等。

知识点二

属性和事件

1属性

属性是指对象具有的相关特征。

例如:学生相关属性有学号、姓名、兴趣爱好等。

2事件

事件是指在特定环境下产生的过程。

例如:鼠标单击、键盘按键等都是事件。

知识点三

创建表单和运行表单

1创建表单

通常有两种方法:

1)使用表单设计器创建表单

2)使用表单向导创建表单

2运行表单

通常有两种方法:

1)打开表单设计器,单击工具栏上运行按钮

2)在命令窗口中输入:

DOFORM表单文件名

第2课

知识点一

标签控件Label

通常在表单上用来显示静态文本。

主要属性:

1Name属性

表示标签的名称,每个标签的名称是唯一的。

2Caption属性

表示标签上显示的文本。

例1在表单上画一个名为Mylab的标签并显示文字

“计算机等级考试”

操作:

1)将标签Name属性改为Mylab

2)将标签Caption属性改为”计算机等级考试”

知识点二

命令按钮Command

通常用来完成某个特定功能如关闭表单、打印报表等。

主要属性:

1Name属性和Caption属性

这两个属性和标签控件中含义完全相同。

2Enabled属性

表示当前按钮是否可用,简称可用性。

若值为.T.表示可用,为E表示不可用。

3Visible属性

表示当前按钮是否可见,简称可见性。

若值为.T.表示可见,为.F.表示不可见。

例1表单上有一个名称为Mylab的标签和一个名称为

Mycmd的命令按钮。点击命令按钮后标签中显示

“大家好",同时命令按钮隐藏。

操作:

1)将标签Name属性改为Mylab

2)将命令按钮Name属性改为Mycmd

3)双击命令按钮,进入到Click事件中。

Thisforrn.Mylab.Caption="大家好"

Thisform.Mycmd.Visible=.F.

上述代码中Thisform是当前表单的对象名

知识点三

文本框TextBox

主要用于输入数据和编辑数据。

主要属性:

1Value属性

表示文本框中的内容

2PasswordChar属性

表示文本框中显示文本时的替换符

例1表单上有一个名称为Mytext的文本框。文本框中

内容为“我的密码”,但显示用*号代替。

操作:

1)将文本框的Value属性改为“我的密码”

2)将文本框的PasswordChar属性改为"*"

练习题

1表单上有两个文本框和一个命令按钮。点击按钮后将

文本框1中的文本复制到文本框2中。

2表单上有两个文本框和一个命令按钮。点击按钮后将

文本框1移至表单左上角,文本框2移至表单右下角。

第3课

知识点一

复选框Check

通常用来标记一个数据的两种状态。

主要属性:

1Caption属性

含义和前面的标签控件完全相同。

2Value属性

用来表示当前数据的状态。

值为0表示未选中,值为1表示选中。

例1表单上有两个复选框,名称为Checkl和Check2。

还有一个名称为Mylab的标签和一个名称为Cmd

的命令按钮。

要求:

1)Checkl和Check2的标题分别为数学和英语。

2)点击命令按钮,根据下表各种情形显示标签内容。

ChecklCheck2标签内容

选中未选中我喜欢的学科是数学

未选中选中我喜欢的学科是英语

选中选中我喜欢的学科是数学英语

操作:

1)将Checkl和Check2的Caption属性改为数学和英语。

2)双击命令按钮,进入Click事件。

Mytext="我喜欢的学科是”

IFThisform.Checkl.Value=1THEN

Mytext=Mytext+”数学,

ENDIF

IFThisform.Check2.Value=1THEN

Mytext=Mytext+"英语”

ENDIF

Thisform.Mylab.Caption=Mytext

知识点二

选项按钮组OptionGroup

通常包含若干个选项按钮,用户只能从中选择一个。

主要属性:

1ButtonCountMtt

表示选项按钮组中按钮的个数。

2Value属性

表示选项按钮组中被选中按钮的序号。

例1表单上有一个名称为MyOption的选项按钮组。

还有一个名称为Mylab的标签和一个名称为

Cmd的命令按钮。

要求:

1)选项按钮组包含3个按钮,标题分别是数学、英语、

计算机。

2)点击命令按钮,根据选择在标签中显示相应学科。

操作:

1)将选项按钮组的ButtonCount属性改为3。

2)分别将三个按钮Optionl,Option2,Options的Caption

依次改为“数学"、“英语“、“计算机”。

3)双击命令按钮,进入Click事件。

DOCASE

CASEThisform.MyOption.Value=1

Thisform.Mylab.Caption="数学"

CASEThisform.MyOption.Value=2

Thisform.Mylab.Caption="英语"

CASEThisform.MyOption.Value=3

Thisform.Mylab.Caption="计算机"

ENDCASE

知识点三

表格Grid

通常在表单上显示数据库表、查询、视图等。

主要属性:

1RecordSourceType属性

表示表格的数据源类型。

常用的取值:。表4SQL语句

2RecordSource属性

表示表格的数据源。

RecordSourceType为。时,此属性为一个表名。

RecordSourceType为4时,此属性为一个SQL语句。

例1表单上有一个名称为Mygrid的表格控件。要求直接

使用表的方式显示仓库表。

操作:

1)将表格控件的RecordSourceType属性改为0

2)将表格控件的RecordSource改为“仓库”

例2表单上有一个名称为Mygrid的表格控件,要求使用

SQL语句显示仓库表的全部信息。

操作:

1)将表格控件的RecordSourceType属性改为4

2)将表格控件的RecordSource改为SELECT*FROM仓库

知识点四

页框PageFrame

通常包含多个页面,每个页面显示不同数据。

主要属性:PageCount属性

表示页框中包含页面的个数。

例1表单上有一个名称为Mypage页框。包含三个页面

三个页面中分别显示仓库表、职工表、订购单表。

操作:

1)将页框控件的PageCount属性改为3

2)选择第一页,在上面画一个表格控件。

将表格RecordSourceType改为0,将RecordSource

改为仓库。

3)要同样方法制作第二页和第三页。

练习题

3表单上有一个名称为MyOption的选项按钮组、三个

复选框、一个名称为Mylab的标签和一个命令按钮。

要求:

1)选项按钮组包含2个按钮,标题分别是男生、女生。

2)三个复选框的标题分别是VF、VB、C语言。

3)点击命令按钮,按下列格式在标签中显示相应结果。

(我是XX生,选修的课程是XXXXXX)

4表单上有一个名为Mygrid的表格控件和一个命令按钮。

点击按钮后表格中显示暂没有订购单的职工信息。

第4课

知识点一

计时器Timer

主要用于在一定时间间隔内重复某动作。

主要属性:

In怕rval属性表示计时器的时间间隔(单位:毫秒)

注意:1秒=1000毫秒

若将Interval改为0,则表示计时器不起作用。

主要事件:

计时器最常用的是Timer事件,表示在一定的时间间隔内

重复执行某过程。

例1表单上有一个计时器Timer!和一个标签Label"!。

要求程序运行后标签每0.1秒从右至左移动10,

当标签全部移出表单后再从最右端出现。反复循

环达到广告字幕的效果。

操作:

1)将计时器Timeri的Interval设为100。

2)双击计时器Timeri,进入到Timer事件。

ifThisform.Labell.Left+Thisform.Label1.Width<=0then

Thisform.Labell.Left=Thisform.Width

else

Thisform.Labell.Left=Thisform.Label1.Left-10

endif

知识点二

列表框List

主要用于将相关信息组成一个列表。

主要属性:

1RowSourceType属性

表示列表框中数据源类型

1值3SQL语句5数组6字段

2RowSource属性

表示列表框中数据源

3Value属性

表示列表框中被选中的项目

4MultiSelect属性

表示列表框是否可以多选

取值.T.或1可以多选

取值.F.或0不能多选

5List属性

表示列表框中所有数据项

例如:列表框List)中第3项为List1.List(3)

6ListCount属性

表示列表框中项目总数

7Listindex属性

表示列表框中被选中项目的序号

8Selected属性

表示列表框中某项目是否被选中

例如:若列表框Li列1中第2项被选中,则输出“Yes”;

否则输出“No”。

IFThisform.List1.Selected(2)THEN

?“Yes”

ELSE

?“No”

ENDIF

主要方法:

1)Additem增加项目

例如:在列表框Listl中增加一项”VF程序设计”。

List1.Addltem("VF程序设计")

2)Removeitem册U除项目

例如:将列表框Listl中第3项删除。

Listl.Removeltem(3)

例1表单上有一个列表框、一个标签和一个命令按钮。

列表框中有三个项目:VF、VB、C语言。选中

一个项目并点击按钮,标签中显示相应信息:

(我选修的课程是XX)o

操作:

1)将列表框的RowSourceType属性改为1-值。

2)在列表框的RowSource属性中依次输入:

VF,VB,C语言。

3)双击命令按钮,进入Click事件。

S="我选修的课程是"

S=S+Thisform.Listl.Value

Thisform.Labell.Caption=S

例2表单上有一个列表框、一个文本框和两个命令按钮。

点击按钮一实现将文本框中内容增加到列表框中,

点击按钮二实现将列表框中选中的项目删除。

操作:

1)双击命令按钮一,进入Click事件。

Thisform.Listl.Addltem(Thisform.Text1.Value)

2)双击命令按钮二,进入Click事件。

Thisform.Listl.Removeltem(Thisform.List1.Listindex)

知识点三

组合框Combo

主要属性:

Style表示组合框的样式

常见的取值:

0下拉式组合框2下拉式列表框

其余属性(除MultiSelect外)和方法完全同列表框

知识点四

关闭表单

命令:THISFORM.RELEASE

练习题

5表单上有一个计时器和一个标签。要求表单运行后标签

中显示系统当前的时间,并每秒动态更新。

6使用计时器和标签制作从左至右的广告字幕效果。

7表单上有一个列表框Listl、一个文本框Text!和一个

命令按钮Commandl。要求在文本框中输入一个整数

(2-9)之间,点击命令按钮将10至100之间所有能被

此整数整除的数显示在列表框中。

第七章菜单设计与应用

第1课

知识点一

下拉式菜单

主要步骤:

1文件,新建,菜单,下拉式菜单

2输入各菜单的标题和内容

3保存菜单文件

4生成和运行菜单程序

例1新建一个名称为Mymenu菜单,包含两个菜单项:

操作和退出,保存和运行菜单。

操作:

1)文件,新建,菜单,下拉式菜单

2)分别输入两个菜单项的标题:操作和退出。

3)文件,保存,输入文件名Mymenu保存菜单。

4)菜单->生成,生成菜单程序Mymenu.mpro

5)在命令窗口输入:DOMymenu.mpr

知识点二

为顶层表单添加菜单

指表单运行时在上面加载并显示菜单。

主要步骤:

1建立一个下拉式菜单

2在常规选项对话框中选中“顶层表单”复选框

3建立一个表单并将ShowWindow属性设为2-顶层表单

4在表单的Init事件中加载菜单

DO菜单名.mprWITHthis

5在表单的Destroy事件中释放菜单

RELEASEMENU菜单名

例2新建一个顶层表单,并将例1中的菜单Mymenu

添加到表单中。

操作:

1)打开例1中的菜单Mymenu

2)在常规选项对话框中选中“顶层表单”复选框

3)重新生成菜单程序Mymenu.mpr

4)新建一个表单,将ShowWindow属性设为2-顶层表单。

5)进入表单的Init事件:

DOMymenu.mprWITHthis

6)进入表单的Destroy事件:

RELEASEMENUMymenu

知识点三

快捷菜单

指点击鼠标右键时弹出的菜单,又称弹出式菜单。

主要步骤:

1文件,新建,菜单,快捷菜单

2输入各菜单的标题和内容

3保存菜单文件

4生成菜单程序

5在表单的RightClick事件中弹出菜单

DO菜单名.mpr

例3建立一个快捷菜单Mymenu,包含两个菜单项:

日期和时间。再建立一个名称为Forml的表单,

实现在表单标题上显示当前日期和当前时间。

操作:

1)新文件,新建,菜单,快捷菜单

2)分别输入两个菜单项的标题:日期和时间

3)保存菜单并生成菜单程序Mymenu.mpr

4)新建一个表单,并进入RightClick事件:

DoMymenu.mpr

5)进入菜单项日期的命令事件:

Forml.Caption=DTOC(DATE())

6)进入菜单项时间的命令事件:

Forml.Caption=TIME()

知识点四

返回系统菜单

命令:SETSYSMENUTODEFAULT

练习题

1建立一个顶层表单Forml,上面添加一个菜单Menul

只有一个菜单项:退出,点击时退出表单。

2建立一个快捷菜单Mymenu,两个菜单项:年份和月份。

实现在表单Forml标题上显示年份和月份。

附录:全部练习题答案

第一章VisualFoxPr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论