第一章 数据库系统基本概念
1.数据管理技术的三个阶段:自由管理阶段——文件管理阶段——数据库阶段
2.数据库系统的组成:数据库、支持数据库运行的软硬件、数据库管理系统和应用程序等部分组成。
3.数据库系统的三级组织结构:概念模式、内模式、外模式,三者之间的映射:外模式/模式、模式/内模式
4.英文含义:
◆DBMS:数据库管理系统
◆DBA: 数据库管理员
◆DDL: 数据描述语言
◆DML: 数据操纵语言
◆UWA: 用户工作区
◆DD: 数据字典
第二章 数据模型
1.数据模型的概念:数据库的数据结构形式,一一种形式化地描述数据及数据之间的联系方法。
2.数据模型的表示方法:DM={R,L} 其中R代表记录类型的集合;L代表不同记录类型联系的集合。
3.实体:实际存在的东西或是概念性的东西或是事物与事物之间的联系。属性:实体所具有的性质
◆“型”与“值”之分:型是概念的内涵,表达的是个体的共性。而值是概念的实例,表达的是个体具体内容。
◆“域”:实体中的每个属性,都有一个取值范围,这叫作属性的“域”。
◆“键”:在实体属性中,可用于区别实体集中不同个体的哪个属性或几个属性的组合,考试#大提示称为该实体的“键”。
4.实体间的联系方式:一对一(1:1),一对多(1:N),多对多(M:N)
5.实体联系表示法(E-R方法)
6.数据库类型:层次模型,网状模型,关系模型(用关系表示实体及其联系)。
7.人们通过一个中间步骤,先用E-R图反映实体及其联系,再从E-R图出发结合具体数据模型进行转换,从E-R图转换为关系模型的基本原则在设计关系数据库时是很有用的。#p#
第三章 关系数据库理论基础
1.表示关系定义: 域D1={男,女},表示性别的集合,域中数据个数叫基数。即D1的基数为2.
2.表示关系定义: 笛卡尔积
3.关系对应的二维表中,行对应元组,列对应域。 在FOXPRO中把关系叫做“数据库文件”或“表”,把属性叫做“字段”,元组叫做“记录”。
4.集合运算符:U(并),n(交),——(差),X(笛卡尔积)
◆关系运算符:投影,选择,连接
◆比较运算符:《,》
◆逻辑运算符:——(非),∧(与),∨(或)。
第四章 数据库应用系统的设计
1.数据库设计的内容:结构特性设计和行为特性设计
2.数据库逻辑设计的步骤:
◆收集和分析用户要求 数据及其流动方向(箭头),对数据的加工(圆形),文件(卡片),源点和终点(方框) “由外向内,自顶而下”
◆建立E-R模型
◆数据库模式设计
3.数据库设计方法称为:视图设计法#p#
第五章 FoxPro综述
数据库每一记录最大字段数是255,可以同时打开的数据库文件数225 ,内存变量(数组)最大数65000。
1.数据类型:(1)字符型(C-254) (2)数据型(N-20) (3)浮点型(F-20) (4)逻辑型(L-1) (5)日期型(D-8) (6)备注型(M-10) (7)通用型(G-10)
2.常量: (1)字符型 (2)数据型 (3)日期型 (4)逻辑型
3.变量:
◆字段变量: 字符型, 数据型, 浮点型, 逻辑型, 日期型, 备注型, 通用型
◆内存变量: 字符型, 数据型, 浮点型, 逻辑型,屏幕型(S)
*当字段变量与内存变量同名时,字段变量优先。但可以通过内存变量名前加上前缀M.或M-》来区别。
4.运算符及其优先级
5.命令格式:〈命令名〉[〈表达式表〉][〈范围〉][FOR〈条件〉][WHILE〈条件〉][TO FILE〈文件名〉|TO PRINTER|TO ARRAY〈数组表〉|TO〈内存变量〉]ALL[LIKE|EXCEPT〈通配符〉]][IN〈别名〉]
◆范围选择:RECORD N 对第N条记录进行操作
◆NEXT N 对从当前记录开始的N条记录进行操作
◆ALL 对所有的记录进行操作
◆REST 对当前记录开始到文件结束的所有记录进行操作
◆FOR〈条件〉:对所有满足“条件”的记录进行操作。
◆WHILE〈条件〉:对直到不满足条件的记录为止的所有已满足条件的记录进行操作。
6.命令的执行方式;1.立即方式 2.程序方式
7.内存变量的赋值:
◆STORE 《表达式》 TO 《内存变量表》
◆《内存变量》=《表达式》
◆SAVE SCREEN TO 《屏幕型内存变量》
◆RESTORE SCREEN FROM 《屏幕型内存变量》
8.内存变量的释放:
◆RELEASE《内存变量表》
◆RELEASE ALL [LIKE|EXCEPT《通配符》]
◆CLEAR MEMORY/CLEAR ALL
9.内存变量文件:
(1)内存变量文件的建立SAVE TO 《内存变量文件名》[ALL[LIKE|EXCEPT《通配符》]]
(2)内存变量的恢复RESTORE FROM《内存变量文件名》[ ADDITIVE]ADDITIVE没有表示清除当前内存中所有的内存变量,有时表示保留当前内存变量。
(3) 数据类型转换函数
◆字符型转数值型函数VAL(《字符表达式》)
◆数值型转字符型函数STR(《数值表达式》)[,《数值表达式2》[。《数值表达式3》]])
◆字符型转日期型函数CTOD(《字符型表达式》)
◆日期型转字符型函数DTOC(《日期表达式》[,1])(带“1”表示可以进行索引的日期字符串。)
(4) 测试函数,数据类型测试函数TYPE(《字符表达式》)
◆测试文件尾函数EOF([《工作区号》|《文件别名》])
◆测试文件头函数BOF([《工作区号》|《文件别名》])
◆测试当前记录号函数RECNO([《工作区号》|《文件别名》])
◆测试库文件记录数函数RECCOUNT([《工作区号》|《文件别名》])
◆测试查找记录函数FOUND([《工作区号》|《文件别名》])
◆测试屏幕(打印头)光标坐标函数ROW(PROW)()与COL(PCOL()#p#
第六章 数据库的基本操作
1. 库文件结构建立CREAT[《文件名》|?]其中A-J作为工作区代码
在把记录输入完后,按CTRL+W或CTRL+END存盘。
2. 追加记录APPEND[BLANK]
3. 记录显示LIST/DISPLAY [《范围》][FIELDS《字段名表》][FOR《条件》][WHILE《条件》][OFF][TO PRINTER/FILE《文件名》]
4. 数据库文件打开USE[《库文件名》/?][ALIAS《别名》]
5. 关闭数据库文件:关闭当前工作区打开的数据库文件USE
关闭当前打开的所有的库文件CLOSE DATABASES
6.数据库文件结构的显示:LIST/DISPLAY STRUCTURE[TO PRINTER/TO FILE《文件名》]
数据库文件结构的修改:MODIFY STRUCTURE*不能同时修改字段名和宽度
7. 指针的移动:
◆GO/GOTO [RECORD]《数值表达式》[IN《工作区号》/《文件别名》]
◆GO/GOTO TOP/BOTTOM[IN《工作区》/《文件名》]
◆相对移动SKIP[《数值表达式》][IN《工作区号》/《文件别名》]
8. 插入记录INSERT[BEFORE][BLANK]
9. 删除记录DELETE[《范围》][FOR《条件》][WHILE《条件》]
SET DELETED OFF/ON (取OFF,逻辑删除无效,反之,则有效)
恢复逻辑删除RECALL[《范围》][FOR《条件》][WHILE《条件》]
物理删除PACK
物理删除所有记录ZAP(只有结构无记录)
10. 记录的修改:
编辑修改EDIT.CHANG [《范围》][FIELDS《字段名表》[条件]
浏览编辑修改BROWSE
替换修改REPLACE[《范围》]《字段1》WITH《表达式1》…… #p#
11. 数据库文件的排序与索引
排序:SORT TO 《文件名》ON《字段1》[/A][/C][/D][,《字段2》………[FIELDS《字段名表》][FOR……
◆关键字只能是C,N,D. */A(升序,默认)/D(降序) /C(不区分大/小写)
◆需要临时文件做周转索引:INDEX ON《关键字表达式》TO《索引文件名》[FOR……][UNIQUE][ADD…]
◆备注字段不能作为关键字
◆字段索引只能是C,N,D,多字段索引只能是C
◆UNIQUE进行唯一索引(在记录相同,只取第一个)
◆未指定ADDITIVE,关闭先打开的索引文件,反之,就不关闭。索引文件的打开USE《库文件名》INDEX《索引文件名表》(允许打开25个) SET INDEX TO 《索引文件名表》索引文件的关闭SET INDEX TO/CLOSE INDEX指定主索引SET ORDER TO [《数值表达式》/《索引文件名》]
12. 数据查询:
◆顺序查询:LOCATE[《范围》[FOR《条件》][WHILE《条件》]它总是把指针定位到第一个满足条件的记录上,想继续查找,则用CONTINUE
◆索引查询:FIND《字符串》/《数值常数》当设置为SET EXACT OFF时,查询时不需要精确比较,反之,则需要精确比较。
◆SEEK《表达式》它可以查询包括字符型,数值型,日期型和逻辑型在内的各种数据类型,也可以是内存变量或者是表达式……
13. 数据统计:
◆计数命令COUNT[《范围》][FOR《条件》][WHILE《条件》][TO《内存变量名》]
◆求和命令SUM[《范围》][《数值表达式》][FOR《条件》][WHILE《条件》][TO《内存变量名》/TO ARRAY《数组》]
◆求平均值命令AVERAGE[《范围》][《数值表达式》][FOR《条件》][WHILE《条件》][TO《内存变量名》/TO ARRAY《数组》]
◆分类汇总命令TOTAL ON 《关键表达式》 TO 《分类库文件名》[《范围》][FIELDS《字段名表》][FOR《条件》][WHILE《条件》]要求首先对库文件进行排序或索引
14. 数据库文件的复制
(1) 库文件的复制COPY TO 《库文件名》[《范围》][FIELDS《字段名表》][FOR《条件》][WHILE《条件》]将当前库文件中的数据(包括结构)一起复制到指定的库文件中。
(2) 库文件结构的复制COPY STRUCTURE TO 《新库文件名》[FIELDS《字段名表》]
(3) 库文件与文本数据文件的转换复制
库文件复制成文本数据文件COPY TO 《数据文件名》SDF.DELIMITED[WITH《定界符》/BLABK][《范围》][FIELDS《字段名表》][FOR《条件》][WHILE《条件》]
文本数据文件中的数据复制到库文件APPEND FROM《数据文件名》 SDF.DELIMITED[WITH《定界符》/BLABK] [FOR《条件》][FIELDS《字段名表》]
(4) 任何类型文件的复制COPY FILE 《源文件名》 TO 《目标文件名》不能复制已经打开的库文件,且《源文件名》,《目标文件名》必须包括主文件名和扩展名。
15. 多重数据库文件的操作
(1) 最多达225个工作区,且前十个工作区1~10还规定了别名A~J.
(2) 工作区选择命令SELECT《工作区号》/《别名》,从当前工作区访问其它工作区打开库文件中的某个字段时,要表示为别名。字段名或者别名-》字段名
(3) 库文件之间的关联SET RELATION TO [《关键字表达式》/《数值表达式》INTO《工作区号》/《别名》[ADDITIVE]其中若选《数值表达式》,而被关联库没有建立索引,则作为记录号进行关联。
指定[ADDITIVE]保留以前关联。SET RELATION TO将删除当前工作区与所有其他工作区连接
(4) 库文件的连接JOIN WITH《别名》 TO 《新库文件名》[FIELDS《字段名表》][FOR《条件》]
(5) 库文件的更新UPDATE ON 《关键字段》FROM《别名》REPLACE《字段名1》WITH《表达式1》……[RANDOM]其中
《关键字段》是2个库都有的且都按此建立索引,并且打开,若提供更新的库文件未建立索引,则需使用RANDOM。
【编辑推荐】