数据库知识总结.docx
《数据库知识总结.docx》由会员分享,可在线阅读,更多相关《数据库知识总结.docx(59页珍藏版)》请在冰豆网上搜索。
数据库知识总结
•第一章数据库基本知识与操作
•1-1数据库系统的基本概念
一、数据库(DataBase,即DB)就是将大量的相关的数据按一定方式组织在一起,利用磁盘等存储设备储存起来。
数据库的应用非常广泛,几乎可应用于各行各业,而且具有运算速度快、可靠性高、安全性好等特点。
二、数据库管理系统(DataBaseManagementSystem,即DBMS)是用来控制数据库的建立、使用、维护的软件系统。
它提供了对数据库中数据的统一管理和控制的功能,满足了用户对数据库进行访问的各种需求。
目前,广泛应用的数据库管理系统有Oracle、Sybase、VFP和SQL-Server等。
三、数据库系统(DataBaseSystem,即DBS)是指一个引入了数据库技术的计算机系统。
它由计算机硬件、数据库管理系统、数据库、相关软件和用户组成,其中数据库管理系统是整个数据库系统的核心。
四、数据模型:
是指数据库中数据与数据之间的关系。
数据库管理系统常用的数据模型有3种:
1-2 关系数据库
1-2-1关系的基本概念
1)关系:
一个没有重复行、重复列的二维表
2)元组:
二维表中的行
3)属性:
二维表中的列
4)域:
属性的取值范围
5)关键字:
关系中能唯一区分、确定不同元组的属性或属性组合称为该关系的一个关键字。
1-2-2关系的特点:
1关系必须是规范化的。
2在同一关系中不允许出现相同的属性名。
3在同一关系中不允许出现相同的元组。
4在一个关系中,可以任意交换两个元组(或属性)的位置,不会影响数据的实际意义。
1-3VFP系统概述
•VFP是在FoxBase和FoxPro基础上发展起来的,是目前比较普及的小型关系型数据库管理系统。
1-3-1VFP窗口的基本组成:
VFP的主窗口包括标题栏、菜单栏、常用工具栏、状态栏、命令窗口、主窗口工作区几个组成部分。
1-3-2VisualFoxPro系统的常用文件类型
1、项目文件.PJT.PJX2、数据库文件.DBC.DCT3、表文件.DBF.FPT
4、程序文件.PRG.FXP5、索引文件.IDX.CDX6、内存变量文件.MEM
7、屏幕格式文件.FMT8、报表格式文件.FRX.FRT9、标签文件.LBX.LBT
10、文本文件.TXT11、菜单文件.MNT.MNX.MPR.MPX
12、表单文件.SCX.SCT
1-3-3VFP系统的工作方式
交互方式:
1.命令操作方式2.菜单操作方式3.程序操作方式
预先将实现某种操作处理的命令序列编写成程序,通过运行程序来实现操作、管理数据库的操作方式。
1-3-4VFP6.0的命令语法规则
(1).命令格式
(2).命令中几种常用子句
1)范围子句:
指定命令可以操作的记录集。
ALL当前表中的全部记录。
NEXT从当前记录开始的连续N条记录。
RECORD当前表中的第N号记录。
REST从当前记录开始到最后一条记录为止的所有记录。
2)条件子句:
指定命令可以操作的记录集。
FOR<条件>选择表中符合条件的所有记录。
WHILE<条件>从当前记录开始,选择符合条件的记录,直到第一个不符合条件的记录为止。
3)字段名表子句:
选取命令操作的字段范围。
[FIELDS]<字段名表>字段名表由若干逗号分隔的字段名构成。
(3).命令书写规则
1)每一命令必须以命令动词开头。
命令动词、命令短语中的保留字以及系统提供的函数都可以只写前面的四个字符2)命令动词后面的短语可按任意顺序排列,命令动词与子句之间、子句与子句之间至少有一个空格分隔3)每条命令最多由8192个字符组成,如果一条命令一行写不下,可分行书写,并且要在分行处加上分号“;”4)书写命令时,不区分大小写5)不要使用命令动词,命令短语中的保留字以及工作区的别名作为文件名,变量名,以免造成混淆
6)每行最多书写一条命令
注意:
命令中的标点符号必须是英文标点符号
•层次模型:
一对多关系
网状模型:
多对多关系
关系模型:
一对一关系
第二章VisualFoxPro中的数据与运算
2-1VFP中的常量、变量
VFP中的常量也称常数(四种)1数值常量2字符常量3逻辑常量4日期常量
1.数值常量
▪由正负号、数字、小数点组成。
例如 123-34.5760.67
2.字符常量
用定界符括起来的字符序列称为字符串。
定界符有三种; “ ”、 ’ ‘、 [ ]
例如 “中国” ’医科’ [大学]
3.逻辑常量
由真值和假值组成。
:
.y..Y..T..t.代表真值
.n..N..F..f.代表假值
4.日期常量
• 一般格式 月/日/年 例如 04/12/2005
从键盘输入时需用ctod(“04/12/05”)
2-1-2VFP中的变量
运算中可以改变的量称为变量,用变量名来标识。
变量名;字母或汉字开头,后跟字母、数字、符号等组成,最多不超10个字符,中间不能有空格。
▪字段变量内存变量数组变量系统变量
2-1-2VFP中的变量
1.字段变量;是数据库处理的最基本的变量,用字段名表示,有五种类型,C、N、L、D、M。
2.内存变量:
是独立于数据库的临时工作单元。
可随时给变量赋值或释放。
由名字、类型、宽度组成。
类型分N、C、D、L、M(M型通常在DBT文件中表示)。
3.数组变量:
也称下标变量,由数组名和括号内的下标组成。
其中下标也可以是变量或表达式.
例如 A(20) B(5,10) C(2+8)D(x)
4.系统变量:
是VFP系统特有的内存变量,它由VFP系统定义和维护。
系统变量用于设置和保存系统的状态和特性,系统变量的变量名均以下划线“_”开头
内存变量的操作
1.内存变量的赋值操作;
命令格式一STORE<表达式>TO<变量名表>
例 STOR3*5TOA,B,C,D
STOR“中国医大”toxm
命令格式二 <变量名>=<表达式>
name=“张山”
aa=12
b=aa+15
c=.t.
d=ctod(“03/15/2005”)
内存变量的操作
2.内存变量的属性; (全局变量和局部变量)
指定全局变量命令格式 (在程序方式下使用)
PUBLIC<内存变量表>
例如publicma,mb,mc
ma=123.5
mb=ctod(“03/15/2005”)
mc=“ok”
指定局部变量命令格式
PRIVATE<内存变量表>
例如PRIVATEA,B,C
指定了A、B、C变量具有局部变量属性。
3数组变量的操作
▪数组的定义;
dimension<数组名>(数字表达式),<数组名>(数字表达式)…
功能定义数组名,维数及各维的大小。
例如dimea(20),b(3,4)
说明 定义了一维数组A数组
A
(1), A
(2), a(3),a(4),a(5) …a(20)
定义了二维数组B数组
b(1,1),b(1,2),b(1,3),b(1,4)
b(2,1),b(2,2),b(2,3),b(2,4)
b(3,1),b(3,2),b(3,3),b(3,4)
4数组变量的操作
▪数组的赋值;
▪stro<表达式>to数组名(下标)
数组名(下标)=<表达式>
例如dimea(4),b(3,4)
A
(1)=12
A
(2)=“ok”
store3*5tob(1,1),b(2,1)
?
A
(1),A
(2),B(1,1),B(2,1)
2-2VFP中的表达式
▪算术表达式
▪字符表达式
▪日期表达式
▪关系表达式
▪逻辑表达式
算术表达式
▪也称数字表达式。
由算术运算符、数字常量、变量、函数组成。
▪运算符;+、-、*、/、**或^、()
2.字符表达式
▪字符串定界符:
“abc”、 ‘abc’、[abc]
▪字符运算符; 有两个:
+和-运算
▪例如结果
?
“abcd“+”efg” “abcdefg”
?
“abcd“-”efg” “abcdefg”
3.日期表达式
▪由算术运算符+、-,算术表达式、日期常量、变量、函数组成。
▪例如
Date()+15或 15+date()
Date()-15或 15-date()
?
ctod(“01/25/2005”)-ctod(“01/10/2005”)
结果等于 15
4.关系表达式
▪由关系运算符、算术表达式、字符串表达式、变量、函数组成。
关系运算符两侧的类型必须一致。
▪关系运算符; > 大于
>= 大于等于
< 小于
<= 小于等于
= 等于
<>或 # 不等于
$ 字符串包含
== 字符串精确比较
5.逻辑表达式
▪由关系表达式、逻辑运算符、变量、函数组成。
▪一般格式为:
<关系表达式1><逻辑运算符><关系表达式2>
结果;真值 .T.或 假值 .F.表示
▪逻辑运算符 .NOT.逻辑非
.AND. 逻辑与
.OR.逻辑或
()括号
▪运算优先级 一级 算术运算、字符串运算
二级 关系运算
三级 逻辑运算
▪表达式运算次序
按照运算符的优先级进行运算。
2-3VFP的函数操作
▪VFP中函数是一种可以运行的特殊运算,并立即给出函数值。
▪函数的一般形式;函数名(自变量表)
如开平方 ?
SQRT(123)
输出结果 11.09
▪ vfp提供六大类73个函数
算术运算函数、字符函数、日期时间函数
类型转换函数、测试函数、标识函数。
1算术运算函数
1.取绝对值函数ABS(N)例?
ABS(-123)123
2.指数函数EXP(N)求eX值例?
EXP(3) 20.09
3.取整函数INT(N)不4舍5入 ?
Int(123.67)123
4.自然对数LOG(N)求e为底的对数?
LOG(10)2.30
5.平方根函数SQRT(N)?
SQRT(123)11.09
6.最大值函数MAX(N1,N2)求两个数字表达式中最大值,也可以比较字符型或日期型值。
?
max(123,342) 342 ?
Max(“fish”,”dog”,”cat”)fish
7.最小值函数MIN(N1,N2)求两个数字表达式中最小值,也可以比较字符型或日期型值。
?
min(123,342) 123 ?
Max(“fish”,”dog”,”cat”)cat
8.求余数函数MOD(N1,N2)求n1/n2的余数?
MOD(10,3)1
9.舍入函数ROUND(N,M)求对N保留M位小数,有4舍5入
?
Roun(1.5678,2) 1.57
2.字符操作函数
1、中间截取子字符串 substring(串,m,n)
对串从m位起截取n个字符。
?
Subs(“abcdefghij”,5,4) efgh
?
Subs(“中国医科大学”,5,4) 医科
2、求字符串长度len(串)
3.日期和时间函数
1.时间函数 time()给出hh:
mm:
ss格式的时间
?
Time()18:
25:
35
?
Time
(1)18:
25:
35.89若指定N则含百分秒
2.日期函数 date() 给出系统当前日期
?
Date()03/14/05
3.求年份函数 year(d)求出日期D的年份数值
?
Year(date())2005
4.求月份函数 MONTH(D)求出日期D的月份数值
?
Month(date())3
4.转换函数
1.字符转换ASCII数值函数 ASC(“数值串”)
例如 ?
Asc(“123”)49
?
ASC(“ABC”)65给出第一个字符的ASCII码值
?
ASC(“abc”)97
2.ASCII数值转换字符函数CHR(N)
?
CHR(66) B
3.字符转换日期函数 ctod(“mm/dd/yy”)
a=ctod(“02/25/05”)
4.日期转换字符函数 dtoc(d)
?
“今天是”+Dtoc(date()) 今天是03/14/05
5.大写转换小写函数 lower(串)
?
Lower(“ABCD”)abcd
6.小写转换大写函数Upper(串)
?
upper(“abcd”)ABCD
7.数值转成字符函数 STR(N,长度,小数位)
?
Str(12.57,2,0)+”班“ 13班
8.字符转换成数值函数VAL(数值串)
?
Val(“2005.3”)+22007.3
•第三章VisualFoxPro数据库与表的操作
3-1建立数据表
3-1-1数据表结构的创建
1.1建立表的结构---创建Student(学生情况)表
基本情况应包括:
学号、姓名、性别、出生日期、高考成绩和简历。
结构如下:
字段名
字段类型
字段宽度
小数点
学号
C
6
姓名
C
6
性别
L
1
出生日期
D
8
高考成绩
N
6
1
照片
G
4
简历
M
4
命令:
【格式】CREATE[D][<表文件名>]
【功能】建立一个表文件,<表文件名>可以可以包括盘符和路径名,此时将按指定的磁盘和文件路径保存数据表文件
【说明】输入命令后,按Enter键,屏幕上会出现“表设计器”对话框,利用该对话框即可建立表的结构。
不指定文件扩展名时,缺省扩展名为.DBF。
3-1-2输入表记录
Ø表的数据录入有多种方法:
第一:
在表结构建立时录入第二:
在表结构建成并存盘后,利用命令向表中追加记录
命令:
【格式】APPEND[BLANK]
【功能】在表的末尾添加一个或多个新记录
【说明】BLANK—在当前表的末尾添加一条空记录
3-1-3打开表文件
Ø使用任何一个表以前,都必须首先打开表
命令:
【格式】USE[<盘符>][<路径>][表文件名]
【功能】打开指定的表和相关的索引文件
【说明】若未指定数据库,则在当前数据库中查找,没有则在自由表中查找,同名则打开数据库表,含有备注型、通用型字段等,同名的.FPT文件同时打开。
•3-1-4关闭表文件
【格式】USE关闭当前打开的表
【格式】CLEARALL关闭各种类型文件和内存变量
【格式】CLOSEALL关闭各种类型文件
【格式】CLOSEDATABASE关闭所有打开的数据库文件、表文件、索引文件等
【格式】QUIT退出VFP系统,关闭所有文件
•3-1-5删除自由表文件
【格式】DELETEFILE[<表文件名>|?
]
【功能】将指定的表文件从磁盘上删除。
【说明】要删除一个表文件之前应确认该表文件处于关闭状态,否则无法删除。
若使用?
或省略<表文件名>则执行命令时将打开“删除”对话框,提示用户选择要删除的文件。
•若要删除的表文件存在与之相关的备注文件、索引文件则相关文件也同时删除。
•3-2表结构的基本操作
•3-2-1表结构的显示
【格式】LIST|DISPLAYSTRUCTURE
[ToPrint][tofile<文件名>]
【功能】显示当前表文件的结构
【说明】
TOPRINT决定信息输出打印机
TOFILE<文件名>决定信息输出到文件
•3-2-2表结构的修改
命令:
【格式】MODIFYSTRUCTURE
【功能】显示并修改当前打开的数据表的结构
【说明】主要有:
增加、修改、删除和移动字段
•3-3表记录的基本操作
•3-3-1表记录的显示
【格式】LIST|DISPLAY[OFF][FIELDS<字段名表>][<范围>][FOR<条件>][WHILE<条件>]
【功能】显示指定范围内满足条件的各个记录
【说明】1.使用OFF时,不显示记录号,否则显示记录2.FIELDS<字段名表>:
用来指定显示的字段3.范围为可选项,可以为ALL,RECORD(N),NEXT(N),REST中任意一个4.FOR<条件>:
指定对表文件中指定范围内满足条件记录进行操作5.WHILE<条件>:
作用同FOR,但是,当第一次遇到不满足条件的记录时,停止继续往后操作。
注意:
当同时缺省<范围>和<条件>子句,DISPLAY只显示当前的一条记录;LIST则是取默认值ALL而显示全部记录
3-3-2记录指针的定位:
记录号用于标识数据记录在表文件中的物理顺序。
当某个数据表文件刚打开时,其记录指针指向第一条记录
记录定位就是将记录指针移到指定的记录上,记录指针指向的记录称为当前记录。
绝对定位
【格式】[GO|GOTO]<[RECORD]<数值表达式1>
【功能】将记录指针绝对定位到<数值表达式1>指定的记录上【说明】<数值表达式1>:
记录的物理记录号绝对定位与是否打开索引文件没有关系
相对定位
【格式1】SKIP<数值表达式1>
【功能】记录指针从当前记录向前或向后移动若干个记录
【说明】<数值表达式1>:
表示移动的记录个数,数值表达式值为负,表示向前移动;为正,表示向后移动;若缺省,表示向后移动1个记录
【格式2】GO|GOTO
【功能】将记录指针移到表文件的首记录或尾记录
【说明】TOP:
将记录指针移到表文件的首记录
BOTTOM:
将记录指针移到表文件的最后一条记录
•3-3-3表记录的添加
1.插入记录【格式】INSERT[BEFORE][BLANK]
【功能】在当前表文件的指定位置插入新记录或空记录。
2.从另一表文件中追加记录
(1)命令方式【格式】APPENDFROM<表文件名|?
>[FIELDS<字段名表>][FOR<逻辑表达式>]
【功能】1从指定表中读取数据追加到当前表文件的末尾。
(2)菜单方式:
选择【显示】|【浏览】命令,系统弹出记录浏览窗口,选择【表】|【追加记录…】
3.从另一文本文件中追加记录
【格式】APPENDFROM<文件名|?
>[FIELDS<字段名表>][FOR<逻辑表达式1>][WHILE<逻辑表达式2]>][[TYPE]SDF|[DELIMITED[WITHTAB|WITH<定界符>|WITHBLANK]]
【功能】从指定类型的文本文件中追加记录到当前表文件。
3-3-4表记录的修改:
修改记录可以采用编辑修改、浏览修改方式
1编辑修改
【格式】EDIT/CHANGE[FIELDS<字段名表>][<范围>][FOR<逻辑表达式1>][WHILE<逻辑表达式2>]
【功能】按给定条件编辑修改当前打开的表文件的
记录
2浏览修改
【格式】BROWSE[FIELDS<字段名表>][FOR<逻辑表达式1>]
【功能】以浏览窗口方式显示当前表数据,并供用户
进行修改
【说明】执行该命令后,会出现BROWSE窗口
3.替换修改
(1)命令方式
【格式】REPLACE<字段名1>WITH<表达式1>[ADDITIVE][,<字段名2>WITH<表达式2>[ADDITIVE]]…[<范围>][FOR<逻辑表达式1>][WHILE<逻辑表达式2>][NOOPTIMIZE]
【功能】用指定表达式的值替换当前表中满足条件记录的指定字段的值。
(2)菜单方式
打开表文件,选择【显示】|【浏览】命令,系统即打开记录浏览窗口;选择【表】|【替换字段】命令,打开“替换字段”对话框。
•3-3-5表记录的删除
Ø删除分为逻辑删除和物理删除。
逻辑删除可以恢复,物理删除不能恢复
1逻辑删除
给指定的记录作删除标记“*”
【格式】DELETE[<范围>][FOR<条件>][WHILE<条件>]
【功能】对当前表中指定范围内满足条件的记录作
删除标记
【说明】当同时缺省<范围>,<条件>子句时,逻辑
删除当前记录
2.隐藏逻辑删除记录
【格式】SETDELETEON|OFF
【功能】将表文件中已逻辑删除的记录隐藏
【说明】当设置为OFF时,对表的各种操作,对删除的记录同样有效;当设置为ON时,表文件中已逻辑删除的记录都被屏蔽起来,如同这些记录真的已被删除一样,一般的操作对删除的记录无效。
SETDELETE的默认状态是OFF
3.恢复逻辑删除记录
将删除标记“*”去掉
【格式】RECALL[<范围>][FOR<条件>][WHILE<条件>]
【功能】对当前表中指定范围内满足条件的记录的
删除标记去掉
【说明】当同时缺省<范围>,<条件>子句时,仅去
掉当前记录的删除标记
4.物理删除记录
【格式】PACK[MEMO][DBF]
【功能】对当前表中所有带删除标记的记录全部删除
【说明】选择DBF,表示仅清除逻辑删除的记录而不压缩备注文件,选择MEMO表示仅压缩备注文件中无用的空间而不清除被逻辑删除的记录。
不带任何选择项时,PACK命令既清除逻辑删除的记录,又压缩备注文件。
5.一次性删除全部记录
【格式】ZAP
【功能】对当前打开的表文件中所有记录全部删除
【说明】ZAP命令等价于DELETEALL与和PACK两条命令连用执行。
执行该命令后,将只保留表文件的结构,而任何数据都不存在,无法恢复。
第四讲VisualFoxPro表记录的管理
4-1表的排序
【格式】SORTTO<新文件名>ON<字段名1>[/A|/D]
[<字段名2>[/A|/D]][FIELDS<字段名表>]
[<范围>][FOR<条件表达式>][WHILE<逻辑表达式>]
【功能】对当前表文件按照指定的关键字段及指定的条件,排序产生一个新的数据表文件。
.ON<字段名1>:
用作排序的关键字段
•/A按升序排序,/D按降序排序,默认是升序;
•可实现多重排序,首先按<字段名1>排序,如果有可选项<字段名2>,则在<字段名1>之值相同的情况下,再按<字段名2>的大小进行排序。
4-2表的索引
4-2-1建立索引文件
一、建立单索引文件
【命令】INDEXON<关键字段>TO<单索引文件名>
[For<条件表达式>]
【功能】对当前表文件按指定的关键字段建立索引