数据库及其应用_第1页
数据库及其应用_第2页
数据库及其应用_第3页
数据库及其应用_第4页
数据库及其应用_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库及其应用 学习大纲 第1章 数据库系统的基本概念1.1 信息、数据和数据处理计算机是处理数据的,而数据处理的基础首先是数据的组织、存储,然后是查询检索、维护、加工和利用。掌握以下几个概念和术语: 信息现实世界在人们头脑中的反映,是一个抽象概念,用以观察、认识和改造世界。 数据用以载荷信息的符号。该符号是人为规定的,在不同的领域有不同的符号表示。计算机中以0、1两个符号的编码表示各种信息。 信息与数据二者既有区别又有联系,数据是信息的载体;信息是数据符号的内涵。同一信息可以有不同的数据形式;同一数据也可能有不同的解释。 数据处理即信息处理。将输入计算机中的原始数据经过加工计算产生新的数据,

2、这新的数据代表了新的信息,用以指导工作和辅助决策。 数据管理数据处理包括数据计算和数据管理,前者用于较小范围的科学计算领域;后者广泛用于各个领域,指数据的收集、整理、组织、存储、查询、维护和传递等操作。1.2 数据库管理技术的发展 自由管理阶段>文件管理阶段>数据库阶段(无专门数据管理 (文件管理 (数据库管理 功能) 系统) 系统)1.3 数据库系统的组成与结构掌握以下几个概念和术语: 数据库DB将数据按一定的数据结构组织起来存储在磁盘等外部介质上,既能保证数据间的必要联系,又能使冗余度达到最小。 数据库管理系统DBMS数据库系统中用于数据管理的软件。包括对数据库的定义、数据的查

3、询、数据的修改维护、数据库的运行等各种操作。一、数据库系统的组成 作为一个整体的数据库系统,其组成除了计算机的软、硬件环境外,主要由数据库、数据库管理系统、应用程序(用户使用数据库时的各种程序)及专职的数据库管理员共同组成。二、数据库系统体系结构 三级组织结构: 外模式模式(又称概念模式)内模式其中: 内模式:又称存储模式,是具体描述数据如何实现物理存储。是系统程序员的视图。 概念模式:又称模式,是对数据库整体的逻辑描述,并不涉及物理实现。是数据库管理员面对的视图。 外模式:面向用户的模式,即用户眼中的数据库,故称“用户视图”。三个模式之间的关系: 三个模式站在不同的角度看待数据库,形成了用户

4、观、总体观和存储观;总体观和存储观只有一个,而用户观则根据用户的不同应用可能有多个。 从数据存储来看,其中只有内模式才是真正存储数据的,其它2个均为逻辑描述。三个模式之间的映射: 在三个模式之间存在着两种映射:一是将用户数据库与概念数据库联系起来的“外模式/模式”间的映射;另一是将概念数据库与物理数据库联系起来的“模式/内模式”间的映射。三、数据库管理系统DBMS 它是数据库系统的重要组成部分 DBMS的功能 数据库定义功能 由DDL数据描述语言完成 模式间映射功能 数据库操纵功能 由DML数据操纵语言实现 提供程序设计语言功能 2种语言:宿主型和自主型 数据库运行控制功能 数据库维护功能 第

5、二章 数据模型2.1 什么是数据模型 数据模型既包括实体的集合又包括实体间联系的集合。利用这种联系才能找到相关联的一串数据。2.2 实体联系模型 掌握有关术语:实体(三种)、属性(实体所具有的性质)、实体型(实体集中各实体共有的特征描述)、实体值(当各特征有了具体内容后,这些特征便确定了一个实体集中的个体,就叫一个具体的实体值)、实体集(同一类型的实体集合)、值域(属性的取值范围)、主关键字(用于区别实体集中不同个体的属性)、外来关键字(某属性虽非该实体的主键,但却是另一实体的主键) 用ER图方法分析实体间的联系2.3 数据库类型根据不同的数据模型结构而定义了不同的数据库类型。主要有三种数据模

6、型:层次模型、网络模型和关系模型 层次模型网络模型关系模型用二维表的形式来表示实体及其联系。 二维表(亦称关系)包括: 表头 (亦称关系框架、表结构、属性名) 表体(即表的具体内容,由一条条记录组成)2.4 从ER图导出关系模型第3章 关系数据库理论基础3.1 关系的数学定义 域(Domain)值的集合,即:可能取值的范围。域中数据个数称为域的基数。 如 男、女(性别域,基数2) 已婚、未婚、离异、丧偶(婚姻 状况域,基数4) 笛卡尔积(Cartesian Product)一组域的所有各种组合,其中每一种组合状况称为一个元组。 如:上例中 D1=性别域男、女 D2=婚姻 状况域已婚、未婚、离异

7、、丧偶 其笛卡尔积可表示为: D1*D2=男,已婚男,未婚男,离异男,丧偶女,已婚女,未婚女,离异女,丧偶 共有8个元组。 引例:给出三个域: D1=男人集合(MAN)=王兵,李平,张军 D2=女人集合(WOMAN)=丁枚,吴芳 D3=儿童集合(CHILD)=王一,李一,李二请写出他们组合的笛卡尔积。 关系D1*D2* *Dn的子集叫做在域D1,D2, Dn上的关系(Relation)。关系是一个二维表,表的每行对应一个元组,表的每列对应一个域,每列起一个名字,称为属性。下面我们在上述的例子中取出笛卡尔积的一个子集来构造一个关系:这个关系的名字为家庭,域名为男人、女人、儿童,表示为:家庭(丈夫

8、、妻子、孩子)关系是笛卡尔积的子集,而只有取某一子集才有一定实际意义。例如上例中,在18个元素中,只有3个有实际意义,而其他元素作为关系是无意义的。请把以上有实际意义的关系列成一个二维表。3.2 关系的性质作为以二维表形式表示的关系,必须具备以下性质: 属性名必须是不可再分的简单数据项 列是同质的 列的前后次序无关紧要 行的前后次序无关紧要 每行代表一个具体实体,称为表中的元组。表中不能有完全相同的两行。3.3 关系数据描述语言DDL 1) 有二种:问答式和语言描述式 2)关系模式的三类完整性规则 实体完整性 关系中的主键不允许为空 引用完整性 不同关系之间的联系是通过“外部关键字”实现的,当

9、一个关系通过外部键引用另一个关系中的记录时,它必须能在被引用的关系中找到这个记录,否则无法实现联系。 用户定义的完整性 指对关系模式中的各个数据的数据类型、长度、取值范围等的约束,由用户通过DBMS提供的数据语言进行统一的控制。3.4 关系数据操纵语言DML 关系数据语言建立在关系代数基础上,具有以下特点: 以关系为单位进行数据操作,操作的结果也是关系。 非过程性强,很多操作只需指出做什么,而无须步步引导如何作。 以关系代数为基础,借助传统的集合运算和专门的关系运算,使关系数据语言有很强的数据操纵能力。3.5 关系代数 因为数据库中的关系是一个集合,关系中的“元组”即是“集合中的元素”,所以关

10、系代数的关系运算用于数据库的操作。一、集合运算 传统的集合运算:并集:由2个关系R和S中的所有元素构成新的关系。记为RS。交集:由2个关系R和S中的所有共同元素构成新的关系。记为RS 。差集:由属于R而不属于S的所有元素组成的新的关系 。记为R-S。 专门的关系运算选择运算(selection):从关系中挑选出满足条件的记录(行)生成新关系。即生成水平方向的子集。投影运算(projection):从关系中挑选出若干字段(列)生成新关系。即生成垂直方向的子集。连接运算(join):连接2个关系所生成的新关系。由不同的连接类型和连接条件组成不同的结果。二、相关术语: 域、笛卡尔积、选择、投影、连接

11、、自然连接。3.6 关系规范化一、关系中的函数依赖 1.函数依赖概念只要关系中的主键一旦取值,其它非主属性值必随之确定,则称关系中的非主属性函数依赖于主键。2.完全函数依赖与部分函数依赖当主键由2个以上的字段组合时,非主属性必须函数依赖于组成主键的所有字段,才称为“完全函数依赖”。否则,是“部分函数依赖”。3.传递函数依赖属性之中存在间接依赖则称“传递函数依赖”。二、范式与规范化1.范式(Normal form 简称NF)满足一定条件的规范模式。分为一级(1NF)、二级(2NF)、三级(3NF)其中: 1NF各属性项均为平滑的基本项。 2NF各非主属性项均完全函数依赖于主键。 3NF各非主属性

12、项与主键均不存在传递函数依赖。2.关系规范化 规范化过程是一个不断分解关系的过程,以逐步达到较高的范式要求。分解的要求; 分解必须是无损的,不能丢失原信息。 分解后的关系要相互独立,避免对一个关系的修改而波及另一个。应 用 篇第五章 FoxPro 综述5.1 FoxPro的特点、文件类型及主要技术指标 掌握几个主要的文件类型及扩展名 了解几个主要的技术指标5.2 FoxPro 的安装、启动及其用户界面 掌握FoxPro 的各种启动方法并熟悉其界面窗口 菜单的各项功能及菜单操作 命令窗口中的单命令操作方式5.3 FoxPro 中的数据类型、常量、变量、运算符与表达式 1.数据类型 C型、N型、F

13、型、L型、D型、M型、G型 2.常量 只有4种:字符型、数值型、日期型、逻辑型 3.变量 3种:字段变量、内存变量、数组变量注意:其中同名的字段变量优先,但可以用M->来强调内存变量。4. 运算符 算术运算符、字符串运算符、关系运算符、逻辑运算符。其中字符串运算符补充 :$(包含运算符),其运算结果为逻辑值.T. 或 .F.。例:“海淀区” $“北京市海淀区” 结果:.T. “海淀区” $ “北京海淀” 结果:.F.5. 表达式 与四类运算符相对应有四类表达式: 算术表达式 A+B 字符串运算表达式 “中国 ”+ “北京”=“中国 北京” 或: “中国 ”- “北京”=“中国北京 ” 关

14、系表达式 A<=B 或 “中国”> “美国” 逻辑表达式 A> B .and. C< D 根据表达式的运算结果的数据类型,以上又可分为字符型表达式、数值型表达式、日期型表达式和逻辑型表达式。5.4 FoxPro 命令的一般格式1.命令格式2.命令的书写3.命令的执行方式5.5 内存变量的操作1.赋值操作(赋值号=、STORE命令)2.保存操作 分为3种格式:SAVE TO <内存变量文件名> SAVE TO <内存变量文件名> ALL LIKE <通配项>SAVE TO <内存变量文件名> ALL EXCEPT <通

15、配项>3.恢复操作(RESTORE FROM <内存变量文件名> )4.清除操作(3种语句格式)5.显示操作(2种:LIST和DISPLAY命令)6.输出操作(2种:?和?)5.6 数组操作1.定义数组(DIMENSION语句)2.给数组赋值(“=”和STORE语句)5.7 函数 函数的一般形式: 函数名(<参数表>) 即: 函数名(<参数1>,<参数2>,,<参 数n >)说明:对于每一个函数要求了解:j 该函数的格式 k 该函数的功能 l 该函数的数据类型,包括参数的类型和函数返回值(即:函数结果)的类型 数值函数 字符串函

16、数 日期和时间函数 类型转换函数 测试函数补充:1)Right(表达式,n) 功能:从字符表达式的右边截取n个字符 类型:表达式为C型;n为N型;函数返回值 为C型 例: Right(“中国人民”,4) 结果:人民2) Left(表达式,n) 功能:从字符表达式的左边截取n个字符 类型:同上 例: Left (“中国人民”,4) 结果:中国练习:1. 写出下列命令的执行结果 ? INT(156.7) ? SQRT(36) ? MIN(-1,1,10) ? MAX(-1,1,10) ? MOD(13,6) ? ROUND(234.137,2) ? AT (“海淀”,“北京市海淀区”)8)?RIG

17、HT( “ 李大华”,2 )9)?3+2410) ?LEN( “4+23”)11) ? TYPE(“DATE( )”)12) ? “BYE” $ “GOOD BYE”13) ? TYPE(“123”)14) ? LEFT(“中国人民”,2)+RIGHT(“人民万岁”,2)15) ? VAL(“532xyz”)+3616) ? VAL(“123”)+LEN(“abcd”)2.求下列逻辑表达式的值 设X=0, Y=1, X1=“BC”, Y1=.F.3. 根据问题要求,写出FoxPro表达式1) 10<y<=1002) 总分在90以上的女同学3)年龄小于40 的教授4)平均成绩在809

18、0之间的姓“白”的同学5)求出“1234”前两位数字6)求出三个数中最大数的2倍7)将2001年9月28日中的年份分离出来8)“计算机”或“英语”成绩不合格的同学9)查看当前工作区中当前记录号练习4. 写出以下结果:1) 表达式VAL(SUBSTR(“长城386”,7,1)*LEN(IBMPC)2) 设A=456,则32+&A的结果是_.3) P1=中国人民,则?“伟大的&P1.万岁!”的输出结果是_.练习中要注意的问题: 标点符号一律用西文下的符号 赋值语句要一句一句来 练习3和练习4写在纸上交来。练习3的前提是:假设在 .dbf文件中有“总分”、“性别”、“年龄”、“职称”

19、、“姓名”等字段,请你用允许的表达式形式把各句话表达出来。第六章 数据库的基本操作6.1 建立数据库1.先定义库文件结构 命令:CREATE <文件名>注意:<文件名>是包含盘符、路径的文件全名2.录入数据 1)立即录入(回答input data record now?) 2)用APPEND语句追加(追加在最后)3.显示记录 LIST|DISPLAY <范围>FILD <字段名表>FOR|WHILE <条件>4.打开库文件 USE <库文件名>5.关闭库文件 USE|CLOSE DATABASES6.2 库文件的维护与修改

20、1. 库文件的显示1)文件结构的显示 LIST STRUCTURE 或 DISPLAY STRUCTURE2)文件内容的显示(LIST/ DISPLAY注意完整格式的各可选项含义)2. 库文件的修改 1)文件结构的修改(先打开库文件) MODIFY STRUCTURE 2)文件内容的修改(插入、删除和编辑)3. 记录的指针定位FOX系统提供了一个总是指向当前记录的“指针”,此指针随着库文件的操作而移动。 1)绝对移动 GO TOP 将指针指向第一条记录 GO BOTTOM 将指针指向最后一条记录 GO n 或 GO <数值表达式> 将指针指向指定的记录 2)相对移动 SKIP n

21、或 SKIP< 数值表达式> “正”向下移,“负”向 上移;缺省默认为1。 3)三个有关的函数 BOF() 测试文件的开始,函数的结果为逻辑值.T.或.F. EOF() 测试文件的结束,函数的结果为逻辑值.T.或.F. RECN() 测试文件的当前记录是哪一条,函数的结果为数值n。 记录的插入 INSERT BEFORE BLANK 一定要先明确当前记录的定位,然后再进行插入操作。 第一选项意为在当前记录之前插入,缺省默认为后插入;第二选项意为插入一条空记录,该命令执行后并不产生等待输入的窗口。5. 记录的删除 1)逻辑删除 DELETE <范围> FOR|WHILE

22、<条件>注意各个可选项的有无及含义,缺省范围意为只删当前一条。 此命令并未真正删除,仅在记录前做一删除标志。2)恢复逻辑删除 RECALL <范围> FOR|WHILE <条件>此命令的功能是去掉删除标记,恢复为正常记录。 注意各个可选项的有无及含义,缺省范围意为只恢复当前一条记录。3)物理删除 PACK 将带有删除标记的所有记录彻底 删除,它们将不可能再恢复。 ZAP 直接删除已打开的库文件中的全部记录,只剩库结构。4)与逻辑删除有关的系统参数 SET DELETE OFF | ON功能:设置在逻辑删除之后,系统是否认可的规定(取ON时认可删除;取OFF时

23、不认可删除)。6 . 记录内容的修改1)全屏幕编辑状态修改 EDIT|CHANGE <范围> FILD <字段名表>FOR|WHILE <条件> 注意命令中选择项的含义 体会执行该命令时的全屏幕编辑状态 注意备注型字段的修改操作(按<Ctrl+PgDn>、<Ctrl+PgUp>或双击鼠标进入备注字段编辑窗口,修改后按<Ctrl+W>保存,并退出备注字段编辑窗口;若按ESC键或<Ctrl+Q>则放弃修改并退出。 ) 2)浏览编辑修改 BROWSE命令 注意执行该命令后屏幕上显示的格式(与LIST命令不同) 注意命

24、令中各选择项的含义3)成批替换修改 REPLACE <范围> <字段1> WITH <字段2> FOR|WHILE <条件> 例:将每个人的工资都提高50 元 REPLACE ALL 工资 WITH 工资+50 练习: 将所有工龄在30年以上的女教授的工资提高10%6.3 库文件的排序与索引1.排序文件依据某个指定字段的值将记录顺序重新排列,生成一个新库文件 SORT TO <文件名> ON <字段1> /A/C/D<范围>FILD <字段名表> FOR|WHILE <条件>例:将rsd

25、a.dbf按“工资”项的从高到低排列,产生新的名为rsgz.dbf文件,只取姓名、职称、工资三个字段。 将rsda.dbf先按“工资”项的从高到低,如果相同再按姓名的升序排列。2.索引文件依据某个指定字段的值生成索引表,再以索引表的顺序逻辑排列记录 注意索引文件与排序文件的区别 a)文件后缀不同(.dbf|.idx) b)形成后的物理文件和逻辑文件的不同 c)执行命令的系统开销不同 索引文件的类型单索引文件(.idx)和复合索引文件(.cdx)单索引文件只有命令操作方式,而无菜单操作。复合索引文件又分为两种:结构复合索引和非结构复合索引,前者:与主文件名同(仅后缀不同),且与主文件同步打开、维

26、护;可用命令和菜单2种方式操作;后者:需要单独取文件主名(后缀仍为.CDX),用时需单独用命令打开,无菜单操作方式。复合索引文件其索引表中可容纳多个用TAG标识的索引项,打开一个复合索引文件相当于打开了多个单一索引文件。索引文件的有关操作 1)索引文件的建立 INDEX ON <关键字段名> TO <索引文件名> 命令中的<关键字段名>可以是多个字段,但要以+号连接成一个表达式形式,前提条件是类型必须相同,因此对于类型不同的字段,一定要事先进行转换(利用转换函数)。 用此命令建立起的索引文件,系统自动加了.idx后缀,且自动呈打开状态。 一个.dbf文件允许

27、建立多个索引文件,但每建一个新的则把前一个已打开的索引文件关闭,但若选择了ADDITIVE短语则可以所建立的多个索引文件同时存在,此时最后建立的一个为主索引,即由它来控制逻辑顺序。2)索引文件的打开 A)USE <库文件名> INDEX <索引文件名表> 此命令为在打开.dbf文件的同时一并打开.idx文件,当多个索引文件时,以,隔开,规定第一个为主索引。 B)SET INDEX TO <索引文件名表> 此命令为在先打开.dbf文件后,再补充打开一个或几个.idx文件。3)索引文件的关闭 SET INDEX TO 或CLOSE INDEX 或 USE 均可4

28、)指定主索引 SET ORDER TO <数值表达式>/<索引文件名> 此命令是改变默认而特别指定主索引。5)重建索引文件 REINDEX6.4 数据查询1.顺序查询 顺序查询是按记录的排列顺序在指定范围内逐个寻找满足条件的记录。查询效率较低。 LOCATE命令 CONTINUE命令 a)执行该命令即将指针定位在第一个满足条件的记录上,若要继续往下查找,要紧接给出CONTINUE命令。 b)注意辅助该命令的执行,FOUND()、EOF()两函数的配合使用。2.索引查询 这是在已建立了索引文件的基础上的查询,必须先打开相关的索引文件,并设好主索引。这种查询效率高。FIND

29、命令 a)此命令功能是查找索引关健字值与要查找的字符串或数值相等的记录。它仅限C型、N型,而不能是D型、L型。当要查找的是字符串时,可省略定界符。 b)SET EXACT OFF/ON 状态的设置关系到是否模糊查找。SEEK命令C) 此命令与FIND相似,不同点在于它可以查找包括N型、C型、D型、L型在内的各种类型数据,在查找C型的字符串常量时需加定界符,不加定界符视为变量名。 D)对于多关健字表达式的索引,要查找的也必须是同样顺序的表达式。再次提醒表达式的类型一定要一致。练习:1)在rsda.dbf中索引查找王林的记录。 use rsda inde on 姓名 to XM find 王林 s

30、eek “王林”6.5 数据库文件的其它操作对库文件中的N型字段的值进行计数、求和、求平均、汇总等操作。1.计数命令 COUNT命令例:分别统计出全班的男、女生人数。 use 学生.dbf count all for 性别=“男” to M count all for 性别=“女” to W ?M,W2.求和命令 SUM命令注意:命令中数值表达式可以是单字段、用“,”号隔开的多字段也可以是数值字段组合表达式。例:1)求rsda.dbf中所有人员的基本工资总和,并存入jbgz中。 2)求rsda.dbf中男教师的基本工资总额、津贴总额、奖金总额,扣款总额并分别存入M1、M2、M3、M4中。 3)

31、在rsda.dbf中对数值型字段的各种组合表达式分别进行求和计算,并分别存入jbjt、jbjtjj、jbjtjjkk中。 4)求rsda.dbf中所有教师的实发工资。1)sum all 基本工资 to jbgz2)sum all 基本工资,津贴,奖金,扣款 to M1、M2、M3、M4 for 性别=“男”3)sum all 基本工资+津贴 to jbjt sum all 基本工资+津贴+奖金 to jbjtjj sum all 基本工资+津贴+奖金-扣款 to jbjtjjkk4)REPLACE ALL 实发工资 WITH 基本工资+津贴+奖金-扣款 注意:REPLACE命令和SUM命令的区

32、别,前者是对横向求和,而后者是对数值型字段纵向求和。3.求平均值命令 AVERAGE命令该命令的其他方面均与SUM命令相同。练习:求所有教师工资中各项的平均数及所有女教师的实发工资平均数。aver 基本工资,津贴,奖金,扣款 to p1,p2,p3,p4aver all 基本工资+津贴+奖金-扣款 to p5 for 性别="女"4.分类汇总命令 TOTAL命令 该命令执行之前,必须先排序或索引,以做好按关键字分类的准备工作。练习:在rsda.dbf中,按职称统计基本工资。inde on 职称 to rs1listtotal on 职称 to rstotal field 基

33、本工资use rstotalList(得到的结果表应该有几条记录?)从结果可以看出,除了求和的数值型字段外,其余的字段都是各类里的第一条字段的值,它们已没有实际意义了。若没有给出FIELDS<字段名表>,则对所有的数值型字段求和。如: total on 职称 to rstota2因为没有FIELDS 字段名表,所以是对基本工资,津贴,奖金,扣款等所有数值型字段进行统计。5.库文件的复制 COPY命令注意:是将当前已打开的库文件复制。例1:将rsda.dbf生成一个备份文件。 USE a:rsda COPY TO a:r1 USE a:r1 LIST例2:只将rsda.dbf中的讲师

34、的姓名、职称和基本工资做一个备份文件。 copy to a:r2 fiel 姓名、职称、基本工资 for 职称=“讲师” 6.库文件结构的复制 COPY STRUCTURE命令例:复制rsda.dbf的姓名、职称、基本工资等部分字段为新文件r3的表结构。 copy structure to r3 fiel 姓名,职称,基本工资7.数据库文件与文本数据文件间的相互复制 1)数据库文件复制成文本数据文件注意:同样是COPY TO命令,但比较与5.库文件的复制 的不同: 后面增加了必写项SDF(标准格式)/DELIMITED(非标准格式),注意含义 当复制完后,可以用TYPE命令显示2)文本数据文件

35、中的数据复制成数据库文件 APPEND FROM命令3)任何类文件的复制 COPY FILE <源文件名> TO <目标文件名>注意:源文件必须未被打开;源、目标文件名必须带后缀。6.6 多重数据库文件的操作 1.工作区概念 用来存放文件的内存空间。因为文件被访问必须先从磁盘调入内存,称为“打开”。 此前仅讨论单工作区,即系统默认的第一号区。FOXPRO允许开辟至多225个区,即:至多同时打开225个库文件。 工作区的命名:数字编号(1225)/字母编号/工作区中的库文件名 虽可在多个工作区同时打开多个库文件,但当前工作区仅有一个,只有当前工作区中的库文件才能被操作。

36、一个工作区中只能打开一个库文件。 系统启动时自动选择1号区为当前区。 各工作区对各自的文件有各自的指针指示着当前记录,若在本区操作本库,不会移动它库的指针。2.选择工作区的命令 SELECT <工作区号> 选择该工作区放入库文件,此库文件即为可操作的当前文件,但它可以访问非当前区已打开的别的文件,可读、可引用,但必须使用前缀。注意:仅指当前指针所指的那条记录的字段值。3.库文件之间的关联 SET RELATION TO命令即建立一种关联,使在当前库操作时,别库的指针也能随之移动。4.库文件的连接 JOIN WITH命令横向连接成一个文件5.库文件的更新UPDATE ON <关

37、键字段> FROM <工作区号> REPLACE <字段名1> WITH <表达式1>需要强调的几点: 工作区的表示:在SELECT中可以用1、2、3但在其他语句中要用字母或别名(别名是在完整的打开语句中给出的) JOIN连接,一般都要给出FOR条件才有意义,否则会造成毫无意义的笛卡尔集。 两个库文件的SET RELATION关联,前提一定是被关联的子库要按关联字段先进行索引,然后再回到主工作区给出SET RELATION关联命令。同时可以和两个以上的库文件进行关联,但此时一定要加ADDITIVE选项。 两库关联的更新操作UPDATE语句,前提是主库、

38、子库都要先按关键字段索引。6.7 结构化查询语言SQL SQL(Structured Query Language)本是一种标准的关系数据库语言,因它的非过程化特点(忽略操作的具体过程描述,只表述要得到的结果),而被封为第四代语言。本语言的特长是查询,但也有数据库文件的定义及其他操纵语句。1.建立数据库文件 CREATE TABLE命令功能: 建立库文件,并定义表结构中每个字段的名称、类型、宽度和小数位。格式: CREATE TABLE | DBF <库文件名> (<字段名1> <字段类型> (<字段宽度> ,<小数位> ) ,<

39、;字段名2> ) | FROM ARRAY <数组名>例1:CREATE TABLE 学生档案 (学号 C(5),系别 C(8),姓名 C(8),家庭地址 C(30),简历 M,入学时间 D)例2: CREATE TABLE 学生 FROM ARRA X(5,4) 说明:注意格式,表名后面的小括号是必有的;在表名和小括号之间要有一个空格。 若从数组导入数据,则数组的列数必须是4,而行数取决于字段的多少。2、INSERT INTO 插入记录一、功能:在表的尾部添加一条记录或在当前记录后插入一条记录二、格式:INSERT INTO <库文件名> (<字段名1&g

40、t; , <字段名2> VALUES (<表达式1>, <表达式2>) 或 INSERT INTO <库文件名> FROM ARRAY<数组名> 例:INSERT INTO 学生.dbf (学号,姓名,性别,出生年月,分数)VALUES(“4444”, “ dddddddd”,“女”,ctod(“01/05/82”),88.5)3、DELEDE FROM 删除记录功能:删除满足条件的记录格式:DELETE FROM <库文件名> WHERE <条件>例:将年龄大于20 岁的女同学的记录删除。 Dele from

41、 KWJ where 年龄>20 .and.性别=“女”4、UPDATE 修改记录功能:根据给定的各表达式的值,修改满足条件记录的各字段值。例:将“王立”同学的年龄改为“19” upda KWJ set 年龄=19 where 姓名=“王立” (用Foxpro命令: use KWJ replace 年龄 with 19 for 姓名=“王立”)5、数据查询 SELECT命令功能:从一个或多个库文件中查找到符合条件的记录集称结果表。 1)最基本的查询语句格式只有SELECT子句和FROM子句例:j select * from AA &&查询AA表的所有,结果表是整个AAk

42、select 学号,姓名,籍贯 from AA &&只显示库文件中指定的几列 l select AVG(数学) as 数平均,MAX(英语) as 英最高,COUNT(*) as 记录数 from AA &&该例说明select后面不仅可以是字段名,还允许是规定内的函数(5个),但求出的结果必须放在新起的字段名中(AS后的字段名)。该句的查询结果为一条记录。m Select 订单.订单编号,订单.顾客编号,订单明细.商品编码,订单明细.单价 from 订单,订单明细&&该命令将从两个库文件中查找到所要的各字段,各字段名前要指明前缀.(此命令产生1

43、:多的所有组合).n Select 订单.订单编号,订单.顾客编号,订单明细.商品编码,订单明细.单价 from 订单,订单明细 into TABLE<表名>&&把查找的结果放到一个新表中,或to print或to screen均可。2)有条件的查询语句格式(要查找满足什么条件的记录)允许的条件有两类:1)连接条件_ 当FROM 后面不止一个库文件时, 要指定连接的条件. 如上例m:Select 订单. 订单编号, 订单. 顾客编号, 订单明细. 商品编码, 订单明细. 单价 from 订单, 订单明细 后面应加: where 订单. 订单编号= 订单明细. 订单编

44、号 结果是当两个库文件的订单编号一致时, 显示相应的各字段.2)过滤条件_ 相当于FOR 语句. 即查找满足条件的记录. 只是它允许的< 比较符> 更多: j 原来已掌握的6 种(> 、>= 、< 、<= 、<> 、=) 如: 姓名=“ 张三” 年龄=19 英语>90 等 k 数学 between 60.0 AND 80.0 l 订单. 订单编号 in (1000001,100102,100201) && 必匹配其中之一, 等价于三者的OR.关于以上查询格式的说明: 查询结果默认输出到BROWS窗口 本语句先从FROM短语中

45、确认所需数据库文件是否已打开,若未打开,SELECT语句会自动在未被选取的最低工作区打开它,但用完后不自动关闭。 对于多库的操作,注意前缀要用数据库名或数据库别名,而不接受A、B、C等字母(但可在FROM子句中临时定义别名,如P118例(4)3)查询后分组小计格式带GROUP BY短语用GROUP BY子句把SELECT命令的查询结果按指定字段名(即:按指定列)分成集合组。例1:按籍贯统计英语、计算机、数学各科的平均分:SELECT 籍贯,AVG(英语),AVG(计算机),AVG(数学) FROM 成绩 GROUP BY 籍贯例2:计算出各系学生的人数(结果表的记录个数取决于有几个系) SEL

46、E 系别,COUNT(*) as 人数 FROM kwj GROU BY 系别或:SELE 系别,COUNT(*) as 人数 FROM kwj GROU BY 1以上问题用Foxpro命令如何描述?(相当于FOXPRO中先索引,再TOTAL的功能)4)将查询结果排序带ORDER BY短语该子句的功能是对查询结果进行排序,而排序的依据可以是:一个或多个字段名或该字段在结果表中的列序号。例1:将学生库中的女生记录按分数的降序排列:SELECT 姓名,性别,分数 FROM 学生 ORDER BY 分数 WHERE 性别=女例2:按学历统计平均分,并按平均分从高到低排列。sele 学历,AVG(分数

47、) AS 平均分 FROM KWJ GROU BY 学历 ORDE BY 2练习:从学生和成绩两库中按计算机分数的从高到低列出姓名、性别、英语、计算机、数学成绩。第7章 FOXPRO 程序设计FOXPRO 允许两种工作方式:一是交互的运行方式(单命令方式和菜单方式都属于此类),另一种是程序方式(又称命令文件方式),即将若干条命令按照一定的逻辑结构存储在一个程序文件(扩展名为.PRG)中,可随时一并运行。7.1 FoxPro 程序文件的建立和运行命令文件的建立和修改命令: MODIFY COMMAND <程序文件命>/?说明: 无文件名为新建,待存盘时再输入文件名;有文件名为对已有的

48、文件进行修改;?将引出对话框供选择。 后缀默认为.PRG。 当在命令窗口输入此命令后,则在主窗口出现一新的空白窗口(称为文本编辑窗口)等待输入命令文件内容,输入完后以 Ctrl+W 键或Ctrl+Esc键存盘(以文本方式存储)。 可以用菜单方式完成同样操作:“文件”“新建”“程序”程序文件的执行 DO <程序文件名>程序文件的基本组成 输入数据处理数据输出数据 由基本的这三部分组成。7.2 基本输入/输出命令 输入命令:第一类:预先赋值(即把变量的值直接写在赋值语句中) 1) “=” 赋值:<变量名> = <表达式> 例:X=35 Name =“学生档案”

49、(一次只能给一个变量赋值,可接受表达式) 2) STORE 命令: STORE <表达式> TO <变量名1>, <变量名2>,······ 例: STORE 2.5 TO X1,X2,X3(可将同一值赋给多个变量,即一次可给多个变量赋值;可接受表达式)第二类:临时交互式输入 此类的共同点是只把赋值功能的语句写在程序中,而具体的值待执行这条语句时临时敲入。 1) INPUT 命令例: INPUT “X=” TO X (待程序运行到此句时,再从键盘敲入) X=100 &&输入的变量为N型 INPUT “姓名:” TO XM 姓名:王大力 &&输入的变量为C型 INPUT “输入内容为:” TO bds 输入内容为: 3*5 &&输入表达式,说 明该命令有计算功能2) ACCEPT 命令 该命令只接受 C 型数据,故不必用定界符括起例: ACCEPT “姓名:” TO XM 姓名: 王大力3) WAIT 命令 该命令起暂停作用,只要再输入一个字符(不必回车),系统便继续操作。 该命令的用途: 若要显示的内容太长一屏放不下时,可加WAIT命令使中间停顿,待看清之后按一个任意键即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论