1 / 74

第九章数据库管理系统 Visual FoxPro 6.0

第九章数据库管理系统 Visual FoxPro 6.0. 第一节  数据库概述. 一、数据库的基本概念 1、数据管理技术的发展 人工管理阶段 (1953年~1965年 ) 文件系统阶段 (1965年~1970年) 数据库系统阶段(1970年~至今). 2、 数据库系统基本概念 数据库: 按一定的数据结构组织方式存贮在一起的相互有关的数据集合。 数据管理: 对数据的收集、整理、组织、存储、查询、维护和传送等数据处理工作。 数据库管理系统( DBMS)

tanith
Download Presentation

第九章数据库管理系统 Visual FoxPro 6.0

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 6.0

  2. 第一节  数据库概述 • 一、数据库的基本概念 • 1、数据管理技术的发展 • 人工管理阶段 (1953年~1965年) • 文件系统阶段 (1965年~1970年) • 数据库系统阶段(1970年~至今)

  3. 2、数据库系统基本概念 • 数据库:按一定的数据结构组织方式存贮在一起的相互有关的数据集合。 • 数据管理:对数据的收集、整理、组织、存储、查询、维护和传送等数据处理工作。 • 数据库管理系统(DBMS) • DBMS(Data Base Management System )是用户与数据库的接口,提供了控制和管理数据库的命令。 • 数据库系统 •  由数据库、数据库管理系统和数据库应用系统构成的数据处理系统

  4. B A A D B C D C E F G H 网状模型 层次模型 • 3、数据模型 • 层次模型 • 网状模型 • 关系模型

  5. 父结点 教研室1 教研室2 教研室3 根结点 教师1 教师3 教师4 子结点 教师2 层次数据模型示例

  6. 部门 A 部门B 部门C 雇员 1 雇员2 雇员3 雇员4 雇员5 项目2 项目 1 网状数据模型示例

  7. 关系数据库 基本术语:字段、字段名、记录、数据项、关系、表、数据库文件。 (以一张住院病人情况登记表为例来说明关系数据库)

  8. 关系型数据库的一些性质 每一列代表一个字段,不允许有重复的字段名,每列字段只属于同一数据类型。 不允许有相同的记录 行和列的顺序可以任意

  9. 第二节 FoxPro 基本知识 一、 FoxPro的特性 具有良好的兼容性 运行速度快 具有多种运行方式 用户界面非常友好 开发工具完善 提供了跨平台支持

  10. 二、FoxPro的安装、启动和退出 • Microsoft Visual FoxPro 6.0的安装、启动和退出 • 安装 用安装光盘进行安装,执行SETUP.EXE文件 • 启动 “开始”“程序” “Microsoft Visual FoxPro 6.0” • 退出 “文件” “退出” 或<ALT>+<F4> 在命令窗口中,可键入QUIT命令退出。

  11. 三、FoxPro的工作界面 • 菜单栏 • 工具栏 • 显示工具栏的方法:点击“显示”菜单“工具栏” • 对话框 • 设计器 • 生成器 • 向导 • 窗口 • 项目管理器

  12. 第三节 FoxPro基本元素 一、数据类型(有11种) 1、数值型(N型) 2、字符型(C型) 3、日期型(D型) 4、通用型(G型) 5、逻辑型(L型) 6、备注型(M型) 7、浮点型(F型) 8、日期时间型(T型) 9、货币型(Y型) 10、双精度型(B型) 11、整数型(I型)

  13. 二、常量 常量:在程序运行过程中值保持不变的量, FoxPro中有六种类型的常量: 1、字符型常量(C型)  由单引号、双引号或方括号括起的可显示字符构成的字符串。 例如:“abc” , “李平” , [中华人民共和国] 注:a. 定界符一定要匹配。如:“刘力‘,[abc” 等是非法的字符串。 b. 字符串中含有定界符时,要用另一种定界符定义。 例如:“ABC“123”de”[ABC“123”de] c. 定界符一定要用半角字符方式。  

  14. 2、数值型常量(N型)   例如:-35,356,68.56 3、逻辑型常量(L型)   定界符是一对小圆点,值只有两个: 真:·T · 、· t · 、· Y · 、 · y · 假:·F · 、· f · 、· N · 、 · n · 4、日期型常量(D型)    输入格式:{^yyyy/mm/dd} 输出格式:mm/dd/yy  5、日期时间型   输入格式:{^yyyy/mm/dd hh:mm:ss} 输出格式:mm/dd/yy hh:mm:ss am/pm 6、货币型   用符号$来标识,如$568.68

  15. 字段变量 存在于库文件中 变量 系统内存变量 内存变量 使用之前先定义、赋初值 用户定义的内存变量 字符、数值、逻辑、日期、屏幕型 三、变量 在程序运行过程中其值可以发生变化的量。 注意:当字段变量与内存变量同名时,字段变量被优先引用,要用内存变量时需要在变量名前加上M->变量名或M.变量名来区别。

  16. 变量名命名规则 以字母或汉字开头 由字母、汉字、数字、下划线组成 长度不大于10个字符 不可以出现空格 例如: x=23<30 , x的值为.T. , L型  姓名=‘张建树’,姓名的变量值为C型 y={^2002/06/16} , y的值为06/16/02,D型 z=4^2 , z的值为16,N型

  17. 四、函数  FoxPro系统为用户提供了几百种函数,同时允许用户自定义函数,函数的一般形式为: 函数名(参数1,…,参数2) 1、数值运算函数: EXP(N)表示 e 的N次方 INT(N)表示取整函数,取N的整数部分   例:INT(3.68)=3 INT(-5.78)=-5 ROUND(N1, N2 )表示四舍五入函数 例如:ROUND( 153.568, 2 )的函数值为153.57 MOD(N1,N2)表示求模, 当N1,N2>0时,模为余数;当N1和N2中有一负数时,模为余数与N2的和;当N1,N2<0时,模为余数求反。 COL( )值为当前光标位置的列号 ROW( )值为当前光标位置的行号

  18. 2、字符处理函数 LEN(C )值为字符型( C型)表达式的长度 SUBSTR(C ,N1, N2 )取子串函数 例如:SUBSTR( “内蒙古医学院”, 7, 6 )的值为医学院 LEFT(C,N)表示从C的左边开始取N个字符 RIGHT(C,N)表示从C的右边开始取N个字符 SPACE(N)表示返回长度为N的空格串 UPPER(C)表示将C中所有的字母转换成大写字母 LOWER(C)表示将C中所有的字母转换成小写字母 AT( C1, C2,N )值为C1在C2中的位置序数 例如:AT(“ABC”, “XYZABC”)的值为4      AT(“人民”, “中华人民共和国”)的值为5

  19. 3、日期与时间函数 • YEAR( D ) 、MONTH( D )和DAY( D) 分别为D型表达式中的日, 年 和月份, 其中YEAR( D )的值为4位 • 例如:?day({^2002-03-28})的值为28 • DATE() 表示返回当前系统日期 • TIME() 表示返回当前系统时间 • DATETIME()表示返回当前系统日期与时间 • DTOS(D)表示以YYYYMMDD格式返回D值 • CMONTH(D)表示以英文单词形式返回D中的月份

  20. 4、类型转换函数 • DTOC(D)将D型表达式转换为C型 • CTOD( C )将C型表达式转换为D型 • STR(N1,N2,N3)将N1转换为字符类型值 其中:N1为待转换的数值,N2为字符串的长度,N3为小数位数 • VAL(C)将字符类型数据转换为数值类型数据 • ASC( C )返回字符串中最左边的字符的ASCII码值 • CHR( N )返回以N为ASCII码值的字符,N为0-255 • &<C型变量> 表示宏代换函数

  21. 5、测试函数 • RECNO( )表示返回当前记录号 • SELECT()表示返回当前工作区的区号 • BOF( )测试记录指针是否指在库文件的开始位置,若是值为.T. ,否则值为.F. • EOF( ) 测试记录指针是否指在库文件的结束位置,若是值为.T. ,否则值为.F. • DELETED ( )  测试当前记录是否有删除标志,若有值为.T. ,否则值为.F. • FOUND ( )根据查询命令是否找到符合条件的记录,如果找到,值为.T. ,否则值为.F.

  22. 五、运算符 • 算术运算符 •  +、-、*、/、 **或^、%(取模),( ) • 例如:234+567,50%3,45*(123+678)/3 • 注:运算对象和结果均为数值型数据。 •   运算顺序:^  * . / . % + .- 同一级别从左向右。有括号先括号内,括号嵌套,先内后外 

  23. 关系运算符 •  <、>、=、<=、>=、 <>或#或!= (不等于)、= =(恒等于)、$(包含) • 注:对两个数据或表达式比较,结果成立时值为.T.,否则值为.F. • 比较规则:数值大小、日期先后、字符按ASCII、汉字内码 • “==”表示精确相等。  • 符号“$”用来比较两个字符串,例如:C1$C2,若C1包含在C2中即C1是C2的子串,则值为.T.,否则为.F. •   例如:“AB” $ “EFABCD” 的值为T • 优先级相同,按从左向右,括号内优先的运算顺序。

  24. 字符运算符 •  + 字符串直接连接运算符 •  - 尾部空格移位连接运算符 • 例如:“ABC  ”+“XYZ”=“ABC  XYZ” •     “ABC  ”-“XYZ”=“ABCXYZ  ”   • 注:运算对象和结果均为字符型数据。   • 逻辑运算符 • .AND.(逻辑与) .OR.(逻辑或) .NOT.或!(逻辑非) •  与运算:A . AND . B  •   A、B均为.T.时结果为.T.,否则为.F. • 或运算:A . OR . B  •    A、B均为.F.时结果为.F.,否则为.T. • 非运算:. NOT . A 或!A • 当A为.T.时,值为.F. ,当A为.F.时,值为.T.  • 三者的运算优先次序是:逻辑非>逻辑与>逻辑或

  25. 当表达式中包含了所有运算符时, 运算符的优先顺序是: 数值运算符>字符串运算符 >关系运算符 >逻辑运算符

  26. 六、表达式 (一)表达式的计算与显示 格式1:?< 表达式 > 格式2:?? < 表达式 > 例如:?56+78 134 ? 56>78 .OR. .NOT. ( 89=56) . T . ?? ‘ABC’ + ‘XYZ’ ABCXYZ

  27. 七、内存变量与数组 (一)内存变量 1、内存变量的赋值命令: 格式1:<内存变量>=<表达式> 功能:先计算表达式的值,再将该值赋给赋值号左边的“内存变量”,内存变量的类型取决于表达式的类型。   例如:X=24,X的值为N型 NAME=“刘丽”,NAME的值为C型 婚否=.T. ,婚否的值为L型 出生年月={^1966/08/16},值为D型

  28. 赋值命令格式2: STORE <表达式> TO <变量名表> 功能:先计算表达式的值,再将该值赋给<变量名表> ,变量的类型取决于表达式的类型。 STORE 2<3 TO x , x的值为.T. ,L型 STORE ‘张建树’TO 姓名,姓名的值为C型 STORE {^2002/08/28} TO y , y的值为08/28/02,D型 STORE 3 TO A1,A2,A3 A1,A2和A3的值              都为3,N型 

  29. 2、显示内存变量命令: 格式:list|display memory [like <变量名通配符>]   [to print][to file<文件名>] 功能:显示当前内存变量名、属性、类型和当前值   注: 通配符是指*和?,*表示任意个任意字符 ?表示一个任意字符    [to print]将显示内容送往打印机。    [to file<文件名>]将显示内容以文本形式保存 在磁盘文件中。    如:a=35 AB=“人民” list memo like a* 屏幕显示为: a pub n 35 ABpub C 人民

  30. 3、释放内存变量命令: 格式1:CLEAR MEMORY 功能:删除内存中全部用户定义的内存变量。 格式2:RELEASE [<内存变量名表>] 功能:删除全部或<内存变量名表>中指定的内存变量 格式3:RELEASE ALL[LIKE/EXCEPT<通配项>] 功能:若省略可选项,删除全部内存变量. like表示删除符合要求的内存变量。 except表示删除不符合要求的内存变量。 例如:RELEASE ALL LIKE A* RELEASE ALL EXCEPT B*

  31. 4、保存内存变量文件: 格式:SAVE TO <内存变量文件名> [ALL LIKE /EXCEPT <内存变量通配符>]  功能:将当前内存中的全部或部分内存变量,以指定<内存变量文件名>保存在磁盘上。   注: <内存变量文件名>默认的扩展名为.mem。 如:save to c:\myfile\ncbl.mem all like a* 功能:将当前内存中以a开头的所有内存变量保存在c:盘myfile文件夹下的ncbl.mem文件中。 5、恢复内存变量: 格式:RESTORE FROM <内存变量文件名> 功能:从指定的内存变量文件中恢复内存变量到内存  如:restore from c:\myfile\ncbl.mem 表示将c:盘myfile文件夹下的内存变量文件      ncbl.mem中的内容恢复到内存。     

  32. (二)数组 数组:按一定顺序排列的一组内存变量。数组中的各个变量称为数组元素。数组元素用数组名以及该元素在数组中排列位置的下标一起表示。数组的维数:数组元素中下标的个数。  注:FOXPRO中只有一、二维数组。使用数组要先定义。 1、数组的定义: 格式: DIMENSION <数组名> (下标1,下标2) , … 功能:定义一维或二维数组名,以及有关数组 各下标的上界值,下限默认为1。 一个数组的元素个数最多为3600个。 每个数组元素的初始值为.F. 例如:DIMENSION X(3), A(2,3), B(5) 分别定义了一维数组X,B和二维数组A 其中X有三个元素,A有2*3个元素, B有五个元素

  33. 2、数组的赋值: 1、数组中各元素的取值类型可以不同,同一元素的取值前后也可不同,初值均为.F. 例如:DIME A(2) A(1)= .T. A(2) = ‘ ABC’ ?A(1), A(2) A(1)= .T. A(2) = ‘ABC’ 2、用赋值命令可为数组元素赋值,也可为整个数组的各个元素赋以相同的值。 例如: DIME A(2) A=5 ?A(1),A(2) 5 5

  34. 第四节 数据库和表的建立与基本操作 建立和修改数据库表结构 输入、显示、编辑、修改和删除记录内容 库文件的打开和关闭 记录指针的定位 库文件的排序与索引 数据查询和统计 多重数据库文件操作 其它操作命令

  35. 数据库表的组成  表结构  表记录

  36. 一、建立和修改数据库表结构 • 1 、库结构的组成 • 字段名 • 字段类型 • 字段宽度 • 小数位数 2、表结构的建立 命令方式:CREATE <文件名> 菜单方式:用表向导建立表 方法:“文件”菜单“新建”“表”“新建文件”“创建”对话框中输入表文件名“确定” 打开“表设计器”对话框

  37. 字段名: • 由字母、汉字、数字或下划线组成 • 数据库表支持长字段名,长度最多可达128个字符 • 自由表的字段名长度最多为10个字符 字段宽度 • 系统自动设置: • 逻辑型: 1 • 日期型: 8 • 日期时间型: 8 • 整型: 4 • 货币型: 8 • 备注型: 4 • 通用型: 4 • 用户自己定义 • 字符型: 0~254 • 数值型: 20 • 浮动型: 20 • 双精度型: 8

  38. 例如:建立库文件STUDENT.DBF CREATE  STUDENT 如果在E盘上建立文件,则键入命令: CREATE  E:STUDENT 3、修改表结构  命令格式:MODIFY STRUCTURE  菜单方式:“显示”菜单“表设计器”

  39. 4、创建数据库后再创建表的方法 步骤一: “文件”菜单“新建”“数据库”“新建文件” “创建”对话框中输入库文件名“确定” 打开“数据库设计器”对话框 注:创建的数据库文件的扩展名为.DBC 命令方式: CREATEDATABASE <数据库名> 步骤二: “数据库”菜单“新建表” 注:数据库表的字段名最多可达128字符。

  40. 有关自由表和数据库表的转换: • ( 1) 当前数据库添加表 • 命令方式: • ADDTABLE 表文件名 • 菜单方式: “数据库”菜单“添加表” • ( 2 ) 从当前数据库中移出表,使之成为自由表 • 命令方式: • DELETETABLE 表文件名 • 菜单方式: “数据库”菜单“移去”

  41. 命令的一般格式 <命令词>[范围][选择][投影][其它参数] 注:命令词说明操作的内容如显示、复制、删除    选择参数是对记录的限制。    投影参数是对字段的选择。    其它参数,如to print,to file<文件名>等 例如:显示当前记录以后的所有性别为女的记录    的姓名,性别,年龄,婚否 list rest for 性别=“女”fields姓名,     性别,年龄,婚否

  42. 命令的书写规则 (1)命令动词与子句、子句与子句、子句内各部分之间必须用空格隔开,但各子句的次序允许任意排列。 (2)命令动词与各子句中的保留字,包括以后将介绍的函数名都可以简写为前4个字符,而且对其中出现的英文字母,使用大小写等效。 (3)一条命令的长度可达8192个字符,若一行写不下,可在适当位置键入续行符“;”并回车,然后在下一行继续键入该命令。

  43. 选择   用来限定记录操作的范围和条件,从而筛选出该范围内满足条件的记录。  选择参数:FOR<L表达式>或 WHILE< L表达式> 注:FOR选择所有满足条件的记录,默认范围all遇到不满足条件的,跳过该记录继续查找。而WHILE从当前记录开始遇到第一个不满足条件的就结束。 <范围> all 全部记录 next <n> 从当前记录开始向后共n条记录 rest 从当前记录开始一直到最后 record <n> 第n条记录

  44. 二、输入、显示、编辑、修改和删除记录内容 (一) 输入记录内容 1、追加记录 格式:APPEND [ BLANK ] 2、插入记录 格式:INSERT [ BEFORE ] [ BLANK ] (二)显示记录 1、显示库结构 格式:LIST STRUCTURE 或 DISPLAY STRUCTURE 2、显示记录内容 格式:LIST/ DISPLAY [ < 范围> ] [ FIELDS< 字段名表>] [ FOR / WHILE < 条件表达式> ] [ OFF ] [ TO PRINT ]

  45. 下面分别讲述显示记录内容的几种情况 1、显示全部记录 LIST 或 DISPLAY ALL 例:LIST 2、显示当前记录 DISP 例:GO 5    DISPLAY 3、有范围、有选择地显示记录内容

  46. 例1:显示前3条记录中性别为男的记录   GO TOP   LIST NEXT 3 FOR 性别=“男” 例2:显示所有科室是外科的住院病人记录 中的姓名,入住日期和费用 LIST ALL FOR 科室=“外科”FIELDS 姓名,入住日期,费用 例3:显示所有入住日期在99年以前的记录    LIST ALL FOR 入住日期<{^1999-01-01} LIST ALL FOR YEAR(入住日期)<1999 例4:显示第三条记录的治疗情况 GO 3 DISPLAY 治疗情况 例5:显示已婚的记录内容 LIST ALL FOR 婚否=.T. 或:LIST ALL FOR 婚否 例6:显示未婚男性的记录 LIST ALL .NOT.婚否 .AND. 性别=‘男’

  47. (三) 表的打开和关闭 • 1、打开数据库文件有两种方式: 命令方式:use <库文件名> [in <n>][alias <别名>] •  注:如在当前目录下,库文件不用标识 • n表示工作区号 • alias <别名>省略此项以原库名为别名 菜单方式:“文件”菜单“打开” 2、关闭表 • Use • 功能:关闭工作区n中打开的数据库文件和索引文件 • close all • 功能:关闭所有工作区中的所有文件,不释放内存变量 • close databases • 功能:关闭所有数据库文件,索引文件和格式文件。 • quit • 功能:退出FoxPro系统

  48. (四) 编辑和修改记录 1.编辑修改命令 格式:EDIT/CHANGE [<范围>][FIELDS< 字段名表>] [ FOR/WHILE<条件>] 例:EDIT 3 2. 浏览修改命令 格式:BROWSE [<范围>] [FIELDS< 字段名表> ] [FOR/WHILE<条件>][FREEZE <字段名>] [NOAPPEND][FONT <字体>,<字体大小>] 例:对费用超过500元的记录作一些修改 BROWSE ALL FOR 费用>500 NOAPPEND FONT ‘黑体’,24

  49. 3. 快速修改命令 格式:REPLACE[<范围>][ FOR/WHILE<条件>] < 字段名1> WITH <表达式1> … < 字段名n> WITH <表达式n> 例1:把所有记录的费用一项都增加100元 REPLACE ALL 费用 WITH 费用+100 例2:给库文件ZYBR.DBF增加一个‘余额’字段,余额的值为预付减去费用值 REPLACE ALL 余额 WITH 预付-费用 4.编辑通用字段内容 格式:APPEND GENERAL <G型字段> FROM <文件名>

  50. (五) 删除记录 1.给记录加删除标记 格式:DELETE [<范围>] [FOR/WHILE<条件表达式>] 记录是否加上删除标记可用DELETE()测试 SET DELETE ON/OFF 控制删除标记是否有效 SET DELETE ON 命令表示删除标记有效 SET DELETE OFF命令表示删除标记无效 例:给所有的男性记录加删除标记 DELETE ALL FOR 性别=‘男’

More Related