数据库复习资料.docx
《数据库复习资料.docx》由会员分享,可在线阅读,更多相关《数据库复习资料.docx(22页珍藏版)》请在冰豆网上搜索。
数据库复习资料
第一章
一、数据库的基本概念
1、数据、数据处理、数据模型(层次模型、网状模型、关系模型)、实体之间的关系(一对一,一对多,多对多)
关系=二维表,关系中的术语:
字段(属性)、记录(元组)、域、主关键字(候选关键字)、外部关键字
2、数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)、数据库应用系统(DBAS)的关系;
3、VisualFoxPro是一个32位的使用关系模型的数据库管理系统。
二、VisualFoxPro的概述
VFP的发展;
VFP的窗口介绍:
启动、退出、界面(标题栏、菜单栏、状态栏、主窗口、工具栏、命令窗口)
VFP的系统环境设置:
“工具”-“选项”,文件默认位置、区域、表单、数据
VFP的工作方式:
交互式(菜单、命令)和程序方式
VFP提供的工具:
向导、设计器、生成器
三、命令的书写规则
1每—命令必须以命令动词开头;
2命令动词后面的命令短语可按任意顺序排列,短语之间用空格分隔,空格数任意;
3命令一行书写不下时,可以换行,并在分行处加上分号“;”;所有符号都是英文状态下的半角符号;
4每行只能书写一条命令;
5所有命令和函数均可只写前4个字符,且不分大小写;
6—行命令结束后,用Enter键确认并执行,可重复执行。
第二章
一、语言基础
1、数据类型(13种):
类型名称,简写,
字节长度;哪些是基本类型,哪些用于表;
2、常量与变量:
6种基本类型的常量表示
变量如何命名和赋值
3、表达式与运算符:
6种类型的表达式以及运算符
4、函数:
常用函数的参数、返回值类型
1、数据类型13种
基本数据类型:
可用于字段变量,常量、内存变量、表达式的类型,有:
字符型(C,注意英文1位和中文2位,最长254)
数值型(N,注意小数点和正负号,最长20)、
货币型(Y,注意小数位只有4位,定长8)、
日期型(D,定长8位)
日期时间型(T,定长8位)
逻辑型(L,定长1位)
1、数据类型13种
其余用于表的数据类型有:
浮点型(F,20)、双精度型(B,8)、整型(I,4)、
备注型(M,4)、通用型(G,4):
备注文件(.fpt)
二进制字符型C、二进制备注型M
1,常量
字符型:
“”,‘’,[]
数值型:
e,-,+,.
货币型:
$
日期型:
{^},连字符可以是/-,用setmarkto改
日期时间型:
{^:
a|p},日期顺序setdateto
逻辑型:
.T.
2、变量
值可能会发生变化的量,变量是内存中的一个存储单元的位置变量的类型:
分为字段变量、内存变量、数组变量和系统变量4种
命名规则:
由数字、字母、汉字、下划线组成;只能以字母或下划线开头,不可以包含空格;长度1~128字符(自由表的字段名、表的索引标识名长度最多为10个字符);避免使用VFP的保留字
2、变量
变量的赋值
格式1:
变量名=<表达式>
格式2:
store<表达式>to变量名1,变量名2,…
格式3:
INPUT“提示”TO<变量名>
内存变量的作用范围
LOCAL指定的变量为局部变量
PRIVATE私有变量
PUBLIC全局变量
3数组变量
数组:
一组内存变量的集合
Vfp只能定义一维数组和二维数组
声明方式:
Public、Local、{declare/dimension}<数组名>(行数[,列数])例:
dimea(4),b(2,3)
特点1)数组各个元素的默认值为.F.
2)下标计数从1开始,每个元素可以不是同一类型。
3)表达式中数组下标缺省时,在等号左侧表示数组的所有元素,在等号右侧表示数组第一个元素。
4)二维编号可以转化为一维。
3、表达式与运算符
表达式是变量、运算符、常量、字段名、控件以及属性的组合,每个表达式都有一个返回值。
算术表达式:
表达式要写在一行上,没有分式、上下标,[],{},运算符如下:
+,-,*,/,^或者**,%,()
字符表达式:
字符+/-字符;表示字符拼接
日期时间表达式:
日期+/-数值(天数、秒数)日期,日期-日期->数值,两个日期不能相加
3、表达式与运算符
关系表达式(第五章),同种类型之间如下运算:
<、>、=、<>或#或!
=、<=、>=、==
——》逻辑型
逻辑类型:
.T.>.F.
日期时间类型:
后面的时间>前面的时间
字符类型:
ASCII码比较,$运算
注意setexacton|off
逻辑表达式:
逻辑类型and|or|not或者!
函数(系统函数)
①数值类函数②字符类函数、
③数据转换类函数④日期和时间类函数
⑤变量处理类函数⑥表和数据库类函数
⑦环境类函数⑧数据共享类函数
⑨输入和输出类函数⑩编程类函数和动态数据操作类函数
常用的数值函数
函数格式函数功能
ABS(表达式)求表达式绝对值。
INT(表达式)取整数。
MAX(表达式1,表达式2…)求各表达式的最大值。
MIN(表达式1,表达式2…)求各表达式最小值。
MOD(表达式1,表达式2)表达式1除以表达式2的余数。
RAND()产生0~1之间随机数。
ROUND(表达式1,n)对表达式1四舍五入保留n位小数。
SIN(表达式)正弦函数
SQRT(表达式)求平方根
请看教材24页
常用的字符串函数
函数格式功能(注:
函数参数为字符表达式)
ALLTRIM(表达式)去掉表达式前、后空格。
TRIM(表达式)去掉表达式尾部空格。
LTRIM(表达式)去掉表达式前导空格。
LEFT(表达式1,n)取表达式左边的n个字符。
RIGHT(表达式1,n)取表达式右边的n个字符。
LEN(表达式)求表达式所含字符个数。
SUBSTR(表达式,n[,M])从表达式第n个字符开始取m个字符。
SPACE()返回n个空格组成的字符串
函数格式功能(注:
函数参数为字符表达式)
AT(表达式1,表达式2,[n])得到表达式1在表达式2开始位置。
LIKE(表达式1,表达式2)比较两个字符串的字符是否匹配。
LOWER(表达式)将表达式中大写字母变为小写。
UPPER(表达式)将表达式中小写字母变为大写。
常用的日期和时间函数
函数格式功能(函数参数为日期或日期时间表达式)
YEAR(表达式)得到日期表达式的年份。
MONTH(表达式)得到日期表达式的月份。
DAY(表达式)得到日期表达式的日。
HOUR(表达式)取日期时间表达式的小时数。
MINUTE(表达式)取日期时间表达式的分钟数。
SECONDS(表达式)取日期时间表达式的秒数。
TIME()得到当前系统时间。
函数值类型为C
DATE()得到当前系统日期。
函数值类型为D
DATETIME()得到当前系统日期和时间。
函数值类型为T
常用的类型转换函数
函数格式函数功能
CTOD(表达式)将字符串转换为日期表达式。
CTOT(表达式)将字符串转换为日期时间表达式。
DTOC(表达式,[1])将日期表达式转换为字符串。
TTOC(表达式,[1])将日期时间表达式转换为字符串。
STR(表达式,[n],
)将数值表达式转换为n位带有m位小数的字符串
VAL(表达式)将字符表达式转换为数值。
CHR(ASCII码)返回ASCII码对应的字符。
ASC(表达式)得到字符表达式首字符对应的ASCII码。
常用的测试函数
函数格式函数功能
BETWEEN(表达式1,表达式2,表达式3)判断表达式1的值是否在表达式2和表达式3之间
ISNULL(表达式)判断表达式值是否为NULL
EMPTY(表达式)判断表达式的值是否为空值
VARTYPE(表达式)测试表达式值的类型
EOF()测试记录指针是否在表文件末尾
BOF()测试记录指针是否在表文件开头
RECNO()测试记录指针正指向的记录号
RECCOUNT()测试数据表的记录个数
DELETED()测试记录指针是否有删除标记
IIF(条件,表达式1,表达式2)条件成立,返回表达式1的值;否则,返回表达式2的值。
第二章
二、面向对象的编程基础
1、类、对象、属性、方法、事件的概念
对象(OBJECT):
客观世界里的任何实体。
即可以是具体的物,也可以指某些概念。
类(CLASS):
是已经定义了的关于对象特征和行为的模板。
属性(Property):
对象状态的一项描述内容,描述对象的一个特性。
方法(Method):
描述对象的行为。
事件(Event):
由外界触发的能够被对象识别并执行的一个动作。
(由系统或用户触发)
在VFP中,可以给对象定义新的属性和方法,不能添加新的事件。
二、面向对象的编程基础
2、表单对象
表单(.SCX:
表单文件;.SCT:
表单备注文件)
表单的基本操作:
创建:
CREATEFORM<表单文件名>
运行:
DOFORM<表单文件名>
修改:
MODIFYFORM
表单设计器的使用:
控件的添加、编辑、布局、设置等
表单的常用属性、事件、方法
AutoCenter、BackColor、Caption、ControlBox、TitleBar、ShowWindow
Load、Init、Activate、Destroy、Unload、Resize、
Hide、Show、Release、Refresh
二、面向对象的编程基础
3、控件及控件的引用
控件:
Label、Textbox、Commandbutton、checkbox、Listbox、Combobox、Optionbutton、Spinner、Timer
容器:
Form、Grid、Column、Pagefram、page、Commandgroup、optiongroup、Container
对象的引用:
1绝对引用:
通过提供对象的完整容器层次来引用对象
2相对引用:
通过快捷方式指明所要处理的对象
Parent、This、Thisform、ThisformSet
二、面向对象的编程基础
4、对象的属性、事件、方法的调用
对象属性的设置:
属性框
代码:
表单名.对象名.属性名=属性值;
多个属性用WITH...ENDWITH
调用对象方法的语句格式是:
表单名.对象名.方法名()thisform.release()
调用事件的语句格式是:
表单名.对象名.事件名
第三章
一,项目管理器
扩展名为*.PJX,备注文件是.pjt。
是VFP处理数据和对象的主要组织工具。
选项卡:
全部、数据、文档、类、代码、其他
新建方法
文件-新建,选择“项目”;Createproject命令
编辑方法
文件-打开;Modifyproject命令
外观设置:
可以对它进行位置的移动、
窗口大小的改变、窗口的折叠与展开等操作。
二、数据输出(第四章)
1、标签(LABEL)
常用属性:
Caption、Autosize、Forecolor、Fontsize、Wordwrap
2、对话框MessageBox()
格式:
MessageBox(信息文本[,对话框类型][,对话框标题])
三、数据输入(第四章)
1、文本框(Text)控件:
用于输入、编辑、输出各种类型的数据。
常用属性:
Value、PasswordChar、Selstart、Sellength、Seltext
2、编辑框(Editbox)可编辑长文本或备注字段,利用它可选择、剪切、复制文本。
ScrollBars、ReadOnly
3、控件属性Visible和enabled的区别
4、setfocus方法和gotfocus事件
四、形状、容器和图像控件的使用(第四章)
容器的specialeffect属性,可以设置三维效果
通过格式菜单设置控件层次
注意如何将控件放入容器中
选择容器—编辑,这样拖动控件到容器中
注意容器内对象的引用
Thisform.container1.text1.setfocus
图像(image):
picture:
要显示的图片,可以根据打开对话框查找。
二、控件(第五章)
1、命令按钮组CommandGroup
2、选项按钮组(单选按钮组)OptionGroup
常用属性:
ButtonCount,Buttons:
按钮数组,buttons(n)代表第n个按钮
常设置的事件:
Click
用命令按钮组的value属性获得单击的按钮
3、复选框check复选框不是一个容器控件
常用属性:
value:
0或.f.(假);1或.t.(真);2或.null.(暗,灰的)
常设置的事件:
Click
二、控件(第五章)
4、计时器Timer控件
计时器最重要的一个属性是:
Interval(间隔时间)1000=1秒
最重要的一个事件是:
Timer事件,即每隔一定时间要执行的操作。
5、微调器Spinner控件
常用属性:
KeyboardHighValue、KeyboardLowValue、SpinnerHighValue、SpinnerLowValue、Increment
最重要的一个事件是:
InteractiveChange事件,即值发生改变时要执行的操作。
二、控件(第六章)
1列表框(ListBox):
常用属性:
List、ListCount、ListIndex、ColumnCount、MultiSelect、Value、Selected、RowSourceType、RowSource
常用方法:
AddItem、RemoveItem、Addlistitem
常用事件:
KeyPress、DblClick、Click、InterActiveChange
二、控件(第六章)
2组合框(ComboBox):
下拉列表框和下拉组合框两种。
常用属性:
DisplayValue、DisplayCount、RowSource、RowSourceType、ListIndex、Style(0是下拉组合框,2是下拉列表框)
常用方法:
AddItem、RemoveItem、list
常用事件:
KeyPress、DblClick、Click、InterActiveChange
二、控件(第六章)
3页框(PageFrame)
属性:
pagecount、tabs
4页(Page)
属性:
caption
方法:
zorder
第四章
一、基本语句
赋值语句:
=;storeto
语句的换行:
;
注释语句:
note;&&
暂停语句:
waitTOwindowtimeout
常用显示语句:
?
;?
?
;?
?
?
;\;\\
结束程序运行命令:
return;quit;
thisform.release();releasethisform
一、选择结构
1、简单选择
IF〈条件表达式〉
〈语句组1〉
ELSE
〈语句组2〉
ENDIF
IIF(〈条件表达式〉,<真部分>,<假部分>)
第五章
一、选择结构
3、多路选择DOCASE
CASE〈条件表达式1〉
〈语句组1〉
CASE〈条件表达式2〉
〈语句组2〉
:
[OTHERWISE]
[〈语句组n+1〉]
ENDCASE
一、循环结构
1、当型循环结构
DOWHILE〈条件表达式〉
〈语句组〉
ENDDO
一、循环结构
2、步长型循环结构
FOR<内存变量>=<初值>TO<终值>STEP<步长>
<语句序列>
ENDFOR|NEXT
循环过程是首先将初值赋于循环变量,每当执行一次循环,循环变量增加一个步长(默认是1),直到循环变量值大于终值时结
束循环。
一、循环结构
3、扫描型循环结构
SCAN[〈范围〉][FOR〈条件表达式〉]〈命令序列〉
ENDSCAN
4、循环体中的特殊语句
LOOP:
中断本次循环体的执行,跳回到循环的开始处,重复条件的判断
EXIT:
终止正常循环,无条件地转到循环结束语句的后面继命令去执行
多重循环,只能在当层循环中作用
第十一章
自由表和数据库表,表文件*.dbf
表的操作包括:
1、创建新表
2、表结构的定制(通过表设计器完成增、删字段,修改字段名、字段类型、宽度等)
3、存储和查看表中的信息(显示下拉菜单中的浏览、编辑、追加方式)
4、表数据的修改
5、定制表(关系的投影和选择操作)
对于已经建好的表,可以利用索引对其中的数据进行排序。
1、创建新表:
用表设计器创建新表;
CREATETABLE<表名>(<字段名1><类型>(<长度>))[,<字段名2><类型>(<长度>)…]
2、修改表结构:
显示——表设计器;
MODIFYSTRUCTURE
3、表的打开:
“数据工作期”;USE<表文件名>
Shared或者exclusive
4、表的关闭:
USE
5、浏览模式和编辑模式:
①浏览模式:
Browse<范围>for<条件>
②编辑模式:
Edit<范围>for<条件>
6、追加记录:
显示——追加记录
表——追加新记录
表——追加记录
使用APPEND、insert命令
7、删除分为:
逻辑删除和物理删除
1)逻辑删除:
删除标记
表删除记录;DELETE[<范围>][FOR<条件>]
2)物理删除:
可以将数据表中所有具有删除标记的记录正式从表文件中删掉
表彻底删除;命令PACK
删除所有记录zap
3)恢复删除记录命令
RECALL[<范围>][FOR<条件>]
8、批量修改数据:
表替换字段;
REPLACE[<范围>]<字段名1>WITH<表达式1>FOR|WHILE<条件>]
9、表记录的定位:
绝对定位:
gon|top|bottom
相对定位:
skipn|-n
条件定位:
locate<范围>for<条件>
10、筛选
1)筛选记录:
表属性:
“工作区属性”窗口,选择“数据过滤器”;SETFILTERTO[(逻辑表达式)]
2)筛选字段:
表属性:
设置“字段过滤器”;SETFIELDSTO{ALL|<字段名表>}
11、索引
索引的类型:
主索引、候选索引、普通索引、惟一索引;自由表没有主索引
11、索引
索引的建立:
表设计器;INDEXON索引表达式TAG索引标识[ASCENDING|DESCENDING]
[UNIQUE[CANDIDATE]]
删除索引:
Deletetag索引标识名|all
使用索引:
表——属性——索引顺序;
SETORDERTO<索引名>
12、数据查询
条件查询:
Locate…for
continu
常用查询:
Find<字符串>/<常数>
表达式查询:
Seek<表达式>
Found();
第十二章
数据库*.dbc
1、数据库的基本操作
建立数据库:
Createdatabase<数据库名>
打开数据库:
Opendatabase<数据库名>
修改数据库:
modifydatabase
往数据库添加表:
addtable<表名>
从数据库移去表:
removetable<表名>
删除数据库:
Deletedatabase<数据库名>[deletetables]
关闭数据库:
Closedatabase
设置当前数据库:
Setdatabaseto<数据库名>
2、数据库的基本操作
建立数据库:
Createdatabase<数据库名>
打开数据库:
Opendatabase<数据库名>
修改数据库:
modifydatabase
往数据库添加表:
addtable<表名>
从数据库移去表:
removetable<表名>
删除数据库:
Deletedatabase<数据库名>[deletetables]
关闭数据库:
Closedatabase
设置当前数据库:
Setdatabaseto<数据库名>
2、数据库表的特殊属性
为数据库表设置长表名、注释
设置字段标题、注释、默认值
设置字段格式
设置字段掩码
设置字段有效性规则
设置记录有效性规则
3、数据的完整性
实体的完整性:
保证表中记录的唯一性,不允许有空值。
通过主索引和候选索引来保证表中记录的唯一性。
域完整性:
保证表中数据的正确性。
通过表设计器设置字段的类型、宽度、字段有效性规则来保证域完整性,包括数据类型、取值范
围、是否允许空值等。
参照完整性:
涉及相互关联的两个表。
主要是通过插入、删除、更新规则来实现的。
4、实体之间的联系
种类:
一对一、一对多(多对一)和多对多关系。
实现:
要保证建立关系的两表具有相同的属性字段,每个表都要以该字段建立索引。
父表可以创建主索引或候选索引。
子表可以创建
创建主索引,候选索引,普通索引。
多对多关系建立纽带表,转化为两个一对多关系。
5、多工作区
SELECT<工作区号>或:
SELECT<表的别名>
说明:
工作区号编号由1~32767。
表的别名可以是表名自身,也可以是所在的工作区名。
前10个工作区名为A~J,11~32767工作区名为W11~W32767
Usexsdjin0
临时关系:
SetRelationTo索引关键字Into工作表名
sql
创建表
CreatTable表名
修改表
AlterTable表名
删除表
DropTable表名
创建视图
CreatView视图名
AsSelect
删除视图
DropView视图名
1、创建表
CREATETABLE|DBF表名1[NAME长表名][FREE]
(字段1类型[(宽度[,长度])][NULL|NOTNULL][CHECK逻辑表达式1[ERROR字符型文本信息1]][DEFAULT表达式1]
[PRIMARYKEY|UNIQUE][REFERENCES表名2[TAG索引名2]]......
2、删除表的命令格式:
Droptable<表名>
修改表结构
格式一:
添加字段或修改已有的字段
ALTERTABLE|DBF表名1ADD|ALTER[COLUMN]
字段名1字段类型[(字段宽度[,小数位数])]
[NULL|NOTNULL][CHECK<逻辑表达式1>[ERROR<文本信息1>]][DEFAULT<表达式1>][PRIMARYKEY|UNIQUE][REFERENCES
<表名2>[TAG<标识名1>]]……
格式二:
指定字段的default和check等约束规则,不影响原有表的数据
ALTERTABLE|DBF表名1ALTER[COLUMN]字段名1
[NULL|NOTNULL][SETDEFAULT<表达式1>][DROPDEFAULT][SETCHECK<逻辑表达式1>[ERROR<文本信息1