Visual FoxPro程序设计实验教程 教学课件 ppt 作者 杨艳 邓树文 周洁 chp5

上传人:E**** 文档编号:89403990 上传时间:2019-05-24 格式:PPT 页数:53 大小:626KB
返回 下载 相关 举报
Visual FoxPro程序设计实验教程 教学课件 ppt 作者  杨艳 邓树文 周洁 chp5_第1页
第1页 / 共53页
Visual FoxPro程序设计实验教程 教学课件 ppt 作者  杨艳 邓树文 周洁 chp5_第2页
第2页 / 共53页
Visual FoxPro程序设计实验教程 教学课件 ppt 作者  杨艳 邓树文 周洁 chp5_第3页
第3页 / 共53页
Visual FoxPro程序设计实验教程 教学课件 ppt 作者  杨艳 邓树文 周洁 chp5_第4页
第4页 / 共53页
Visual FoxPro程序设计实验教程 教学课件 ppt 作者  杨艳 邓树文 周洁 chp5_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《Visual FoxPro程序设计实验教程 教学课件 ppt 作者 杨艳 邓树文 周洁 chp5》由会员分享,可在线阅读,更多相关《Visual FoxPro程序设计实验教程 教学课件 ppt 作者 杨艳 邓树文 周洁 chp5(53页珍藏版)》请在金锄头文库上搜索。

1、Visual FoxPro Programming,Visual FoxPro程序设计 Visual FoxPro Programming 第五章 关系数据库标准语言SQL,咸宁学院计算机科学与技术学院,Visual FoxPro Programming,第五章 关系数据库标准语言SQL,5.1 SQL概述 5.2 数据查询 5.3 操作功能 5.4 定义功能,Visual FoxPro Programming,SQL具有如下主要特点: 一体化 高度非过程化 语言简洁,易学易用:SQL核心功能只需要使用9个命令动词,如表5-1所示。 两种使用方式,统一的语法结构,表5-1 SQL命令动词,5.

2、1 SQL 概 述,Visual FoxPro Programming,SELECT语句语法格式: SELECT ALL| DISTINCT TOP PERCENT 表名.AS ,表名.AS , FROM AS INNER|LEFT|RIGHT|FULL JOIN AS ON , INTO |TO FILE |TO PRINTER PROMPT WHERE AND ,AND|OR AND|OR , GROUP BY , HAVING UNION ALL SELECT 命令 ORDER BY ASC|DESC,ASC|DESC,5.2 数 据 查 询,Visual FoxPro Programm

3、ing,SELECT说明要查询的数据(字段或表达式)。 FROM说明要查询的数据来自哪个(些)表,可以对单表或多表进行查询。 ON如果对多表进行超联接查询,用于多表间联接的条件。 INTO|TO说明查询结果的去向。 WHERE说明查询筛选条件,即选择记录的条件。 GROUP BY用于对查询结果进行分组,可以利用它进行分组汇总。 HAVING必须跟随GROUP BY之后使用,用于限定分组必须满足的条件。 ORDER BY用于对查询的结果进行排序。,5.2 数 据 查 询,SELECT的命令中主要短语的含义如下:,Visual FoxPro Programming,5.2 数 据 查 询,5.2.

4、1 基本查询 5.2.2 条件查询 5.2.3 排序查询 5.2.4 使用集函数 5.2.5 对查询结果分组 5.2.6 多表查询 5.2.7 超联接查询 5.2.8 嵌套查询 5.2.9 别名与自联接查询 5.2.10 使用量词和谓词的查询 5.2.11 集合的并运算 5.2.12 Visual FoxPro中SQL SELECT的几个特殊选项,Visual FoxPro Programming,1查询全部字段 两种方法:在SELECT短语中列出所有字段名;如果字段的显示顺序与其在源表中的顺序相同,也可以在SELECT短语中用*表示。 例5-1 查询全体学生的详细信息。 SELECT * ;

5、 FROM 学生 查询结果如图5-1所示。,图5-1 例5-1查询结果,5.2.1 基本查询,SELECT 学号,姓名,性别,出生日期,专业,个人简历,照片; FROM 学生,Visual FoxPro Programming,2选择指定字段 在SELECT子句指定要查询的字段。 例5-2 查询全体学生的学号、姓名和专业。 SELECT 学号,姓名,专业 ; FROM 学生 查询结果如图5-2所示。,图5-2 例5-2查询结果图,5.2.1 基本查询,Visual FoxPro Programming,3查询经过计算的值 SELECT子句不仅可以是表中的字段,也可以是表达式。 例5-3 查询全

6、体学生的学号,姓名和年龄。 SELECT 学号,姓名,YEAR(DATE()-YEAR(出生日期) 年龄 ; FROM 学生 &通过指定别名“年龄”来改变查询结果的列标题。 查询结果如图5-3所示。,图5-3 例5-3查询结果,5.2.1 基本查询,Visual FoxPro Programming,图5-4 例5-4查询结果图,4消除取值重复的行 如果想去掉结果表中的重复行,必须指定DISTINCT短语。 例5-4 查询学生表中的所有专业。 SELECT DISTINCT 专业 ; FROM 学生 查询结果如图5-4所示。 如果没有指定DISTINCT短语,则缺省为ALL,即保留结果中取值重

7、复的行。,5.2.1 基本查询,Visual FoxPro Programming,1比较大小 比较运算符:=、=、。 例5-5 查询1987后出生的学生的学号、姓名及其出生日期。 SELECT 学号,姓名,出生日期 ; FROM 学生 ; WHERE 出生日期 1987-12-31 查询结果如图5-5所示。,例5-6 查询计算机应用专业的男生的学号、姓名及其出生日期。 SELECT 学号,姓名,出生日期 ; FROM 学生 ; WHERE 专业=“计算机应用“ ; AND 性别=“男“ 查询结果如图5-6所示。,图5-5 例5-5查询结果,图5-6 例5-6查询结果,5.2.2 条件查询,V

8、isual FoxPro Programming,2确定范围 谓词BETWEENAND可以用来查找字段值在指定范围内的记录。 例5-7 查询1988年出生的学生的姓名、出生日期和专业。 SELECT 姓名,出生日期,专业 ; FROM 学生 ; WHERE 出生日期 BETWEEN 1988-01-01 AND 1988-12-31 等价于: SELECT 姓名,出生日期,专业 ; FROM 学生 ; WHERE 出生日期 = 1988-01-01 AND 出生日期 = 1988-12-31 查询结果如图5-7所示。,图5-7 例5-7查询结果,5.2.2 条件查询,Visual FoxPro

9、 Programming,3确定集合 谓词IN可以用来查找属性值属于指定集合的记录。 例5-8 查找“临床医学”和“工商管理”专业的学生的姓名、性别和出生日期。 SELECT 姓名,性别,出生日期 ; FROM 学生 ; WHERE 专业 IN(“临床医学“,“工商管理“) 等价于: SELECT 姓名,性别,出生日期 ; FROM 学生 ; WHERE 专业 = “临床医学“ OR 专业 = “工商管理“ 查询结果如图5-8所示。,图5-8 例5-8查询结果,5.2.2 条件查询,Visual FoxPro Programming,4字符匹配 谓词LIKE可以用来进行字符串匹配。其一般语法格

10、式为:NOT LIKE “。可以是一个完整的字符串,也可以含有通配符 % 和 _ 。 %(百分号)代表任意长度(长度可以为0)的字符串。 _(下横线)代表任意单个字符或汉字。 例5-9 查询姓“陈”学生的学号、姓名和专业。 SELECT 学号,姓名,专业 ; FROM 学生 ; WHERE 姓名 LIKE “陈%“ 查询结果如图5-9所示。,图5-9 例5-9查询结果,例5-10 查询姓“陈”且全名为三个汉字的学生的学号、姓名和专业。 SELECT 学号,姓名,专业 ; FROM 学生 ; WHERE 姓名 LIKE “陈_“ &此处是两个下划线(_) 查询结果如图5-10所示。,图5-10

11、例5-10查询结果,5.2.2 条件查询,Visual FoxPro Programming,5涉及空值的查询 SQL支持空值,当然也可以利用空值进行查询。 例5-11 某些学生由于未参加考试,其成绩为空。现查询缺少成绩的学生的学号和相应的课程号。 SELECT 学号,课程号 ; FROM 成绩 ; WHERE 成绩 IS NULL 注意:查询空值时要使用IS NULL,而 = NULL是无效的,因为空值不是一个确定的值,所以不能用“=”这样的运算符进行比较。,SELECT 学号,课程号 ; FROM 成绩 ; WHERE 成绩 = NULL,5.2.2 条件查询,Visual FoxPro

12、Programming,如果要按某种顺序组织查询结果,可以使用ORDER BY短语,对查询结果按升序(ASC)或降序(DESC)排列。 例5-12 先按专业升序,再按出生日期降序输出男生的姓名、性别、专业和出生日期。 SELECT 姓名,性别,专业,出生日期 ; FROM 学生 ; WHERE 性别 = “男“ ; ORDER BY 专业,出生日期 DESC 查询结果如图5-11所示。,图5-11例5-12的结果,5.2.3 排序查询,Visual FoxPro Programming,例5-13 先按专业升序,再按年龄降序输出男生的姓名、性别、专业和年龄。 SELECT 姓名,性别,专业,Y

13、EAR(DATE()-YEAR(出生日期) AS 年龄 ; FROM 学生 ; WHERE 性别 = “男“ ; ORDER BY 专业,年龄 DESC 等价于: SELECT 姓名,性别,专业,YEAR(DATE()-YEAR(出生日期) AS 年龄 ; FROM 学生 ; WHERE 性别 = “男“ ; ORDER BY 专业,4 DESC 查询结果如图5-12所示。,图5-12 例5-13的结果,5.2.3 排序查询(续),Visual FoxPro Programming,说明: 如不使用短语ASC和DESC,则默认排序方式为升序。 对于空值,若按升序排,含空值的记录将最后显示。若按

14、降序排,空值的记录将最先显示。 SELECT子句中的非字段表达式不能出现在ORDER BY子句中,但其在SELECT子句中的别名或序号可以作为排序依据。,如下列SQL即为语法错误的SQL: SELECT 姓名,性别,专业,YEAR(DATE()-YEAR(出生日期) AS 年龄 ; FROM 学生 ; WHERE 性别 = “男“ ; ORDER BY 专业, YEAR(DATE()-YEAR(出生日期) AS 年龄 DESC,5.2.3 排序查询(续),Visual FoxPro Programming,SQL提供了许多集函数,主要有: COUNT(DISTINCT | ALL * ) 统计

15、记录的个数 COUNT(DISTINCT | ALL) 统计一列中值的个数 SUM(DISTINCT | ALL) 计算一列值的总和(此列必须是数值型) AVG(DISTINCT | ALL) 计算一列值的平均值(此列必须是数值型) MAX(DISTINCT | ALL) 求一列值中的最大值 MIN(DISTINCT | ALL) 求一列值中的最小值 如果指定DISTINCT短语,则表示在计算时取消指定列中的重复值。如果不指定DISTINCT短语或指定ALL短语(ALL为缺省值),则表示不取消重复值。,5.2.4 使用集函数,Visual FoxPro Programming,例5-14 查询

16、学生表中的专业数。 SELECT COUNT(DISTINCT 专业) 专业数 ; FROM 学生 查询结果如图5-13所示。 例5-15 计算成绩表中课程号为“101”的平均分和最高分。 SELECT AVG(成绩) 平均分,MAX(成绩) 最高分 ; FROM 成绩 ; WHERE 课程号=“101“ 查询结果如图5-14所示。,图5-13 例5-14的结果,图5-14 例5-15的结果,5.2.4 使用集函数(续),Visual FoxPro Programming,GROUP BY子句将查询结果表按某一列或多列分组,值相等的为一组。 对查询结果分组的目的是为了细化集函数的对象。如果未对查询结果分组,集函数将作用于整个查询结果,分组后集函

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号