1.数据库管理系统 DBMS
2.DBMS支持的数据模型:层次模型、网状模型、关系模型
3.字段—>记录—>表—>数据库
4.VFP操作方式
- 交互方式
1)可视化的菜单操作方式
2)命令操作方式 - 程序方式
5.数据类型
- 字符型(C)
- 数值型(N)
- 日期型(D)
- 逻辑型(L)
[1] 备注型文本内容存放在由系统自动生成的与表同名的扩展名为.FPT的备注型文件中
[2] 字符型数据作为常量(不是变量)使用时,必须用界限符括起来(''、" "、[ ])
[3] VFP默认输入日期格式为{^yyyy/mm/dd}
6.字段变量与内存变量
- 字段变量与数据表相关联
- 可以用“STORE”或者“=”给内存变量赋值
7.赋值语句
- STORE 可以把一个值赋给多个变量,之间用逗号隔开
- = 每次只能给一个变量赋值
8.函数
Ⅰ.取整函数:INT(返回数值的整数部分)
Ⅱ. 取模函数:MOD(A,B)
1> 当A和B均为正数或均为负数时,函数的值为二者相除后的余数。
2> 当两个参数的符号相异时(即一正一负),函数的值为B的绝对值与二者相除后的余数的绝对值之差。
3> 符号与B相同!!!
eg:
?MOD(19,4) 显示结果: 3
?MOD(19,-4) 显示结果: -1
?MOD(-19,-4) 显示结果: -3
?MOD(-19,4) 显示结果: 1
Ⅲ. 四舍五入函数 ROUND(A,B)
eg:
?ROUND(2852.123,2) 显示结果:2852.12
?ROUND(2852.123,-2) 显示结果:2900
Ⅳ.平方根函数 SQRT
!! 返回时自动保留两位小数
Ⅴ.类型转换函数
(Ⅰ) 数值——>字符 :STR(A,n1,n2)
- n1表示转换后长度,缺省时返回四舍五入后取整的字符串,占10个字符 且右对齐
- n2表示小数位数
- n1长度不够显示整数部分时,返回 n1个*
- n1<整数位数+1+n2 时,忽略n2,小数位数=n1-整数位数-1
(Ⅱ) 日期——>字符:DTOC(A,1)
- eg:
set date to mdy
?dtoc({^1999/08/26}) 结果:08/26/99
?dtoc({^1999/08/26},1) 结果:19990926
(Ⅲ) 逻辑——>字符:IIF(A,B,C)
- A表示逻辑表达式
- B代表真时的输出
- C代表假时的输出
eg:?iif(8>6,'对','错')
if true ? 对
if false ? 错
9.运算符与表达式
- 乘方 ——> ** 或 ^
- 取模(取余)——> %
- 左串是右串的一个子串是为真,反之为假——> $(p26)
- 不等于——> <>、# 或 !=
- 精确相等——> ==(相当于数学中的=)
- 模糊等于——> =
'计算机科学'='计算机' .T.
'计算机'='计算机科学' .F. - 逻辑表达式的优先级:.NOT. 或 ! ——> .AND. ——> .OR.
1.表文件
- 分为数据库表和自由表
- 数据表的三要素:数据表的文件名、数据表结构、数据表中的记录(数据表的内容或数据)
2.表操作
Ⅰ.创建表 CREAT (路径/)表名
- 单个字母A~J不可以当作表名
Ⅱ.关闭表的四种方法
- USE
- CLOSE DATABASE(关闭所有打开的表)
- 新建或打开一个表
- 菜单中选择“窗口/数据工作区”命令;在数据工作区对话框中,选择当前工作区。在“别名”列表框中;单击“关闭”按钮。
Ⅲ.显示表结构 LIST/DISPLAY STRUCTURE
- LIST滚屏连续
- DISP分屏显示
Ⅳ.修改表结构 MODIFY STRUCTURE
Ⅴ.复制表结构 COPY STRUCTURE TO 新表名 (FIELDS 字段名1,字段名2...)
Ⅵ.复制表文件 COPY TO 新表名 (ALL/RECORD/NEXT/REST) (FIELDS 字段名1,字段名2...) (FOR)
3.记录操作
表顶记录号=首记录
表底记录号=尾记录+1RECNO() 显示当前记录号
RECCOUNT() 当前表的记录个数
COUNT FOR 条件统计
BROWSE 打开表的浏览或编辑窗口
APPEND (BLANK)
[1] 有BLANK,则在末尾加一条空白记录
[2] 无BLANK,打开表的编辑窗口APPEND FORM 成批的添加
LIST 与DISPLAY区别
[1] LIST显示所有,DISP显示当前
[2] LIST NEXT 1 RECORD RECNO() DISPLAY 三者等价REPLACE (范围) A with B C with D ... FOR 替换命令
DELETE 逻辑删除
RECALL 恢复逻辑删除PACK 删除有标记的
ZAP 删除所有,仅保留表结构
4.索引
- 主索引
数据库表、无重复值、只有一个 - 候选索引
自由表、无重复值、多个 - 唯一索引
自由表、有重复值、唯一 - 普通索引
无限制 - INDEX ON 关键字 TAG 索引标识 (ASCENDING/DESCENDING)——建立索引
- SET ORDER TO (TAG 索引标识)——设置主控索引
- LOCATE FOR
CONTINUE - SEEK
SKIP(先设置主控索引)
1.输入命令
Ⅰ. INPUT "(提示信息)" TO A
- 可以输入C,N,D,L
- 除数值型外都要加 " "
Ⅱ. ACCEPT "(提示信息)" TO A
- 只可以输入C
2.程序文件
Ⅰ. 程序的控制返回
- RETURN 返回调用处
- CANCEL 返回命令窗口
- QUIT 退出
Ⅱ. MODIFY COMMAND A —— 程序文件建立
Ⅲ. DO A ——运行程序文件
Ⅳ. 循环
- DO CASE
CASE 条件1
命令1
......
(OTHERWISE)
命令
ENDCASE - SCAN循环只适用于表
FOR循环适用于次数确定
DO WHILE 普适
1.常用扩展名
数据库表、自由表 .DBF
表备注 .FPT
表单 .SCX
表单备注 .SCT
数据库 .DBC
数据库备注 .DCT
数据库索引 .DCX
程序 .PRG
菜单文件 .MNX
菜单程序文件 .MPR
菜单备注 .MNT
内存变量保存 .MEM
应用程序 .APP
可执行程序 .EXE
编译后的程序 .FXP
复合索引 .CDX
报表 .FRX
项目 .PJX
2.数据库操作
Ⅰ.CREAT DATABASE A —— 创建数据库
Ⅱ. 打开数据库
- OPEN DATABASE A
- MODIFY DATABASE A
Ⅲ. CLOSE DATABASE —— 关闭数据库
Ⅳ. ADD TABLE B —— 将表添加至数据库中
Ⅴ. REMOVE TABLE B —— 将表移出或删除数据库中
Ⅴ. 建立数据表关联
- 永久关联
要建立永久关联的两个表必须满足如下条件:
1.两个表都具有相同属性的公共字段。
2.每个表都要按照该字段建立索引。
如果要建立一对一的关联,那么关联的两个表都要按照公共字段建立主索引或候选索引。
如果要建立一对多的关联,父表(一方) 要按照公共字段建立主索引或候选索引;子表(多方)要按公共字段建立普通索引 - 临时关联
1.如表
代词 | 说 明 |
---|---|
PARENT | 当前对象的父对象 |
THIS | 当前对象 |
THISFORM | 当前对象所在的表单 |
2. 创建表单
Ⅰ. 表单设计器
- CREAT FORM A —— 建立新的表单文件
- MODIFY FORM A —— 建立新的或打开已有的
Ⅱ. 表单生成器
- 表单窗口中控件摆放的很凌乱。
- 表单窗口中仅显示一条记录,其它记录没有办法显示。
- 字段标签显示的是数据库表中的字段名(例如,“XH"),而不是字段的标题(“学号”)对这样的表单,只有做进一步的修改才能具有实用价值。
Ⅲ. 常用事件
事件 | 功能 |
---|---|
Destsory | 释放表单触发 |
Click | 单机左键触发 |
Load | 建立表单之前触发 |
Release | 释放表单,退出表单 |
Refresh | 刷新表单 |
Ⅳ. 命令按钮控件
- Messagebox(c1 , n1+n2+n3 , c2)
Ⅴ.计时器控件
- Enable —— 开(.t.)关(.f.)
- Interval —— 事件Timer发生的频率
Ⅵ.组合框列表框控件
- RowSourceType 属性——指定数据来源
3.报表
Ⅰ.列报表
Ⅱ.列报表
Ⅲ.在报表设计器中包含三个带区
- “页标头”和“页注脚”带区
设置在页标头和页注脚带区内的控件,将在报表的每个页面出现一次。多页报表应该在页标头或页注脚中包含名称、页码、日期和标签等项目。
2.“细节”带区
设置在细节带区内的控件通常对每条记录均打印一次。
4.菜单设计
Ⅰ.自定义访问键
- 访问字母前输入"\ <"即可
Ⅱ.SET SYSMENU TO DEFAULT 命令——恢复系统菜单(设置VFP系统菜单为缺省菜单)
Ⅲ. DO A.MPR —— 运行菜单程序
┗|`O′|┛ 嗷~