1 / 106

第四章 Visual Foxpro 数据库及其操作

第四章 Visual Foxpro 数据库及其操作. 内容. 介绍数据库、数据表的基本概念 数据库和数据表的建立 编辑表中的数据、记录修改与删除 表的索引等有关操作。. 概念. 数据库 (.dbc) 就是一个关于某一特定主题或目标的信息集合。 表 (.dbf) 基本单位,是数据库的基础 可以说表是关系数据库系统中的基本结构。 要存数据,为所需记录的信息创建一个表。 由行和列组成的,一行为一个记录,一列为一个字段。. 通常所说的表格. 一行为一个记录( Record ). 一列为一个字段 (Field). 二维表简称表 (Table) 特征:.

ella
Télécharger la présentation

第四章 Visual Foxpro 数据库及其操作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第四章Visual Foxpro数据库及其操作

  2. 内容 • 介绍数据库、数据表的基本概念 • 数据库和数据表的建立 • 编辑表中的数据、记录修改与删除 • 表的索引等有关操作。

  3. 概念 • 数据库(.dbc) • 就是一个关于某一特定主题或目标的信息集合。 • 表(.dbf) • 基本单位,是数据库的基础 • 可以说表是关系数据库系统中的基本结构。 • 要存数据,为所需记录的信息创建一个表。 • 由行和列组成的,一行为一个记录,一列为一个字段。

  4. 通常所说的表格 一行为一个记录(Record) 一列为一个字段(Field)

  5. 二维表简称表(Table)特征: (1)若干记录 (2)若干个字段,每记录具有相同结构的字段 (3)不同类型的字段来存储不同类型的数据 (4)字段的顺序与存储的数据无关 (5)记录在的顺序与存储的数据无关。

  6. 表的两要素: • 表结构(列) • 相应记录(行)

  7. 表结构

  8. 表的字段 • 表是由记录组成 • 记录又由字段组成 • 字段的属性(表结构) • 字段名 • 字段类型 • 字段宽度 • 小数位数

  9. 1.字段名 • 约定: • 只能使用字母、汉字、下划线和数字 • 见名知义 • > < = + / \ | [ ] : ? 空格 • 字段名必须以字母或汉字开头,并且长度不能超过128个字符 • 如:下列那些合法 不以数字开头 × 3mn 姓名1mn3 不能含有空格; × m n ×编 号 不能含有各种运算符; × S-N S_N× AI*X

  10. 2.字段类型 • 不同类型的字段来存储不同类型的数据

  11. zpz: 内存变量 (1)字符型(Character) • 通常用于存储键盘输入的文本数据。 • 汉字、字母、数字、空格、 • 符号及标点符号 • 字符型数据必用双引号或单引号或[]来定界 • 字符型字段的宽度最大为254 ***** • 如: • “how”‘1234’ [中国人]

  12. zpz: 内存变量 (2)货币型(Currency) • 保存货币数值时,用货币类型而不是数值类型字段 • 最多保留4位小数位数,多则四舍五入至4位 • 内存变量用$数值来赋初值 • 如:x=$999 • ? Type(‘x’)

  13. zpz: 内存变量N (3)数值型(Numeric) • 数值型字段用来存储数值数据。 • 它可以包含数字0~9,也可以带正、负号或小数点 • 如:1234 100.89 (4)浮点型(Float) • 浮点型字段在功能上等价于数值型字段。

  14. zpz: 内存变量5.6 (5)日期型(Date) • 用于存储包含有年、月、日的日期数据 • 长度为8字节 (6)日期时间型(DateTime) • 用于存储包含有年、月、日、时、分、秒的日期和时间数据。 (7)双精度型(Double) • 双精度型用于存储精度要求较高、位数固定的数值,或真正的浮点数值。

  15. (8)备注型(Memo) • 长度固定为4字节 • 用于存储不定长度的文本数据 • 当文本数据长度可能大于254,无法使用字符型存储时,使用备注类型字段 • 所有备注型字段的实际内容存储在和表名相同,扩展名为.FPT的备注文件中

  16. (9)通用型(General) • 通用型用于存储OLE对象数据 • 字段宽度固定为4个字节,用于存储一个4个字节的指针,指向该字段的实际内容 • 其内容存储在扩展名为.FPT的文件中。 • OLE对象包括电子表格、字处理文档、图像或其他多媒体对象等 • OLE对象可以用链接方式存储在表中。 • 存储数据的大小,取决于相的OLE服务程序,和磁盘空间大小的限制。

  17. (10)整型(Integer) • 整型用于存储整数数据 • 字段宽度固定为4个字节。 • 取值范围从-2 147 483 647 到2 147 483 646。 (11)逻辑型(Logical) • .T.或.Y. 为逻辑真 • .F.或.N. 为逻辑假 • 长度固定为1字节

  18. (12)字符型(二进)((Character(Binary)) • 字符型(二进制)用于存储不需要系统代码页维护的字符数据 • 其他字段特性同字符型字段 • 密码(各国) (13)备注型(二进制)((Memo(Binary)) • 备注型(二进制)用于存储不需要系统代码页维护的备注字段数据。其他字段特性同备注型字段。

  19. 数据类型(结) • 数据类型(Type)13种 C-字符型 N-数值形 F-浮点型 D-日期型 I- 整 型 L-逻辑型 M-备注型 G-通用型 Y货币型

  20. 3.字段宽度 • 规定宽度 • 字符型字段 254 • 货币型字段 8 • 数值型字段 20 • 日期型字段 8 • 备注型 4 • 逻辑型 1 • 日期时间型 8 • 通用型字段 4 • 用于存储一个4个字节的指针,指向该字段的实际内容。整型字段宽度固定为4个字节。

  21. 宽度(Width) (结) (以下类型宽度固定) • 货币型、日期型、日期时间型、双精度型:8字节 • 整型、备注型、备注型(二进制)、通用型:4字节 • 逻辑型:1字节

  22. 4.小数位数 • 有小数的字段: • 数值型 • 浮点型 • 双精度型 • 字段宽度 = 整数部分宽度 + 小数点1位 +小数位宽度 • 如小数位数不为0,则小数位数至少要比整个字段宽度小2

  23. 小数位数 • 一个N形变量宽为6,小数位数为3,则这个变量最大可表示的数为多少? • _ _ . _ _ _ • 99.999

  24. 5.空值(NULL) • 空值是用来标识一个字段“没有值”的标志 • 空值表示没有任何值或没有确定值 • 空值不等同于数值0、空字符串或逻辑“假” • 函数EMPTY() 测试空值 • 如果允许字段接受NULL值,则应选中该栏所在框 • 表的关键字段不允许为NULL值

  25. 字段类型 中文名称 宽度(字节) 说明 • Character 字符型 254 字母、汉字、数字、文本、符号 • Currency 货币型 8 货币单位 • Numeric 数值型 20 整数或小数 • Float 浮点型 20 同数值型 • Date 日期型 8 年、月、日 • DateTime 日期时间型8 年、月、日、时、分、秒 • Double 双精度型 8 双精度数值 • Integer 整型 4 整数 • Logical 逻辑型 1 真或假 • Memo 备注型 4 不定长的字母、文本、数字 • General 通用型 4 OLE图像、多媒体对象

  26. 建表的步骤: 1)设计表结构 2)建表的结构 creat 表名 3)保存表文件 ctrl+w 4)输入记录 append browse

  27. 表结构的创建 1、表设计器 (1)打开“表设计器” 项目管理器/自由表/新建/新表/保存 注: A、也可从菜单或工具栏中直接新建表 B、与在“项目管理器”中新建表不同的是: 这样新建的表将不包含在项目中 (2)在“表设计器”中创建表结构 表设计器/字段/输入/确定

  28. 表结构的创建 2、用create table -SQL命令创建表结构 • create table |DBF表文件名(字段名1 字段类型[(字段宽度[,小数位数])];[,字段名2 字段类型[(字段宽度[,小数位数])]]…)----编程时用 • 例:学生表结构 • create table xs2(xh c(6),xm c(8),xb c(2),zydh c(6)) • 教师表结构 • create table js(xm c(8),xb c(2),gl n(2,0),csrq d,jbgz n(7,2),jl m)

  29. 3、使用Null值 • 表设计器/字段 • create table 中NULL,NOT NULL子句 • 例: • create table books(sh c(6) not null,sm c(40) not null,cbrq d null) • set null on

  30. 数据表的建立 • 如: • 一张名为教师档案文件zgda.dbf • 编号 姓名 性别 年龄 职称 工作时间 婚否 简历 1 张黎黎 女 26 助教 05/24/83 T memo 2 李 艳 女 30 助教 09/14/90 T memo 3 刘 强 男 38 讲师 12/24/76 T memo

  31. 职工档案表结构(zgda.dbf) • 字段名 类型 宽度 小数位数 索引 NULL • 编号 字符型 4 无 升序 否 • 姓名 字符型 6 无 无 否 • 性别 字符型 2 无 无 否 • 年龄 数值型 2 无 无 否 • 职称 字符型 8 无 无 可 • 工时 日期型 8 无 无 否 • 婚否 逻辑型 1 无 无 否 • 简历 备注型 4 无 无 可 • 照片 通用型 4 无 无 可

  32. 表的打开 VFP在使用一个表前必须把表打开 • 打开命令 • USE <文件名> VFP在结束使用一个表时,必须把表关闭 • 关闭命令 • USE • CLOSE ALL • CLOSE DATABASE/TABLE

  33. 修改表结构 1、表设计器 项目管理器/选定表/修改 2、命令 • USE books • MODIFY STRUCTURE

  34. 修改表结构 2、命令 • ALTER TABLE-SQL命令 • 添加字段:ADD [ COLUMN ] 子句 例: ALTER TABLE books ADD COLUMN 折扣 n(4,2) • 重命名字段:RENAME COLUMN 子句 例: ALTER TABLE books RENAME COLUMN 折扣 TO zk • 删除字段:DROP [ COLUMN ] 子句 例: ALTER TABLE books DROP COLUMN zk

  35. 3、菜单/按钮方式 • 法1: • “表”—“属性” • “工作区” • “工作区属性”—“修改” • 法2: • “窗口” —“数据工作期” • (“属性”— “修改”)

  36. 记录的处理 记录的追加 1、立即输入记录(浏览/编辑/追加方式) 2、浏览窗口下追加(USE/BROWSE)(表/追加新记录) 3、使用INSERT - SQL命令追加记录 insert into zgda(姓名,性别,年龄) values ('洪七公','男',900) 4、从其他表中追加记录 • 命令APPEND • APPEND FROM • APPEND [ BLANK ]

  37. 记录的浏览 1、浏览窗口 • 进入 : • BROWSE 命令 • use books/显示/浏览 • 项目管理器/选定某个表/单击“浏览”按钮 2、命令 • BROWSE • LIST / DISPLAY • BROWSE FIELDS 书号,书名,作者 for ...

  38. 如何定制浏览窗口? • 重新安排列的位置: • 拖动 • 改变列的宽度: • 拖动 • 显示或隐藏表格线: • 显示/网格线 • 分为两个窗格: • 左下角拖动

  39. 文件头 记录开始标志 第n条记录 记录结束标志 6.3.3 记录的定位 • 1、记录指针标志 • 记录号(输入顺序) • 记录的开始标志 • BOF ( ) • 记录指针标志 • ( 当前记录 ) • RECNO ( ) • 记录的结束标志 • EOF ( ) • 2、记录的定位方式 • 绝对定位 go • 相对定位 skip • 条件定位 Go top go bottom skip

  40. 几个概念 • 记录指针 • 当前记录 • 记录定位 • 记录号RECNO()

  41. 例1 假设ZGDA表有848条记录,先后执行以下命令 bof() eof() recno() use books f f 1 skip -1 t f 1 skip -1 Error f 1 go bott f f 848 skip f t 849 skip Error

  42. 例2 RECN() Use books 1 go 5 5 skip +2 7 skip -3 4 locate for …

  43. 3、记录定位的实现 • 界面方式 (“表”—“转到记录”) • 记录号:绝对定位 goto • 定位:条件定位 locate for • 作用范围:all,next,record,rest,for • 找到/未找到 • 命令方式 绝对定位:GO( GOTO ) GO( GOTO ) TOP/BOTTOM 相对定位:SKIP(与索引有关)skip=skip 1 快速移动:SEEK 及 FIND

  44. 记录的修改 1、在浏览窗口中修改 EDIT / CHANGE / BROWSE 项目管理器/浏览 例:修改books表中第5条记录 use books edit record 5

  45. 记录的修改 2、批量记录的修改 (1)界面方式 “表”—“替换字段”—字段条件 (2)命令方式 • UPDATE-SQL命令(表不必事先打开,以下同) • REPLACE 命令 USE books copy to temp use temp REPLACE 单价 WITH 5.00 FOR 单价<5

  46. 记录的删除 • 目的: • 节省时空 • 删除步骤: • 逻辑删除 • 物理删除

  47. 逻辑删除 • 给要删除的记录加标记(*号) • 标记要删除的记录(逻辑删除) • 浏览窗口: • 单击小方框 • “表” • “删除记录” • 命令DELETE FROM 表名[WHERE 过滤条件表达式] 例: • 删除教材表中库存在数量为0的记录 • delete from books where 库存数量=0

  48. 物理删除 • 彻底删除(物理删除) • “表” • “彻底删除” • 命令PACK(独占) • 删除有删除标记的记录 • 命令ZAP=delete all +pack(独占)

  49. 恢复记录的删除 • 恢复带删除标记的记录(与set dele 无关) 法1: • 小方框 黑-->白 法2:“表” • “恢复记录” 法3:RECALL [范围][FOR 条件表达式1][WHERE 条件表达式2] 例:recall recall all recall all for 库存数量=0(这里的all 可省) 说明:缺省范围(当前记录,不是全部记录)

  50. 记录的删除 • 对带删除标记记录的访问 (1)测试记录的删除标记deleted() • 有删除标记返回为真,否为假 (2)控制对带删除标记记录的访问 • set deleted on/off 说明: • 有些默认为ON,有些默认为OFF 实验: • 先删除若干记录(逻辑删除) • LIST 默认为OFF • SET DELETED ON • LIST

More Related