全国计算机等级考试二级教程.ppt

上传人:土8路 文档编号:11790002 上传时间:2021-09-11 格式:PPT 页数:367 大小:1.19MB
返回 下载 相关 举报
全国计算机等级考试二级教程.ppt_第1页
第1页 / 共367页
全国计算机等级考试二级教程.ppt_第2页
第2页 / 共367页
全国计算机等级考试二级教程.ppt_第3页
第3页 / 共367页
全国计算机等级考试二级教程.ppt_第4页
第4页 / 共367页
全国计算机等级考试二级教程.ppt_第5页
第5页 / 共367页
点击查看更多>>
资源描述

《全国计算机等级考试二级教程.ppt》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级教程.ppt(367页珍藏版)》请在三一文库上搜索。

1、1,全国计算机等级考试二级教程 Visual FoxPro程序设计,主讲:鲍峰,2,历年考试分数分析,笔试100分,其中计算机基础知识占20-30分,VFP占70-80分 笔试考试时间:90分钟 上机占100分:90分钟,3,目录,第一部分 Visual FoxPro程序设计 第一章 带你入门 第二章 数据库基本知识 第三章 数据类型与数据元素 第四章 数据库及其操作 第五章 关系数据库标准语言SQL 第六章 查询与视图 第七章 程序设计基础 第八章 表单的设计与应用 第九章 菜单的设计与应用 第十章 报表的设计与应用 第十一章 开发应用程序,4,任何新生事物都不是一步到位,大多经历由低级到高

2、级的发展过程。数据处理也是如此。 一、数据处理的发展阶段: 1.人工处理阶段:20世纪50年代中期以前,数据管理的任务完全由程序设计人员自负其责。 2.文件处理阶段:20世纪50年代后期至60年代中后期,计算机开始大量用于管理中的数据处理工作。操作系统中的文件系统是专门管理外存储器的数据。 3.数据库处理阶段:20世纪60年代后期,数据库技术出现。,第二章数据库基本知识,5,(1)分布式数据库: (2)面向对象数据库: 二、数据库相关概念: 1.数据:存储在媒体上能够识别的物理符号。 2.数据库:DataBase(DB),存储在计算机存储设计备上,结构化的相关数据的集合。 3.数据库管理系统:

3、DataBase Management System(DBMS)为数据库的建立、使用和维护而配置的软件称为数据库管理系统。(属于系统软件) 4.数据库系统:DataBase System(DBS)引进数据库技术后的计算机系统。包括:硬件系统、数据库集合、数据库管理系统、数据库管理员和用户。,6,4.数据库应用系统:采用数据库系统资源开发出发出来的,面向某类实际应用的应用软件系统。 注意: 数据库系统中核心 数据库系统的组成 数据库、数据库管理系统、数据库系统之间的关系。,7,数据库系统的特点: 三、数据模型: 1.相关概念: (1)实体:客观存在并且可以相互区别的事物。 (2)属性:描述实体的

4、特征。 (3)实体型:属性的集合。 姓名 性别 年龄 零件号 零件名 单价 数量 (4)实体集:同类型实体的集合。 (5)实体间的联系:两个实体集中实体间的对应关系。 (6)实体间联系的种类:,8,一对一 一对多 多对多,9,2.数据模型:数据的组织方案。 3.数据模型的分类: (1)层次模型: (2)网状模型: (3)关系模型: 数据模型是数据的组织方案,由于数据的规划、组织形式各不同,数据库也不同,数据库管理系统也不同,目前成型的有三类:层次型数据库管理系统,网状型数据库管理系统和关系型的数据库管理系统。,10,四、关系型的数据库管理系统: 1.关系术语: (1)关系:一个关系就是一个二维

5、表,每个关系有关系名。VFP中,一个关系存储为一个表文件。文件扩展名为.dbf (2)关系模式:关系的结构。 (3)元组:关系中水平方向的行。 (4)属性:关系中垂直方向的列,每列有一个属性名。 (5)域:属性的取值范围,不同元组对同一属性的取值所限定的范围。,11,(5)关键字:属性或属性的组合,其值能够惟一标识一个元组。 2.关系的特点: (1)关系必须规范化。最基本的要求是每个属性必须是不可分割的。 (2)在同一个关系中不能出现相同的属性名。 (3)在同一个关系中不允许出现完全相同的元组。 (4)在一个关系中元组的次序无关紧要。 (5)在一个关系中属性的次序无关紧要。,12,数据的处理在

6、关系数据库管理系统中称为关系运算。 3.关系运算 (1)传统的集合运算: a)要求:两个关系模式相同的集合 b)运算类型: 并: 交: 差: c)运算结果:关系,13,(2)专门的关系运算 a)选择:从关系中找出满足条件的元组。(行方向) b)投影:从关系中指定若干个属性组成新的关系。 c)联接:将多个关系中的数据组合成新的关系。 等值联接 自然联接:去掉重复属性的等值联接.,14,Visula FoxPro是关系型数据库管理系统,数据库管理系统是一种编程工具,专门用于设计数据处理量比较集中的软件。数据库是数据的集合,在Visual FoxPro中二维表是数据库中基本的数据组织形式: 教材P9

7、职工表,通过观察发现,表中数据各不相同,说明数据类型不同,采用的处理方式不同,数据类型是数据的基本性质。在研究数据库的基本操作前要先研究数据的基本性质,同一性质的数据可以不同的形态出现,比如:10可直接用10,或2+8,或15-5等,这称为数据元素。,15,(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是 A)一对一 B)一对多 C)多对一 D)多对多 (9)在数据管理技术发展的三个阶段中,数据共享最好的是 A)人工管理阶段 B)文件系统阶段 C)数据库系统阶段 D)三个阶段相同,16,第三章数据类型与数据元素,第一节 数据类型 第二节 表达式与函数,17,第一节 数据类型,一、VFP

8、数据类型概述: 1.数据类型: (1)数值型(Numeric):进行计算 工资,成绩,价格 (2)字符型(Character):不具有计算能力,内容可以使用汉字、英文字母、数字及其它字符,字符个数不能超过254。 姓名,职称,性别,职工号,电话,邮政编码 (3)日期型(Date):表示日期,包括年,月,日 出生日期,工作日期,生产日期,18,(4)日期时间型(DateTime):表示日期及时间,包括年、月、日、小时、分钟、秒 (5)货币型(Currency):表示美元金额。 (6)逻辑型(Logic):描述客观事物大小异同判断的结果。如:是否团员,婚否 (7)备注型(Memo):是字符型数据的

9、特殊形式,能表示、存放较多字符。如个人简历,产品说明。 (8)通用型(General):表示图形、图象等 (9)二进制字符和二进制备注型:,19,2.数据元素:常量、变量、表达式和函数,其中常量与变量是最基本的表现形式。 二、常量与变量: 1.常量: 概念:值不发生变化,从字面形式可以看到值。 如:10 2.变量: (1)概念:其值发生变化的量。,12,8.7,a,变量名,变量值,20,(2)类型:内存变量和字段变量 3.标识符: (1)概念:用来标识变量、文件、函数及数组等具有一些专门含义的名字。 (2)规则: a)可以使用汉字,字母,数字,下划线 b)必须以字母、汉字或下划线开头 c)名字

10、中的字母大小写等价 d)内存变量名建议不用汉字 e)见名知义,21,3.分类: (1)关键字:VFP规定了一些标识符,代表固定的含义,不能另作它用。 (2)自定义:用户根据需要定义 三、数值型数据 1.常量:常数 (1)表示形式:由09、小数点、正负号及字母E组成。 (2)注意: a)数据位数不超过20位。,22,b)数据很大或很小可以使用科学计数法形式书写。 如:5.887 1012 记为:5.887E12 c)取值范围:-0.9999999999E+190.9999999999E+20 2.变量 (1)类型: 数值型-实数 整 型-整数(Integer) 浮点型-计算精确度较高(Float

11、) 双精度-计算精度比浮点型更高(Double),23,2.变量的赋值: (1)操作命令: a)变量名=表达式 b)store to (2)说明: a)=一次只能给一个内存变量赋值,store可以同时给若干个内存变量赋予相同的值。 b)通过对内存变量重新赋值来改变其值和类型。 c)?在窗口的下一行显示表达式的值 ?在窗口同一行显示表达式的值,24,四、货币型数据 1.常量: (1)表示形式:在数据型常量前加符号$ (2)注意: a)在存储和计算时,只取四位小数,多于4位时自动四舍五入 b)没有科学计数法形式 c)取值范围:-922337203685477.5807 92233720368547

12、7.5807 2.变量:t=$158.756389或store $158.756389 to t,25,五、字符型数据 1.常量:称字符串 (1)表示形式:英文半角单引号、双引号或方括号把字符串括起来。 (2)说明: a)英文半角单引号、双引号或方括号称定界符 b)定界符成对使用 c)某种定界符本身是字符串内容,用另一种定界符 d)空串:不含任何内容的字符串 空格字符串:字符串内容是空格,26,(2)变量:s1=“good“ s2=250010“ s3=数据 六、日期型数据 1.常量: (1)表示形式 a)传统格式:默认为美国日期格式月月/日日/年年,月和日各为2位数字,不足2位前面补0,年可

13、以2位也可以4位。这种格式受到系统设置的影响,不同设置下同一个日期可作出不同解释。如10/08/01,27,b)严格格式:年年年年-月月-日日 (2)影响日期显示格式的命令: a)设置日期分隔符 格式:SET MARK TO 日期分隔符 功能:设置分隔符,省略日期隔符,表示恢复系统默认的斜杠分隔符。 b)设置日期显示格式 格式:SET DATE TO AMERICAN|ANSI|BRITISH|FRENCH|GERMAN|ITALIAN|JAPAN|USA|MDY|DMY|YMD 功能:设置日期的显示格式。各短语的含义参考P50,28,c)设置年份的位数 格式:SET CENTURY ON|O

14、FF 说明:ON-年份采用4位数字 OFF-年份采用2位数字 d)设置是否对日期格式进行检查 格式:SET STRICTDATE TO 0|1|2 说明:0-不进行严格格式检查 1-进行严格格式检查(默认设置) 2-进行严格格式检查,对CTOD( )和 CTOT( )有效,29,七、日期时间型数据 1.常量: (1)格式:, (2)说明:部分与日期型数据格式相同,时间部分的格式为hh:mm:ssa|p 2.变量:s=2006-07-15 08:22:35 P 八、逻辑型数据 1.常量: 表示形式: .T.,.t.,.Y.,.y. .F.,.f.,.N.,.n.,30,2.变量:a=.T. 练习

15、:判断下面哪个数据形式是常量 2006/07/10 55 T TOP 九、数组: 1.数组:内存中连续的存储区域,一组内存变量的集合。 2.定义数组: (1)格式: DIMENSION|DECLARE (,) (2)说明:,31,a)定义时指定数组名,数组大小(连续存储单元的个数)。 b)指定一维或是二维数组 c)系统自动给数组中各元素赋初值逻辑假,每个数组元素相当于一个简单变量 (3)使用: 例如:dimension s(5) s(1)=15 s(2)=$30.5 s(3)=2006-07-15 ?s(1),s(2),s(3),32,(4)注意(P53) a)在一切使用简单变量的地方,均可使

16、用数组元素。 b)在赋值语句中使用数组名,表示将同一个值同时赋给该数组的全部数组元素。 c)在同一个运行环境下,数组名与不能与简单变量重名。 d)在赋值语句表达式位置不能出现数组名。 e)可以用一维数组的形式访问二维数组。,33,十、内存变量常用命令: 1.内存变量的显示: 格式:LIST|DISPLAY MEMORY LIKE TO PRINTER|TO FILE 功能:显示内存变量的当前信息,包括变量名、作用域、类型、取值。 说明: (1)DISPLAY分屏显示与通配符匹配的所有内存变量,LIST一次显示与通配符匹配的所有内存变量,一屏显示不下,自动向上滚动。,34,(2)选用LIKE可显

17、示与通配符相匹配的内存变量,通配符包括*和?,*代表任意多个字符,?代表任意一个字符。 (3)选用TO PRINTER可将显示的内存信息通过打印机打印 (4)选用TO FILE 将显示的内存信息存入指定的文本文件中(扩展名.txt) 2.内存变量的清除: (1)格式 CLEAR MEMORY,35,RELEASE RELEASE ALL EXTENDED RELEASE ALL LIKE|EXCEPT (2)说明 a)格式1清除所有内存变量 b)格式2清除指定的内存变量 c)格式3中EXTENDED意义暂时不予考虑,作用同格式1 d)格式4选用LIKE清除与通配符匹配的内存变量,EXCEPT清

18、除与通配符不匹配的内存变量。,36,第二节表达式与函数,一、表达式 1.概念:由常量、变量、和函数通过特定的运算符连接起来的式子。 2.形式: (1)单一的运算对象。如:一个常量、变量或函数 (2)由运算符连接起来形成的式子。 3.分类:无论简单的还是复杂的表达式,按照规定的运算规则最终均能计算出一个结果,即表达式的值。根据表达式值或运算对象的类型,表达式可以为数值表达式、字符表达式、日期时间表达式和逻辑表达式。,37,二、数值表达式: 1.概念:由算术运算符将数值型数据连接起来形成的式子。 2.算术运算符:,38,算术运算符,39,练习:P56例2.5,2.6 三、字符表达式: 1.概念:由

19、字符串运算符将字符型数据连接形成的式子。 2.运算符: (1)+:前后两个字符串首尾连接形成新的字符串 (2)-:前后两个字符串首尾连接,如果前一字符串尾部含有空格,将其移动到合并生成新字符串的尾部。 3.练习:P63例3.10,40,四、日期时间表达式,41,五、关系表达式 1.概念:也称简单逻辑表达式,由关系运算符将两个运算对象连接形成。关系运算符的作用是比较两个运算对象的大小或前后,运算结果是逻辑型数据。 2.关系运算符:,42,关系运算符,43,此外,$也是关系运算符。 说明:关系运算符=和$只适用于字符型数据,其它的运算符要求运算符前后两个运算对象数据类型相同。 (3)运算规则: a

20、)数据型和货币型数据:按数值的大小比较 b)日期或日期时间型数据:越早的日期或日期时间越小,越晚的日期或日期时间大 c)逻辑型数据:真大于假 d)字符型数据:系统对两个字符数据的字符自左向右逐个进行比较,一旦发现两个对应字符不,44,同,就根据这两个字符的大小决定两个字符型数据的大小。字符的比较规则: Machin(机器):按照机内码顺序排序,在微机中,西文字符按ASCII排列,即:空格数字09大写字母ABCDZ小写字母abcdz汉字:常用一级汉字按拼音顺序比较大小。 PinYin(拼音):对西文字符 空格数字09小写字母abcdz大写字母ABCDZ Stroke(笔画):中西文字符全部按书写

21、笔画排列大小,45,比较方式的设置: 菜单:单击“工具,选项”单击“数据”选项卡 命令:SET COLLATE TO 排序次序名 排序次序名可以是 Machine、PinYin或 Stroke。,46,47,(4)注意: a)子串测试$:$ 如果字符表达式1是字符表达式2的子串,结果为逻辑真,否则为逻辑假。 b)等于=:字符型数据进行=运算时,运算结果与命令set exact on|off设置有关 Off(默认):只要=右边的字符数据与左边的前一部分内容相同,结果为真。 on:比较两个字符型数据时,如果字符个数不同,先在较短的尾部加上若干个空格使用两字符型数据字符数相同,然后再进行比较。,48

22、,六、逻辑表达式 1.概念:由逻辑运算符将逻辑型数据连接形成的式子。 2.运算符:NOT(!)、AND、OR 3.运算优先级:NOT、AND、OR 4.运算规则:,49,逻辑运算表,50,七、复合表达式: 1.概念:含有不同类型运算符的表达式。 2.运算优先级:括号算术运算符字符运算符日期时间运算符关系运算符逻辑运算符 练习:P60例2.11 八、函数: 1.概念:具有数据运算或转换功能的数据表现形式。 2.使用:函数名(参数列表) 3.常用函数:数值函数、字符处理函数、日期类函数、数据类型转换函数、测试函数。,51,select max(degree),min(degree),avg(deg

23、ree) from ls into array cj Thisform.Text2.Value=cj(1) Thisform.Text3.Value=cj(2) Thisform.Text4.Value=cj(3) use (4)Command2的Click事件代码如下: Thisform.Release (5)Form1的Unload事件代码如下: close all,52,3.3.1 数值函数 1、绝对值和符号函数: 格式:ABS() SIGN() 2、平方根函数: 格式:SQRT() 3、圆周率函数: 格式: PI( ) 4、 求整函数: 格式: INT() CEILING() FLOO

24、R(),53,5、四舍五入函数: 格式:ROUND(,) 6、 求余函数: 格式:MOD(,) 7、 最大值、最小值函数: 格式:MAX(,) MIN(,) 3.3.2 字符函数 1、 求字符串长度函数: 格式: LEN() 注:一个汉字占两个字节。 2、,54,1、1、大小写转换函数: 格式:LOWER() UPPER() 2、空格字符串生成函数: 格式:SPACE() 3、删除前后空格函数: 格式:TRIM() LTRIM() ALLTRIM() 4、取子串函数: 格式:LEFT(,) RIGHT(,) SUBSTR(,),55,1、 计算子串出现次数函数: 格式: OCCURS(,) 功

25、能:返回字符串1在字符串2中出现的次数。 2、 求子串位置函数: 格式:AT(,) ATC(,) 功能:a) 若串1为串2子串,返回串1的首字符在串2中的位置;非子串返0。 b) ATC()不区分字母大小写。 c) ,在串2中搜索串1第几次出现;默认值为1。 3、,56,1、 子串替换函数: 格式: STUFF(,) 功能:串2替换串1中由和指定的子串。 注意事项:若为0,相当串2插入串1中指定位置;若串2为空串,相当删除串1中指定子串。 2、 字符替换函数: 格式: CHRTRAN(,) 功能:若串1与串2中的某些字符相同,则将串1中的这些字符用串3中与串2同位置上的字符替换。若串2长于串3

26、,删除串1中字符。若串2短于串3,忽略。 例如:chrtran(“ABACAD”,”ACD”,”123”),57,1、 字符串匹配函数: 格式: LIKE(,) 功能: 比较两串对应字符是否完全相同或匹配,串1可用通配符。 通配符:*任意个任意字符;?一个任意字符。,58,3.3.3 日期和时间函数 1、 系统日期和时间函数: 格式: DATE() TIME() DATETIME() 2、 求年份、月份和天数函数: 格式:YEAR(|) MONTH(|) DAY(|) 3、 时、分和秒函数: 格式:HOUR() MINUTE() SEC(),59,3.3.4 数据类型转换函数 1、 数值转换字

27、符串: 格式: STR(,) 功能:将数值型转换字符串。 注意事项:a) 实际长度等于数值表达式的整数 部分+小数部分+小数点;b) 指定结果串 总长度,小数部分长度,默认值分别为10和0;c) 指定长度大于实际长度,补前导空格;d) 指定长度大于等于整数部分,则自动四舍五入小数部分;e)指定长度小于整数部分,则返回一串星号。 2、,60,字符串转换数值: 格式: VAL() 注:将由数字符号(包括正负号、小数点)组成的字符型-N 中有非数字字符,只转换前面部分;首字符不是数字字符,返回0,忽略前导空格 字符串转换日期或日期时间: 格式:CTOD() CTOT(),61,1 1、日期或日期时间

28、转换字符串: 格式: DTOC(|,1) TTOC(,1) 2、宏替换函数: 格式: ”(英文半角的分号)再按回车键。,152,简单查询只能进行列的选择,不能满足行的选择,如果想选取满足指定条件的行,可使用条件查询。 二、条件查询 1.格式:SELECT DISTINCT 字段列表 FROM WHERE 2.功能:查询满足条件的记录。 3.说明: (1)条件表达式指定为一个逻辑表达式,使用方式和第四章记录操作命令中的条件相同。,153,(2)特殊的条件格式 NOT BETWEEN AND NOT IN () NOT LIKE 例4:查询score表中成绩在60到80之间的所有记录(包括60和8

29、0)。 例5:查询score表中成绩为85,86或88的记录 例6:查询student表中姓王的同学记录 例7:查询student表中不在95031班的学生信息,154,SQL不仅具有一般的查询能力,还可以对查询的结果进行计算。 三、计算查询 计算时采用如下函数: 1.COUNT( )计数 2.SUM( )求和 3.AVG( )求平均值 4.MAX( )求最大值 5.MIN( )求最小值 函数自变量一般是表中的字段或*,155,例8:查询score表中所有学生的平均(总、最高、最低)成绩 例9:查询student表中男同学的人数 例10:查询score表中选修课程的学生人数(不是人次数) 前面

30、的查询都是针对一个表,如果要查询的数据必须使用两个或两个以上的表,我们应使用连接查询。 四、连接查询 1.格式: SELECT 字段名1,字段名2 FROM 表1,表2, WHERE 连接条件,156,例11:查询每位教师的姓名和所教课程的课程名 记录号 NO NAME SEX BIRTHDAY PROF DEPART 1 804 李诚 男 12/02/58 副教授 计算机系 2 856 张旭 男 03/12/69 讲师 电子工程系 3 825 王萍 女 05/05/72 助教 计算机系 4 831 刘冰 女 08/14/77 助教 电子工程系 记录号 CNO CNAME TNO 1 3-10

31、5 计算机导论 825 2 3-245 操作系统 804 3 6-166 数字电路 856 4 9-888 高等数学 100,157,经过前面的分析我们可以得到查询结果: NAME CNAME 李诚 操作系统 张旭 数字电路 王萍 计算机导论 大家再分析查询结果,teacher表有四名教师,查询结果只有三名。不选另一名教师的原因是course表中没有他教学的信息。由此可以知道,连接是有条件,也就是基本关系运算连接中的等值连接。如果没有连接条件,会出现下面的查询结果:,158,NAME CNAME NAME CNAME 1 李诚 计算机导论 9 王萍 计算机导论 2 李诚 操作系统 10 王萍

32、操作系统 3 李诚 数字电路 11 王萍 数字电路 4 李诚 高等数学 12 王萍 高等数学 5 张旭 计算机导论 13 刘冰 计算机导论 6 张旭 操作系统 14 刘冰 操作系统 7 张旭 数字电路 15 刘冰 数学电路 8 张旭 高等数学 16 刘冰 高等数学 这个结果显示不符合实际情况。,159,说明: (1)FROM后面指定查询要用的所有表。 (2)连接通过两表的相关字段实现,连接条件格式:表1.相关字段名=表2.相关字段名 (3)对于连接的多个表通常存在同名字段,为了区别是哪个表中的,在连接条件中通过表名前缀指定连接字段。 例11: SELECT NAME,CNAME FROM te

33、acher,couarse; where teacher.no=course.tno 例12:查询每个学生的NO,NAME,CNO,DEGREE,160,SELECT student.NO,NAME,CNO,DEGREE FROM; student ,score WHERE student.NO=score.NO 注意:为了简化输入,允许在查询中使用表的别名以缩写表名,格式是在FROM子句中为表定义一个临时别名,然后在查询中引用。 例12查询语句可改为: SELECT a.NO,NAME,CNO,DEGREE FROM student a,; score b WHERE a.NO=b.NO 例

34、13:查询每个学生的NO,NAME,CNAME,DEGREE。 例14:查询每个学生的NO,NAME,CNAME。,161,以上等值连接又称标准连接,除此之外,VFP还支持超连接查询。 2.格式: SELECT 字段名1,字段名2 FROM 表1; INNER|LEFT|RIGHT|FULL JOIN 表2 ON; 连接条件 WHERE 条件表达式 说明: (1)INNER JOIN=JOIN,称内部连接,只有满足联接条件的记录才出现在查询结果中,与等值连接结果相同。 (2)LEFT JOIN为左联接,除满足联接条件的记录出现在查询结果中外,第一个表中不满足,162,联接条件的记录也出现在查询

35、中。 (3)RIGHT JOIN为右联接,除满足联接条件的记录出现在查询结果中外,第二个表中不满足联接条件的记录也出现在查询结果中。 (4)RIGHT JOIN为全联接,除满足联接条件的记录出现在查询结果中外,两个表中不满足联接条件的记录也出现在查询结果中。 例题参考:P128-P130 五、分组与排序查询 1.格式:,163,SELECT DISTINCT FROM ; ,表2 WHERE GROUP; BY HAVING ORDER BY ASC|DESC 说明: (1)GROUP BY子句用于分组,通常和SQL的计算函数联用,将查询结果按指定列分组后再计算。此时函数计算的范围变成每组的所

36、有记录,即一个计算结果是由本组的所有记录集合而成的。 (2)HAVING子句分组后使用,对分组过滤,选择满足条件的分组。,164,(3)当多个子句同时出现在一个查询中,执行顺序如下: 执行WHERE从表中选行 由GROUP BY对选的行分组 通过函数进行计算 执行HAVING选满足条件的分组 (4)分组字段可以所用表中存在的字段,也可以是计算生成的虚字段 (5)通过ORDER BY后面接所用表中存在的字段或计算生成的虚字段,可将结果中的记录重新排列顺序。ASC为升序,DESC为降序,默认升序。,165,例15:查询每个学生的学号及平均成绩 例16:查询每门课程的课程号及选修人数 例17:查询每

37、门课程的课程号及平均成绩 例18:查询平均成绩在80分以上的课程号 例19:查询每门课程的课程号及80分以上的人数 例20:查询至少有2个80分以上的学生选修的课程号 例21:按平均成绩降序显示每个学生的学号及平均成绩,166,六、嵌套查询(子查询) 查询的条件不能直接用逻辑表达式表示,却是另一个查询的结果,要用子查询完成。由于查询中的条件是另一个查询,所以又称嵌套查询。子查询用括号括起来,先执行。 格式:SELECT DISTINCT 字段列表 FROM WHERE 字段名 关系运算符 () 例22:查询student表中和李军同年出生的学生信息。 例23:查询student表中和李军同年出

38、生并且同班的学生信息。,167,例24 :查询张旭老师所教学生的成绩信息 总结:上面例题中的子查询返回的结果,不论数据源是一个表还是多个表,都是单个值。如果结果返回多个值,则要使用: 关系运算符 SOME|ANY| ALL|IN| NOT IN (子查询) NOT EXIST (子查询) (1)SOME和ANY是同义词,只要子查询中有一个结果满足条件即可 (2)ALL子查询的全部结果都满足条件,条件才成立。 (3)EXIST和NO EXIST检查子查询中是否有结果返回,即存在或不存在元组。,168,例25:查询计算机系老师所教学生的成绩信息 例26:查询不参加教学工作的教师信息 例27:查询参

39、加教学工作的教师信息 例28:查询成绩高于95031班所有学生成绩的学生的NO,CNO,DEGREE 例29:查询成绩高于95031班一名学生成绩的学生的NO,CNO,DEGREE 一般的嵌套查询都是外层查询依赖于内层查询的结果,而内层查询与外层查询无关。有时,也需要内外层相关的查询,这时内层查询的条件需要外层查询提供值,而外层查询的条件需要内层查询的结果。(P125),169,例30:查询低于本课程平均成绩的学生的NO,CNO,DEGREE 记录号 NO CNO DEGREE 记录号 NO CNO DEGREE 1 103 3-245 86 1 103 3-245 86 2 105 3-24

40、5 75 2 105 3-245 75 3 109 3-245 68 3 109 3-245 68 4 103 3-105 92 4 103 3-105 92 5 105 3-105 88 5 105 3-105 88 6 109 3-105 76 6 109 3-105 76 7 101 3-105 64 7 101 3-105 64 8 107 3-105 91 8 107 3-105 91 9 108 3-105 78 9 108 3-105 78 10 101 6-166 85 10 101 6-166 85 11 107 6-166 79 11 107 6-166 79 12 108

41、 6-166 81 12 108 6-166 81,170,七、特殊查询: 1.并运算(P130):将两个查询语的结果通过并运算合并成一个查询结果。要求两查询结果的字段相同,对应字段的类型和取值范围也相同。运算符:UNION。 2.空值的查询(P124): IS NULL 或 IS NOT NULL 八、查询语句的特殊选项: 1.选择部分结果:TOP PERCENT 省略PERCENT,数值表达式的取值范围1-32767,显示,171,前几个记录;否则,取值范围是0.01-99.99之间的实数,显示前百分之分的记录。必须与排序短语连用。 2.查询结果存入数组 INTO ARRAY 数组名 3.

42、查询结果存入临时表:用于存放中间结果,临时表关闭后自动删除。 INTO CURSOR 临时表文件名 4.查询结果存入永久表 INTO DBF|TABLE 表文件名,172,5.查询结果存入文本文件 INTO FILE 文本文件名 6.查询结果输出到打印机 TO PRINTER PROMPT,173,第三节 操作与定义,一、操作功能:对表中数据的操作。 1.插入: 格式1:INSERT INTO 表名(字段名1,字段名2) VALUES (表达式1,表达式2) 格式2;INSERT INTO 表名 FROM ARRAY 数组名 说明: (1)格式1可在指定表的尾部添加一条记录。当插入的数据不能构

43、成一条完整的记录,用字段名1,字段名2指定字段,VALUES(表达式1,表达式2 )给出对应字段具体的值,174,(2)格式2把指定数组的数据添加到表作为记录。要求数组是二维数组,列数和表中字段数目相同,列内容和字段内容相符。 2.更新: 格式:UPDATE 表名 SET 字段名1=表达式1,; 字段名2=表达式2 WHERE 条件表达式 说明: (1)省略WHERE子句将更新表中全部记录;否则更新满足条件的记录。 (2)WHERE后面的条件可使用子查询。,175,3.删除: 格式:DELETE FROM 表名 WHERE 条件表达式 说明: (1)删除是逻辑删除,如果要物理删除记录需要继续使

44、用物理删除命令PACK。 (2)省略WHERE子句将删除表中全部记录;否则删除满足条件的记录。 (2)WHERE后面的条件可使用子查询。,176,二、定义功能 1.定义表结构: CREATE TABLE|DBF 表文件名 NAME 长名 FREE(字段名1 字段类型(宽度,小数位数) NULL|NOT NULL CHECK 有效性规则 ERROR 错误信息 DEFAULT 默认值 PRIMARY KEY|UNIQUE REFERENCE 表2 TAG 索引名,字段名2 字段类型(宽度,小数位数) NULL|NOT NULL CHECK 有效性规则 ERROR 错误信息 DEFAULT 默认值

45、PRIMARY KEY|UNIQUE REFERENCE 表3TAG 索引名 ,177,说明: (1)命令建立表可以完成表设计器中完成的所有功能。如:PRIMARY KEY指定主索引,CHECK定义有效性规则,出错提示信息ERROR,默认值DEFAULT。描述表之间的联系的FOREIGN KEY和REFERENCE。 (2)NULL允许空值,NOT NULL不允许空值 (3)有当前数据库建立数据库表,指定FREE及无当前数据库时建立的是自由表。 例题参考:P136例5.38和例5.39,178,2.删除表: (1)格式:DROP TABLE (2)说明: 被删除的表必须关闭 删除数据库表时,最

46、好将所属数据库设置为当前数据库。 3.修改表结构 (1)增加字段 格式:ALTER TABLE ADD COLUMN; 字段名 类型符(宽度,小数位数),179,(2)修改字段的类型、宽度及有效性 格式:ALTER TABLE ALTER COLUMN;字段名 类型符(宽度,小数位数); SET CHECK 逻辑表达式 ERROR 信息; SET DEFAULTDROP DEFAULTDROP CHECK (3)删除字段 格式:ALTER TABLE DROP COLUMN; (4)字段改名 格式:ALTER TABLE RENAME COLUMN; to ,180,(18)在SQL SELE

47、CT查询中,为了使查询结果排序应该使用短语 A)ASC B)DESC C)GROUP BY D)ORDER BY,(21)在SQL SELECT语句中与INTO TABLE等价的短语是 A)INTO DBF B)TO TABLE C)TO FOEM D)INTO FILE (22)CREATE DATABASE命令用来建立 A)数据库 B)关系 C)表 D)数据文件,181,(25)假设有student表,可以正确添加字段“平均分数”的命令是 A)ALTER TABLE student ADD 平均分数 F(6,2) B)ALTER DBF student ADD 平均分数 F 6,2 C)C

48、HANGE TABLE student ADD 平均分数 F(6,2) D)CHANGE TABLE student INSERT 平均分数 6,2,182,(31)(35)使用如下关系: 客户(客户号,名称,联系人,邮政编码,电话号码) 产品(产品号,名称,规格说明,单价) 订购单(订单号,客户号,订购日期) 订购单名细(订单号,序号,产品号,数量) (31)查询单价在600元以上的主机板和硬盘的正确命令是 A)SELECT * FROM 产品 WHERE 单价600 AND (名称=主机板 AND 名称=硬盘) B)SELECT * FROM 产品 WHERE 单价600 AND (名称=

49、主机板 OR 名称=硬盘) C)SELECT * FROM 产品 FOR 单价600 AND (名称=主机板 AND 名称=硬盘) D)SELECT * FROM 产品 FOR 单价600 AND (名称=主机板 OR 名称=硬盘),183,(31)(35)使用如下关系: 客户(客户号,名称,联系人,邮政编码,电话号码) 产品(产品号,名称,规格说明,单价) 订购单(订单号,客户号,订购日期) 订购单名细(订单号,序号,产品号,数量) (32)查询客户名称中有“网络”二字的客户信息的正确命令是 A)SELECT * FROM 客户 FOR 名称 LIKE %网络% B)SELECT * FRO

50、M 客户 FOR 名称 =%网络% C)SELECT * FROM 客户 WHERE 名称 =%网络% D)SELECT * FROM 客户 WHERE 名称 LIKE %网络%,184,(31)(35)使用如下关系: 客户(客户号,名称,联系人,邮政编码,电话号码) 产品(产品号,名称,规格说明,单价) 订购单(订单号,客户号,订购日期) 订购单名细(订单号,序号,产品号,数量) (33)查询尚未最后确定订购单的有关信息的正确命令是 A)SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单 WHERE 客户.客户号=订购单.客户号 AND 订购日期 IS NULL B)SEL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1