《VF程序设计》课程知识要点
绪论 数据库系统概述
1.数据处理是对数据进行的采集、存储、检索、加工、变换和传输。 数据管理经历了人工管理、文件系统管理、数据库系统管理三个阶段。
2.数据库(Database,DB)是依照某种数据模型组织起来,并存放二级存储器中的数据集合。 数据库的基本结构分三个层次:(1)物理数据层。(2)概念数据层。(3)逻辑数据层。 数据管理技术发展过程经过人工管理、文件系统 和数据库系统三个阶段,其中数据独立性最高的阶段是数据库系统。
3.数据库管理系统(Database management system,DBMS)是位于用户与操作系统之间的一层数据管理软件,是操作系统支持下的系统软件。
4.数据库系统(Database system)实际是一个可运行的存储、维护和应用系统所提供数据的软件系统,是存储介质、处理对象和管理系统的集合体,它通常由数据库、数据库管理系统、应用程序和数据库开发人员和数据库管理人员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。
5.数据库一般有三种数据模型:层次型、网状型、关系型。
在关系模型中,每一个关系的逻辑结构都是一个二维表 ,表中的一行称为一条记录,表中的一列称为一个字段 。
关系运算是指从一个关系(二维表)经过关系运算后,得到一个新的关系(二维表结构),专门的关系运算包括:投影、选择和连接。
第1章 Visual FoxPro
6.Visual FoxPro是微软公司推出的数据库应用开发工具,常用版本Visual FoxPro6.0,它是中小型数据库应用系统的首选工具。Visual FoxPro的工作方式:交互操作方式和程序执行方式。其中交互操作方式又分为命令执行方式和菜单选择方式。
向导作为一种快捷的设计工具,通过一组对话框依次与用户对话,引导用户分布完成Visual FoxPro的某项任务。Visual FoxPro有20余种向导工具。
设计器用来创建和修改Visual FoxPro应用程序所需组件,生成器用来在Visual FoxPro应用程序组件中添加某些控件,或设置其属性。生成器不能独立使用,必须依附于某个设计器。
7.在Visual FoxPro 中,开发数据库应用系统(DBAS),通常为每个DBAS建立一个项目文件(扩展名为.pjx)
创建项目文件 create project <项目名>
修改项目文件 modify project <项目名>
“项目管理器”窗口是由6个选项卡组成,各选项卡的功能如下。 (1)“全部”选项卡:用于显示和管理项目包含的所有文件。
(2)“数据”选项卡:包含项目中所有的数据,如数据库、数据库表、自由表、查询和视图
等。
(3)“文档”选项卡:包含显示、输入和输出数据时所涉及到的所有文档,如表单、报表和标签等。
(4)“类”选项卡:显示和管理用户自定义类。
(5)“代码”选项卡:显示与管理各种程序代码文件,包括扩展名为*.PRG的程序文件和扩展名为*.APP的应用程序文件,以及API函数库等。
(6)“其他”选项卡:显示与管理有关的菜单文件、文本文件、位图文件、图标文件和帮助文件等。
第2章 表的基本操作
8.安装完Visual Foxpro后,系统自动使用默认值来设置环境。要定制自己的系统环境,使用”工具”菜单下“选项”命令。
用户文件默认路径的设置:工具——选项——“文件位置”选项卡——“默认目录”选项, 注意:设置为默认值,这样下次开机,系统设置的默认目录仍然有效。
9.数据库由一个以上相互关联的数据表组成,其文件扩展名为*.DBC,可以包含一个或多个表、视图、到远程数据源的连接和存储过程等。
用户可以同时打开多个数据库,但只能有一个数据库成为当前数据库。 创建数据库:
Create database <数据库名> 打开数据库:
Open database <数据库名> 设置当前数据库: Set database to <数据库名> 关闭数据库: Close database 删除数据库:
Delete database <数据库名> [ delete tables]
如果选用[ delete tables] 短语时,数据库中的所有数据表都将被删除;否则至删除数据库文件,原数据库中的表则变成自由表。
10.数据表是用来存储和管理数据记录,数据在表中是按行和列的格式排列的,每行代表唯一的记录,而每列代表记录的一个字段。表文件名可以由字母、汉字、数字和下划线组成,扩展名*.DBF。另外还有一个备注文件(.fpt),用来存放备注字段和通用字段的内容。 数据表又分为自由表和数据库表,自由表不能建立永久关系。
自由表中字段名由字母、汉字、数字或下划线等组成,其长度不超过10个字符。 数据库表中可以建立长字段名,最长可达128个字符,长文件名被存储在*.dbc文件的一个记录中,它的前10个字符同时还作为字段名保存在*.dbf文件中。
数据库表具有自由表所没有的属性,如字段级规则和记录级规则、触发器和永久关系等。 在定义表结构时,要定义表中每个字段的名称、类型、宽度、小数位数和是否接受空值。 表中的一行也称为元组,表中的一列也称为属性。
一个汉字占2个字节,而整数型占4 个字符。
某属性不是该关系的主关键字,却是另一个关系的主关键字称为外部关键字, 属性的取值范围称为域。
11.建立一张新的数据表,可以通过三种途径,即表设计器、表向导和命令。
命令方式:CREATE TABLE | DBF 表名称[NAME 长表名][FREE](字段名1 字段类型[(字段宽度[,精度])][NULL|NOT NULL][,字段名2…]
【例】要创建学生档案表(xsda.dbf)结构,可按以下命令操作。
CREAT TABLE xsda (编号 N(6),学号 C(6),姓名 C(10),性别 F(1),出生年月 D(8),入学成绩 N(6,2),简历 M(4))
备注型字段和通用型字段的长度固定为4个字节,其内容都存放在与表同名的备注文件(*.fpt)中。 打开表:use 表名
关闭表:close [all | tables[all]]
修改表结构的命令P64
(1)添加一个字段:Alter table dx add 备注 m(4) (2)修改一个字段:Alter table sb alter 编号 C(6) (3)删除一个字段:Alter table sb drop 简历
(4)重命名一个字段:Alter table sb rename 入学成绩 to 高考总分
12.插入记录
(1)Append [blank] 向表的末尾加入一条空记录。
(2)Insert [blank] [before] 指在表的指定位置上插入一条新的记录。选用BEFORE选项时,表示在当前记录前插入,否则在当前记录后插入。 完整命令格式:
INSERT into 表名[(字段名1[,字段名2,…])] VALUES(表达式1 [,表达式2,…] ) 例:比较下面两种形式的差别 Insert into xsda;
values(1050,”WJ050”,”刘流”,.F.,{08/01/88},603.50,”甘肃兰州”) Insert into xsda(编号,学号,姓名,出生年月); values(1051,”WJ051”,”武婷”,{04/05/88})
13.修改和替换记录的内容REPLACE…WITH命令p59
REPLACE…WITH命令可以在不打开任何编辑窗口的情况下,直接对表进行字段值的修改和替换,其格式为:
REPL 字段1 WITH 表达式1 [ADDITIVE][,字段2 WITH 表达式2[ADDITIVE]][<范围>][for<条件>][while<条件>]
其中,[ADDITIVE]选项表示可将新加入的内容添加到原内容的后面,比如在备注文件的后面加上新的文字。
例:给每位男生生活补助加20元 use xsda
replace 生活补助 with生活补助+20 for 性别=.T.
replace 工资 with 工资+500 for 职称=“教授“
14.LIST/DISPLAY [<范围>][FOR <条件>][WHILE <条件>][[FIELDS]<表达式表>] DISPLAY命令用于在Visual Foxpro 的主窗口中,显示当前记录指针所指向的记录,它可以简写成DISP;
而LIST命令则列出表中的所有记录,它与DISPLAY ALL功能基本相同。 表示范围的短语有all、next、record 、rest 例:当前记录号是10,若要显示当前记录:
Display
若要显示10、11、12、13、14号记录的内容,应使用的命令是:
LIST NEXT 5。
15.表记录的定位
(1)绝对定位 GO [RECORD]表达式[IN 工作区 │IN 表别名] GOTO [RECORD]表达式[IN 工作区 │ IN 表别名]
例如:go 3 指向第三条记录
GO TOP 将记录指针定位在表的第一个记录(TOP)
GO BOTTOM 将记录指针定位在表的最后一个记录(BOTTOM)
注意:表的最后一条记录并不等于表尾,因为表的末尾是一个指针,它指示下一条
新记录将存储的位置,也可以把它看做是一条空记录。所以,程序中虽然用了GO BOTTOM命令,但函数EOF()返回的值是.F.。
记录指针标志可以理解为保存当前记录号的变量,它的初值总是1,不可能为0或负数,最大值是表中记录的总数加1。
如果刚打开的表中没有记录,bof(),eof()的值为 .T. ,recno()的值为1 如果刚打开的表中没有记录,bof(),eof()的值为 .F. ,recno()的值为1
(2)相对定位 SKIP
SKIP &&记录指针指向当前记录的下一个记录 SKIP -2 &&记录指针指向当前记录之前的第2个记录 SKIP 5 &&记录指针指向当前记录之后的第5个记录 已知当前表中有20条记录,当前记录为第3号,在执行命令skip 7后,当前为第10号记录?
16.记录的删除 P68 (1)逻辑删除 DELETE
(2)物理删除 pack 将打上删除标记(逻辑删除)的记录作物理删除 (3)恢复记录 recall (4)清除记录ZAP
第3章 查询与统计
17.数据表的排序
SORT ON <字段1>[/A] [/C] [/D][,<字段2>[/A] [/C] [/D]…] TO <文件名> [<范围>][FOR <条件>][WHILE <条件>][FIELDS <字段表>] [ASCENDING|DESCENDING]
[/A]为升序排序,指定[/D]为降序排序,默认为升序排序。
相关推荐: