




已阅读5页,还剩111页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库及其应用数据库及其应用 原原 理理 篇篇 第第1 1章章 数据库系统的基本概念数据库系统的基本概念 1.1 信息、数据和数据处理 计算机是处理数据的,而数据处理的基础首先 是数据的组织、存储,然后是查询检索、维 护、加工和利用。 掌握以下几个概念和术语: 信息现实世界在人们头脑中的反映,是 一个抽象概念,用以观察、认识和改造世界 。 数据用以载荷信息的符号。该符号是人 为规定的,在不同的领域有不同的符号表示 。计算机中以0、1两个符号的编码表示各种 信息。 信息与数据二者既有区别又有联系,数 据是信息的载体;信息是数据符号的内涵。 同一信息可以有不同的数据形式;同一数据 也可能有不同的解释。 数据处理即信息处理。将输入计算机中 的原始数据经过加工计算产生新的数据,这 新的数据代表了新的信息,用以指导工作和 辅助决策。 数据管理数据处理包括数据计算和数据 管理,前者用于较小范围的科学计算领域; 后者广泛用于各个领域,指数据的收集、整 理、组织、存储、查询、维护和传递等操作 。 1.2 数据库管理技术的发展 自由管理阶段文件管理阶段数据库阶段 (无专门数据管理 (文件管理 (数据库管 理 功能) 系统) 系统) 1.3 数据库系统的组成与结构 掌握以下几个概念和术语: 数据库db将数据按一定的数据结构组织起 来存储在磁盘等外部介质上,既能保证数据间 的必要联系,又能使冗余度达到最小。 数据库管理系统dbms数据库系统中用于 数据管理的软件。包括对数据库的定义、数据 的查询、数据的修改维护、数据库的运行等各 种操作。 一、数据库系统的组成 作为一个整体的数据库系统,其组成除了计算 机的软、硬件环境外,主要由数据库、数据库 管理系统、应用程序(用户使用数据库时的各种 程序)及专职的数据库管理员共同组成。 二、数据库系统体系结构 三级组织结构: 外模式模式(又称概念模式)内模式 其中: 内模式:又称存储模式,是具体描述数据如何 实现物理存储。是系统程序员的视图。 概念模式:又称模式,是对数据库整体的逻辑 描述,并不涉及物理实现。是数据库管理员面 对的视图。 外模式:面向用户的模式,即用户眼中的数据 库,故称“用户视图”。 三个模式之间的关系: 三个模式站在不同的角度看待数据库,形成了 用户观、总体观和存储观;总体观和存储观只 有一个,而用户观则根据用户的不同应用可能 有多个。 从数据存储来看,其中只有内模式才是真正存 储数据的,其它2个均为逻辑描述。 三个模式之间的映射: 在三个模式之间存在着两种映射:一是将用户 数据库与概念数据库联系起来的“外模式/模式” 间的映射;另一是将概念数据库与物理数据库 联系起来的“模式/内模式”间的映射。 三、数据库管理系统dbms 它是数据库系统的重要组成部分 dbms的功能 数据库定义功能 由ddl数据描述语言完成 模式间映射功能 数据库操纵功能 由dml数据操纵语言实现 提供程序设计语言功能 2种语言:宿主型和自 主型 数据库运行控制功能 数据库维护功能 第二章第二章 数据模型数据模型 2.1 什么是数据模型 数据模型既包括实体的集合又包括实体间联 系的集合。利用这种联系才能找到相关联的 一串数据。 2.2 实体联系模型 掌握有关术语:实体(三种)、属性(实体 所具有的性质)、实体型(实体集中各实体共 有的特征描述)、实体值(当各特征有了具体 内容 后,这些特征便确定了一个实体集中的个体 ,就叫一个具体的实体值)、实体集(同一类 型的实体集合)、值域(属性的取值范围)、 主关键字(用于区别实体集中不同个体的属 性)、外来关键字(某属性虽非该实体的主键 ,但却是另一实体的主键) 用er图方法分析实体间的联系 2.3 数据库类型 根据不同的数据模型结构而定义了不同的数据 库类型。主要有三种数据模型:层次模型、 网络模型和关系模型 2.3.1 层次模型 2.3.2 网络模型 2.3.3 关系模型用二维表的形式来表示实体 及其联系。 二维表(亦称关系)包括: 表头 (亦称关系框架、表结构、属性名) 表体(即表的具体内容,由一条条记录组成 ) 2.4 从er图导出关系模型 第第3 3章章 关系数据库理论基础关系数据库理论基础 3.1 关系的数学定义 域(domain)值的集合,即:可能取 值的范围。域中数据个数称为域的基数。 如 男、女(性别域,基数2) 已婚、未婚、离异、丧偶(婚姻 状况 域,基数4) 笛卡尔积(cartesian product)一组域 的所有各种组合,其中每一种组合状况称为 一个元组。 如:上例中 d1=性别域男、女 d2=婚姻 状况域已婚、未婚、离异、丧 偶 其笛卡尔积可表示为: d1*d2=男,已婚男,未婚男,离异 男,丧偶女,已婚女,未婚女,离 异女,丧偶 共有8个元组。 引例:给出三个域: d1=男人集合(man)=王兵,李平,张军 d2=女人集合(woman)=丁枚,吴芳 d3=儿童集合(child)=王一,李一,李 二 请写出他们组合的笛卡尔积。 关系 d1*d2* *dn的子集叫做在域d1, d2, dn上的关系(relation)。 关系是一个二维表,表的每行对应一个元 组,表的每列对应一个域,每列起一个名字 ,称为属性。 下面我们在上述的例子中取出笛卡尔积的一个 子集来构造一个关系: 这个关系的名字为家庭,域名为男人、女人、 儿童,表示为: 家庭(丈夫、妻子、孩子) 关系是笛卡尔积的子集,而只有取某一子集 才有一定实际意义。例如上例中,在18个元 素中,只有3个有实际意义,而其他元素作 为关系是无意义的。 请把以上有实际意义的关系列成一个二维表。 3.2 关系的性质 作为以二维表形式表示的关系,必须具备以下 性质: 属性名必须是不可再分的简单数据项 列是同质的 列的前后次序无关紧要 行的前后次序无关紧要 每行代表一个具体实体,称为表中的元组 。表中不能有完全相同的两行。 3.3 关系数据描述语言ddl 1) 有二种:问答式和语言描述式 2)关系模式的三类完整性规则 实体完整性 关系中的主键不允许为空 引用完整性 不同关系之间的联系是通过“外部关键字”实 现的,当一个关系通过外部键引用另一个关 系中的记录时,它必须能在被引用的关系中 找到这个记录,否则无法实现联系。 用户定义的完整性 指对关系模式中的各个数据的数据类型、长 度、取值范围等的约束,由用户通过dbms 提供的数据语言进行统一的控制。 3.4 关系数据操纵语言dml 关系数据语言建立在关系代数基础上,具有 以下特点: 以关系为单位进行数据操作,操作的结果也 是关系。 非过程性强,很多操作只需指出做什么,而 无须步步引导如何作。 以关系代数为基础,借助传统的集合运算和 专门的关系运算,使关系数据语言有很强的 数据操纵能力。 3.5 关系代数 因为数据库中的关系是一个集合,关系中的“ 元组”即是“集合中的元素”,所以关系代数 的关系运算用于数据库的操作。 一、集合运算 传统的集合运算: 并集:由2个关系r和s中的所有元素构成新的 关系。记为rs。 交集:由2个关系r和s中的所有共同元素构成 新的关系。记为rs 。 差集:由属于r而不属于s的所有元素组成的 新的关系 。记为r-s。 专门的关系运算 选择运算(selection):从关系中挑选出满足条 件的记录(行)生成新关系。即生成水平方 向的子集。 投影运算(projection):从关系中挑选出若干字 段(列)生成新关系。即生成垂直方向的子 集。 连接运算(join):连接2个关系所生成的新关系 。由不同的连接类型和连接条件组成不同的 结果。 二、相关术语: 域、笛卡尔积、选择、投影、连接、自然 连接。 3.6 关系规范化 一、关系中的函数依赖 1.函数依赖概念只要关系中的主键一旦取 值,其它非主属性值必随之确定,则称关系 中的非主属性函数依赖于主键。 2.完全函数依赖与部分函数依赖当主键由 2个以上的字段组合时,非主属性必须函数 依赖于组成主键的所有字段,才称为“完全 函数依赖”。否则,是“部分函数依赖”。 3.传递函数依赖属性之中存在间接依赖则 称“传递函数依赖”。 二、范式与规范化 1.范式(normal form 简称nf)满足一定条件的规 范模式。分为一级(1nf)、二级(2nf)、三级 (3nf) 其中: 1nf各属性项均为平滑的基本项。 2nf各非主属性项均完全函数依赖于主键。 3nf各非主属性项与主键均不存在传递函数依 赖。 2.关系规范化 规范化过程是一个不断分解关系的过程,以逐步达 到较高的范式要求。分解的要求; 分解必须是无损的,不能丢失原信息。 分解后的关系要相互独立,避免对一个关系的修 改而波及另一个。 应应 用用 篇篇 第五章 foxpro 综述 5.1 foxpro的特点、文件类型及主要技术指 标 掌握几个主要的文件类型及扩展名 了解几个主要的技术指标 5.2 foxpro 的安装、启动及其用户界面 掌握foxpro 的各种启动方法并熟悉其界面窗口 菜单的各项功能及菜单操作 命令窗口中的单命令操作方式 5.3 foxpro 中的数据类型、常量、变量、 运算符与表达式 1.数据类型 c型、n型、f型、l型、d型、m型、g型 2.常量 只有4种:字符型、数值型、日期型、逻辑型 3.变量 3种:字段变量、内存变量、数组变量 注意:其中同名的字段变量优先,但可以用m- 来强调内存变量。 4. 运算符 算术运算符、字符串运算符、关系运算符 、逻辑运算符。 其中字符串运算符补充 :$(包含运算符 ),其运算结果为逻辑值.t. 或 .f.。 例:“海淀区” $“北京市海淀区” 结果:.t. “海淀区” $ “北京海淀” 结果:.f. 5. 表达式 与四类运算符相对应有四类表达式: 算术表达式 a+b 字符串运算表达式 “中国 ”+ “北京”=“中国 北京” 或: “中国 ”- “北京”=“中国北京 ” 关系表达式 a “美国” 逻辑表达式 a b .and. c save to all like save to all except 3.恢复操作(restore from ) 4.清除操作(3种语句格式) 5.显示操作(2种:list和display命令) 6.输出操作(2种:?和?) 5.6 数组操作 1.定义数组(dimension语句) 2.给数组赋值(“=”和store语句) 5.7 函数 函数的一般形式: 函数名() 即: 函数名(,,) 说明:对于每一个函数要求了解: 该函数的格式 该函数的功能 该函数的数据类型,包括参数的类型和函数 返回值(即:函数结果)的类型 数值函数 字符串函数 日期和时间函数 类型转换函数 测试函数 补充: 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)?right( “ 李大华”,2 ) 9)?3+24 10) ?len( “4+23”) 11) ? type(“date( )”) 12) ? “bye” $ “good bye” 13) ? type(“123”) 14) ? left(“中国人民”,2)+right(“人民万岁”, 2) 15) ? val(“532xyz”)+36 16) ? val(“123”)+len(“abcd”) 2.求下列逻辑表达式的值 设x=0, y=1, x1=“bc”, y1=.f. 1)(x+y)*43.ornot.x1=“bc”.and.y1.or not.y1 2)xy.and.x 注意:是包含盘符、路径的文件全名 2.录入数据 1)立即录入(回答input data record now?) 2)用append语句追加(追加在最后) 3.显示记录 list|display fild for|while 4.打开库文件 use 5.关闭库文件 use|close databases 6.2 库文件的维护与修改 1. 库文件的显示 1)文件结构的显示 list structure 或 display structure 2)文件内容的显示(list/ display注意完 整格式的各可选项含义) 2. 库文件的修改 1)文件结构的修改(先打开库文件) modify structure 2)文件内容的修改(插入、删除和编辑) 3. 记录的指针定位fox系统提供了一个总 是指向当前记录的“指针”,此指针随着库文 件的操作而移动。 1)绝对移动 go top 将指针指向第一条记录 go bottom 将指针指向最后一条记录 go n 或 go 将指针指向指 定的记录 2)相对移动 skip n 或 skip “正”向下移 ,“负”向 上移;缺省默认为1。 3)三个有关的函数 bof() 测试文件的开始,函数的结果为逻辑 值.t.或.f. eof() 测试文件的结束,函数的结果为逻辑 值.t.或.f. recn() 测试文件的当前记录是哪一条,函数 的结果为数值n。 记录的插入 insert before blank 一定要先明确当前记录的定位,然后再进行 插入操作。 第一选项意为在当前记录之前插入,缺省默 认为后插入;第二选项意为插入一条空记录 ,该命令执行后并不产生等待输入的窗口。 5. 记录的删除 1)逻辑删除 delete for|while 注意各个可选项的有无及含义,缺省范围意 为只删当前一条。 此命令并未真正删除,仅在记录前做一删除 标志。 2)恢复逻辑删除 recall for|while 此命令的功能是去掉删除标记,恢复为正常记 录。 注意各个可选项的有无及含义,缺省范围 意为只恢复当前一条记录。 3)物理删除 pack 将带有删除标记的所有记录彻底 删 除,它们将不可能再恢复。 zap 直接删除已打开的库文件中的全部记 录,只剩库结构。 4)与逻辑删除有关的系统参数 set delete off | on 功能:设置在逻辑删除之后,系统是否认可的 规定(取on时认可删除;取off时不认可删 除)。 6 . 记录内容的修改 1)全屏幕编辑状态修改 edit|change fild for|while 注意命令中选择项的含义 体会执行该命令时的全屏幕编辑状态 注意备注型字段的修改操作(按 、或双击鼠标进入 备注字段编辑窗口,修改后按保存 ,并退出备注字段编辑窗口;若按esc键或 则放弃修改并退出。 ) 2)浏览编辑修改 browse命令 注意执行该命令后屏幕上显示的格式(与 list命令不同) 注意命令中各选择项的含义 3)成批替换修改 replace with for|while 例:将每个人的工资都提高50 元 replace all 工资 with 工资+50 练习: 将所有工龄在30年以上的女教授的工资提高10% 6.3 库文件的排序与索引 1.排序文件依据某个指定字段的值将记录顺序 重新排列,生成一个新库文件 sort to on /a/c/dfild for|while 例:将rsda.dbf按“工资”项的从高到低排列, 产生新的名为rsgz.dbf文件,只取姓名、职称、 工资三个字段。 将rsda.dbf先按“工资”项的从高到低,如 果相同再按姓名的升序排列。 2.索引文件依据某个指定字段的值生成索引表 ,再以索引表的顺序逻辑排列记录 注意索引文件与排序文件的区别 a)文件后缀不同(.dbf|.idx) b)形成后的物理文件和逻辑文件的不同 c)执行命令的系统开销不同 索引文件的类型单索引文件(.idx)和复合索 引文件(.cdx) 单索引文件只有命令操作方式,而无菜单操作。 复合索引文件又分为两种:结构复合索引和非结 构复合索引,前者:与主文件名同(仅后缀不同 ),且与主文件同步打开、维护;可用命令和菜 单2种方式操作;后者:需要单独取文件主名( 后缀仍为.cdx),用时需单独用命令打开,无 菜单操作方式。 复合索引文件其索引表中可容纳多个用 tag标识的索引项,打开一个复合索引文 件相当于打开了多个单一索引文件。 索引文件的有关操作 1)索引文件的建立 index on to 命令中的可以是多个字段 ,但要以+号连接成一个表达式形式, 前提条件是类型必须相同,因此对于类型 不同的字段,一定要事先进行转换(利用 转换函数)。 用此命令建立起的索引文件,系统自动 加了.idx后缀,且自动呈打开状态。 一个.dbf文件允许建立多个索引文件, 但每建一个新的则把前一个已打开的索引 文件关闭,但若选择了additive短语则可 以所建立的多个索引文件同时存在,此时 最后建立的一个为主索引,即由它来 控制逻辑顺序。 2)索引文件的打开 a)use index 此命令为在打开.dbf文件的同时一并打开 .idx文件,当多个索引文件时,以, 隔开,规定第一个为主索引。 b)set index to 此命令为在先打开.dbf文件后,再补充打开 一个或几个.idx文件。 3)索引文件的关闭 set index to 或close index 或 use 均可 4)指定主索引 set order to / 此命令是改变默认而特别指定主索引 。 5)重建索引文件 reindex 6.4 数据查询 1.顺序查询 顺序查询是按记录的排列顺序在指定范围 内逐个寻找满足条件的记录。查询效率较低。 locate命令 continue命令 a)执行该命令即将指针定位在第一个满足条 件的记录上,若要继续往下查找,要紧接给出 continue命令。 b)注意辅助该命令的执行,found()、eof ()两函数的配合使用。 2.索引查询 这是在已建立了索引文件的基础上的查 询,必须先打开相关的索引文件,并设好 主索引。这种查询效率高。 find命令 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 王林 seek “王林” 6.5 数据库文件的其它操作 对库文件中的n型字段的值进行计数、求和、 求平均、汇总等操作。 1.计数命令 count命令 例:分别统计出全班的男、女生人数。 use 学生.dbf count all for 性别=“男” to m count all for 性别=“女” to w ?m,w 2.求和命令 sum命令 注意:命令中数值表达式可以是单字段、 用“,”号隔开的多字段也可以是数值字 段组合表达式。 例:1)求rsda.dbf中所有人员的基本工资总 和,并存入jbgz中。 2)求rsda.dbf中男教师的基本工资总额 、津贴总额、奖金总额,扣款总额并分别 存入m1、m2、m3、m4中。 3)在rsda.dbf中对数值型字段的各种组 合表达式分别进行求和计算,并分别存入 jbjt、jbjtjj、jbjtjjkk中。 4)求rsda.dbf中所有教师的实发工资。 1)sum all 基本工资 to jbgz 2)sum all 基本工资,津贴,奖金,扣款 to m1 、m2、m3、m4 for 性别=“男” 3)sum all 基本工资+津贴 to jbjt sum all 基本工资+津贴+奖金 to jbjtjj sum all 基本工资+津贴+奖金-扣款 to jbjtjjkk 4)replace all 实发工资 with 基本工资+津 贴+奖金-扣款 注意:replace命令和sum命令的区别,前者是 对横向求和,而后者是对数值型字段纵向求 和。 3.求平均值命令 average命令 该命令的其他方面均与sum命令相同。 练习:求所有教师工资中各项的平均数及所有女 教师的实发工资平均数。 aver 基本工资,津贴,奖金,扣款 to p1,p2,p3,p4 aver all 基本工资+津贴+奖金-扣款 to p5 for 性别=“女“ 4.分类汇总命令 total命令 该命令执行之前,必须先排序或索引,以做好 按关键字分类的准备工作。 练习:在rsda.dbf中,按职称统计基本工资。 inde on 职称 to rs1 list total on 职称 to rstotal field 基本工资 use rstotal list (得到的结果表应该有几条记录?) 从结果可以看出,除了求和的数值型字段外 ,其余的字段都是各类里的第一条字段的 值,它们已没有实际意义了。 若没有给出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中的讲师的姓名、职称和 基本工资做一个备份文件。 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)文本数据文件中的数据复制成数据库文件 append from命令 3)任何类文件的复制 copy file to 注意:源文件必须未被打开;源、目标文件名 必须带后缀。 6.6 多重数据库文件的操作 1.工作区概念 用来存放文件的内存空间。因为文件被访 问必须先从磁盘调入内存,称为“打开” 。 此前仅讨论单工作区,即系统默认的第一 号区。foxpro允许开辟至多225个区,即 :至多同时打开225个库文件。 工作区的命名: 数字编号(1225)/字母编号/工作区中的 库文件名 虽可在多个工作区同时打开多个库文件, 但当前工作区仅有一个,只有当前工作区 中的库文件才能被操作。 一个工作区中只能打开一个库文件。 系统启动时自动选择1号区为当前区。 各工作区对各自的文件有各自的指针指示 着当前记录,若在本区操作本库,不会移 动它库的指针。 2.选择工作区的命令 select 选择该工作区放入库文件,此库文 件即为可操作的当前文件,但它可 以访问非当前区已打开的别的文件 ,可读、可引用,但必须使用前缀 。 注意:仅指当前指针所指的那条记录 的字段值。 3.库文件之间的关联 set relation to命令 即建立一种关联,使在当前库操作时 ,别库的指针也能随之移动。 4.库文件的连接 join with命令 横向连接成一个文件 5.库文件的更新 update on from replace with 需要强调的几点: 工作区的表示:在select中可以用1、2、3 但在其他语句中要用字母或别名(别名是在完整 的打开语句中给出的) join连接,一般都要给出for条件才有意义,否 则会造成毫无意义的笛卡尔集。 两个库文件的set relation关联,前提一定是 被关联的子库要按关联字段先进行索引,然后再 回到主工作区给出set relation关联命令。同 时可以和两个以上的库文件进行关联,但此时一 定要加additive选项。 两库关联的更新操作update语句,前提是主库 、子库都要先按关键字段索引。 6.7 结构化查询语言sql sql(structured query language)本是一种 标准的关系数据库语言,因它的非过程化特 点(忽略操作的具体过程描述,只表述要得 到的结果),而被封为第四代语言。本语言 的特长是查询,但也有数据库文件的定 义及其他操纵语句。 1.建立数据库文件 create table命令 功能: 建立库文件,并定义表结构中每个字段的名 称、类型、宽度和小数位。 格式: create table | dbf ( ( , ) , ) | 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 ( , values (, ) 或 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 kwj where 年龄20 .and.性别=“女” 4、update 修改记录 功能:根据给定的各表达式的值,修改满足条件 记录的各字段值。 例:将“王立”同学的年龄改为“19” upda kwj set 年龄=19 where 姓名=“王立” (用foxpro命令: use kwj replace 年龄 with 19 for 姓名=“王立”) 5、数据查询 select命令 功能:从一个或多个库文件中查找到符合 条件的记录集称结果表。 1)最基本的查询语句格式只有select子句 和from子句 例: select * from aa &查询aa表的所有,结果 表是整个aa select 学号,姓名,籍贯 from aa &只显示 库文件中指定的几列 select avg(数学) as 数平均,max(英语) as 英 最高,count(*) as 记录数 from aa &该例说明select后面不仅可以是字段名,还 允许是规定内的函数(5个),但求出的结果必须 放在新起的字段名中(as后的字段名)。该句的 查询结果为一条记录。 select 订单.订单编号,订单.顾客编号,订单明细.商 品编码,订单明细.单价 from 订单,订单明细 &该命令将从两个库文件中查找到所要的各字段, 各字段名前要指明前缀.(此命令产生1:多的所有组 合). n select 订单.订单编号,订单.顾客编号,订单明细.商 品编码,订单明细.单价 from 订单,订单明细 into table &把查找的结果放到一个新表中,或to print或to screen均可。 2)有条件的查询语句格式(要查找满足什么条件的记 录) 允许的条件有两类: 1)连接条件_当from后面不止一个库文 件时,要指定连接的条件. 如上例: select 订单.订单编号,订单.顾客编号,订单明 细.商品编码,订单明细.单价 from 订单,订 单明细 后面应加: where 订单.订单编号=订单明细.订单编 号 结果是当两个库文件的订单编号一致时,显示 相应的各字段. 2)过滤条件_相当于for语句. 即查找满足 条件的记录.只是它允许的更多: 原来已掌握的6种(、=、 =)如: 姓名=“张三” 年龄=19 英语90 等 数学 between 60.0 and 80.0 订单.订单编号 in (1000001,100102,100201) &必匹配其中之一,等价于三者的or. 关于以上查询格式的说明: 查询结果默认输出到brows窗口 本语句先从from短语中确认所需数据库文 件是否已打开,若未打开,select语句会 自动在未被选取的最低工作区打开它,但 用完后不自动关闭。 对于多库的操作,注意前缀要用数据库名 或数据库别名,而不接受a、b、c等字母 (但可在from子句中临时定义别名,如 p118例(4) 3)查询后分组小计格式带group by短语 用group by子句把select命令的查询结果按 指定字段名(即:按指定列)分成集合组。 例1:按籍贯统计英语、计算机、数学各科的 平均分: select 籍贯,avg(英语),avg(计算机),avg( 数学) from 成绩 group by 籍贯 例2:计算出各系学生的人数(结果表的记录 个数取决于有几个系) sele 系别,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(分数) as 平均分 from kwj grou by 学历 orde by 2 练习:从学生和成绩两库中按计算 机分数的从高到低列出姓名、性别、英语 、计算机、数学成绩。 第7章 foxpro 程序设计 foxpro 允许两种工作方式:一是交互的运 行方式(单命令方式和菜单方式都属于此类 ),另一种是程序方式(又称命令文件方式 ),即将若干条命令按照一定的逻辑结构存 储在一个程序文件(扩展名为.prg)中,可 随时一并运行。 7.1 foxpro 程序文件的建立和运行 7.1.1 命令文件的建立和修改 命令: modify command /? 说明: 无文件名为新建,待存盘时再输入文件名 ;有文件名为对已有的文件进行修改;? 将引出对话框供选择。 后缀默认为.prg。 当在命令窗口输入此命令后,则在主窗口 出现一新的空白窗口(称为文本编辑窗口 )等待输入命令文件内容,输入完后以 ctrl+w 键或ctrl+esc键存盘(以文本方式存 储)。 可以用菜单方式完成同样操作:“文件”“ 新建”“程序” 7.1.2 程序文件的执行 do 7.1.3 程序文件的基本组成 输入数据处理数据输出数据 由基本的这三部分组成。 7.2 基本输入/输出命令 输入命令: 第一类:预先赋值(即把变量的值直接写在赋 值语句中) 1) “=” 赋值: = 例:x=35 name =“学生档案” (一次只能给一 个变量赋值,可接受表达式) 2) store 命令: store to , , 例: 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命令使中间停顿,待看清之后按 一个任意键即可继续执行。 在界面设计时,等待用户回答y/n时 ,安排此语句。 例: wait wait “press any key to continue !” wait “继续执行吗?” window 第三类 :屏幕格式输入 命令格式: , say “提示字符串” get read 功能:当执行到read 语句时,屏幕光标首 先定位在第一个命令指示的位置(行, 列)上,等待用户对get后的变量值进行 重新输入并以回车结束; 若仅键入回车, 则变量值不变。 说明: get后的变量必须是已赋值过,因 此也可以说此命令是由三个语句(赋值语 句、定位显示语句、read语句)共同组成 多个get 语句可以共用一个read 命令 此命令可用于设计表格的填写 例:a=“李立“ b=“男“ 5,10 say “姓名:” get a 5,20 say “性别:” get b read 7.2.2 输出命令 一般输出 命令格式:? 或 ? 功能:计算和显示输出 例: ? “李立的年龄:“,22,“当前日期:“,date() x = 100 ? “x=”+str(x,3), “x的表达 :”+str(3*sqrt(x),2) 说明: 输出表达式之间用逗号分隔时,是 按区输出(每行五区); 若输出字符串之间 用加号连接,则按紧凑格式输出,此时注 意前后数据类型必须一致。 ? 和 ? 的区别就在于前者为换行输 出,后者为在当前光标处输出。 可输出常量、变量、函数、表达式 等。 注意选项picture 和 function的 使用。 2) 格式输出 命令格式: , say 功能:在指定位置输出 例: 10,20 say “我爱中华!“ use a:数据库商品库.dbf go 4 11,20 say “商品名称:”+商品名称 7.3 程序的基本结构及程序设计 程序的基本结构顺序结构、分支结构、 循环结构 7.3.1 顺序结构 例1:求某学生三门课程的总分及平均分 (注意每一个程序都要包括输入、计算处理、输出 三部分,具体采用哪一种语句方式,视具体情况 而定。) clear sx=88 jsj=92 yy=80 zf=sx+jsj+yy ?“总成绩:“,zf,“平均成绩:“,zf/3 7.3.2 分支结构 1) if结构 简单if结构 命令结构格式: if endif 选择if结构 命令结构格式: if else endif 例2: 当ab时, x=a+b 当ab x=a+b if ab x=a+b y=a x=a+b y=a if a case case : : case otherwise endcase 多层if 嵌套 上机练习: 求某学生三门课程的总分及平均分(要求 三门课程的成绩用交互方式临时输入)。 程序文件名为cj.prg 当ab时, x=a+b 当a= to next/endf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- TD/T 1031.5-2011土地复垦方案编制规程第5部分:石油天然气(含煤层气)项目
- JJF(纺织)108-2023口罩防护效果测试仪校准规范
- JJF(纺织)055-2023标准光源箱校准规范
- JJF(烟草)5.4-2014卷烟主流烟气中相关成分测量不确定度评定指南第4部分:巴豆醛
- 表面活性剂的特性和HLB值的计算11课件
- 考研复习-风景园林基础考研试题带答案详解(a卷)
- 风景园林基础考研资料试题及答案详解【考点梳理】
- 《风景园林招投标与概预算》试题A附参考答案详解【综合题】
- 2025-2026年高校教师资格证之《高等教育法规》通关题库附参考答案详解(典型题)
- 2025年济南四建集团有限责任公司招聘笔试备考题库有答案详解
- 心肺复苏操作2025版
- 国家开放大学《Web开发基础》形考任务实验1-5参考答案
- 2024年山东省高考物理试卷(真题+答案)
- 汉语词汇与文化智慧树知到期末考试答案章节答案2024年浙江师范大学
- 根轨迹法(自动控制原理)PPT课件
- 工程力学作图题计算题(共63页)
- 全国节能监察机构能力建设仪器装备配置指南
- 工程实体样板实施方案
- 气温曲线和降水柱状图编辑器(可编辑L)
- 第七章 汽车国际贸易运输与保险
- 职业病危害告知卡(天然气)600×800mm
评论
0/150
提交评论