电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第6讲

29页
  • 卖家[上传人]:E****
  • 文档编号:89184018
  • 上传时间:2019-05-20
  • 文档格式:PPT
  • 文档大小:939KB
  • / 29 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第6讲,第4章 SQL关系数据库查询语言,2,教学内容,第4章 SQL关系数据库查询语言 4.2 SQL的查询功能 SQL查询的计算 分组查询 查询去向 特殊查询功能,第4章 SQL关系数据库查询语言,3,教学重点 SQL查询的计算、分组查询、查询去向、特殊查询功能 教学难点 SQL查询的计算、分组查询、特殊查询功能,第4章 SQL关系数据库查询语言,4,4.2 SQL的查询功能,4.2.5 计算查询 在查询过程中,可能会遇到一些简单的计算,在下面小节中将介绍几个在查询中用到的计算函数。 (1)COUNT( ) 统计记录的个数。 (2)SUM( ) 计算某一列值的总和(此列必须是数值型)。 (3)AVG( ) 计算某一列值的平均值(此列必须是数值型)。 (4)MAX( ) 计算某一列值的最大值。 (5)MIN( ) 计算某一列值的最小值。,第4章 SQL关系数据库查询语言,5,4.2 SQL的查询功能,【例4.21】查询教师表中的教师人数。 SELECT COUNT(教师号) FROM 教师 如果只是统计表中记录的个数,则可以统计表中任意字段的记录个数,所以字段名可以用*号代替。 此查

      2、询等价于:SELECT COUNT(*) FROM 教师 【例4.22】查询选修了课程的学生人数。 SELECT COUNT(DISTINCT 学号) AS 学生人数 FROM 选课 一个学生可能选修了多门课程,所以要用DISTINCT语句去掉重复的记录。 【注意】除非对关系中记录的个数进行计数,一般COUNT函数应该使用DISTINCT。,第4章 SQL关系数据库查询语言,6,4.2 SQL的查询功能,【例4.23】统计物理专业的平均入学成绩。 SELECT AVG(入学成绩) AS 平均入学成绩 FROM 学生; WHERE 专业= “物理“ 【例4.24】查询年龄最小的学生的姓名和出生日期。 年龄最小值,即出生日期的最大值。 SELECT 姓名,MAX(出生日期) AS 出生日期 FROM 学生,第4章 SQL关系数据库查询语言,7,4.2 SQL的查询功能,4.2.6 分组查询 【格式】 GROUP BY | ,字段2,虚拟字段 HAVING 【说明】 (1)GROUP BY对记录分组,并分别对每组记录进行统计运算,默认对分组字段升序排序。 (2)可以对一个或多个字段进行分组,

      3、也可以对虚拟字段进行分组,但不能对运算表达式进行分组,即不能按某个表达式的运算结果进行分组。 (3)可以用HAVING语句限定分组的条件,HAVING语句不能单独使用只能跟在GROUP BY语句之后。 (4)HAVING语句与WHERE语句并不矛盾,在查询过程中,先使用WHERE语句在所有记录中查找出符合条件的记录,然后再对这些记录进行分组,最后再使用HAVING语句查找出符合条件的组。,第4章 SQL关系数据库查询语言,8,4.2 SQL的查询功能,【例4.25】查询每个专业的平均入学成绩,结果包含专业和平均入学成绩两个字段。 SELECT 专业,AVG(入学成绩) AS 平均入学成绩 ; FROM 学生 GROUP BY 专业 【例4.26】查询每个专业中男、女生的最高入学成绩,结果包含专业、性别和最高入学成绩三个字段。 此查询先对专业分组,专业相同时再对性别分组。 SELECT 专业,性别,MAX(入学成绩) AS 最高入学成绩 FROM 学生; GROUP BY 专业,性别,第4章 SQL关系数据库查询语言,9,4.2 SQL的查询功能,【例4.27】查询所有男生各专业的平均入

      4、学成绩,结果包含专业、性别和平均入学成绩三个字段。 此查询先把所有男生的记录筛选出来,然后对这些男生的记录再分组求平均值。 SELECT 专业, 性别, AVG(入学成绩) AS 平均入学成绩 FROM学生; WHERE 性别=“男“ GROUP BY 专业 【注意】HAVING语句和WHERE语句的区别: WHERE语句是用来指定表中所有记录应满足的条件,而HAVING语句是用来指定每组记录应满足的条件,只有满足HAVING条件的那些组才能在结果中显示出来。,第4章 SQL关系数据库查询语言,10,4.2 SQL的查询功能,【例4.28】查询平均入学成绩大于500的专业信息,结果包含专业、平均入学成绩两个字段。 SELECT 专业,AVG(入学成绩) AS 平均入学成绩 FROM 学生; GROUP BY 专业 HAVING AVG(入学成绩)500 此查询是对专业分组,但不是求所有组的平均入学成绩等信息,而是求平均入学成绩大于500的组的信息。HAVING语句后可以使用表达式,也可以使用虚拟字段,此查询等价于: SELECT 专业,AVG(入学成绩) AS 平均入学成绩 FROM

      5、学生; GROUP BY 专业 HAVING 平均入学成绩500,第4章 SQL关系数据库查询语言,11,4.2 SQL的查询功能,【例4.29】查询选修了两门以上课程(包括两门)的学生平均成绩等信息,结果包含学号和平均成绩两个字段。 在选课表中,一名学生有可能选多门课程,所以该查询需要按选课表中的学号进行分组,那么每组记录的个数就是该名学生选课的门数。 SELECT 学号,AVG(成绩) AS 平均成绩 FROM 选课; GROUP BY 学号 HAVING COUNT(*)=2,第4章 SQL关系数据库查询语言,12,4.2 SQL的查询功能,4.2.7 查询去向 1.利用数组存放查询结果(INTO ARRAY) 【例4.30】查询学生表中计算机专业的学生信息,查询结果包含学号、姓名、专业和入学成绩四个字段,并将查询结果存放在数组ABC中。 SELECT 学号,姓名,专业,入学成绩 FROM 学生; WHERE 专业=“计算机“ INTO ARRAY ABC 该查询执行后,系统会自动生成一个2行4列的数组ABC。数组ABC(2,4)中的元素如表所示。 【注意】使用查询去向后,将不再

      6、弹出查询窗口。,第4章 SQL关系数据库查询语言,13,4.2 SQL的查询功能,【例4.31】查询学生表中有多少位男学生,并将其结果存放在数组ABC中。 SELE COUNT(*) FROM 学生 WHERE 性别=“男“ INTO ARRAY ABC 由于该数组中只有一个元素,所以ABC(1,1)也可以用ABC(1)或变量ABC表示。 【注意】数组名可以是任意的数组变量名,INTO ARRAY后只写数组名即可,不能写数组的下标(如INTO ARRAY ABC(1) 。 2.利用临时表文件存放查询结果(INTO CURSOR) SELECT语句查询完成之后,临时表将自动打开,并且是当前文件。该表是一个只读的表文件,程序结束时该表文件将自动删除。 【例4.32】将男学生的信息存放到临时表ABC中。 SELECT * FROM 学生 WHERE 性别=“男“ INTO CURSOR ABC 【注意】 INTO CURSOR后的表文件名不能写扩展名.DBF(如INTO CURSOR ABC.DBF),否则提示语法错误。,第4章 SQL关系数据库查询语言,14,4.2 SQL的查询功能,3利

      7、用永久表文件存放查询结果(INTO DBF|TABLE ) SELECT语句执行完查询之后,该表将以自由表保存并作为当前文件自动打开。 【例4.33】将男学生的信息存放到永久表ABC中。 SELECT * FROM 学生 WHERE 性别=“男“ INTO DBF ABC 等价于: SELECT * FROM 学生 WHERE 性别=“男“ INTO TABLE ABC 【注意】 INTO DBF|TABLE后的表文件名可以写扩展名.DBF,但通常扩展名都省略不写。,第4章 SQL关系数据库查询语言,15,4.2 SQL的查询功能,4利用文本文件存放查询结果(TO FILE ADDITIVE) 如果使用ADDITIVE语句,查询结果将追加到该文本文件尾部,否则将覆盖原有文件。 【例4.34】将男学生的信息存放到文本文件ABC中。 SELECT * FROM 学生 WHERE 性别=“男“ TO FILE ABC 【注意】 TO FILE后的文本文件名可以写扩展名.TXT,但通常扩展名省略不写。如果TO短语和INTO短语同时使用,则TO短语将会被忽略。,第4章 SQL关系数据库查询语言,

      8、16,4.2 SQL的查询功能,4.2.8 几个特殊的运算符 (1)NOT BETWEENAND: 范围查询,即要查询的值介于什么范围之内。 (2)NOT LIKE:字符串匹配查询。 (3)IS NOT NULL:空值查询。 【例4.35】查询入学成绩在500分到520分之间(包含500分和520分)的学生信息。 SELECT * FROM 学生 WHERE 入学成绩 BETWEEN 500 AND 520,第4章 SQL关系数据库查询语言,17,4.2 SQL的查询功能,【例4.36】查询入学成绩小于500或大于520的学生信息。 SELECT * FROM 学生 WHERE 入学成绩 NOT BETWEEN 500 AND 520 【注意】写查询范围时,小数写在AND前面,大数写在AND后面。 【例4.37】查询所有姓王的学生信息。 SELECT * FROM 学生 WHERE 姓名 LIKE “王%“ 在字符串匹配查询中可以使用通配符,%(百分号)表示任意长度的字符串,_(下划线)表示任意单个字符,查询汉字时,每个_(下划线)表示一个汉字。 【例4.38】查询课程表中所有课程名中

      9、没有”大学”两个字的课程名。 SELECT 课程名 FROM 课程 WHERE 课程名 NOT LIKE “%大学%“,第4章 SQL关系数据库查询语言,18,4.2 SQL的查询功能,【例4.39】查询有哪些学生没有选课,查询结果包含学号、姓名和成绩三个字段。 此查询分两步完成: (1)SELECT 学生.学号,姓名,成绩 FROM 学生 LEFT JOIN 选课; ON 学生.学号=选课.学号 INTO CURSOR TEMP (2)SELECT * FROM TEMP WHERE 成绩 IS NULL 【注意】空值查询时要使用IS NULL,不能使用=NULL,因为空值不是一个确定的值,所以不能使用比较运算符“=”来判断。,第4章 SQL关系数据库查询语言,19,4.2 SQL的查询功能,4.2.9 集合的并运算 【格式】 UNION ALL 【说明】 (1)可以使用多个UNION语句,UNION语句默认组合结果中排除重复记录,使用ALL,则允许包含重复记录。 (2)不能使用UNION来组合子查询。 (3)只有第一个或最后的中可以包含ORDER BY子句,而且必须按编号指出排序的列,不能写字段名。 【例4.40】查询选修了003或005这两门课程的学生信息。 SELECT * FROM 选课 WHERE 课程号=“003“; UNION; SELECT * FROM 选课 WHERE 课程号=“005“,第4章 SQL关系数据库查询语言,20,4.2 SQL的查询功能,4.2.10 嵌套查询 当查询的条件依赖于另一个查询的结果时,就要在查询条件WHERE短语中嵌套一个子查询。 1带有比较运算的子查询 当子查询的返回结果是唯一字段值时,可以使用、=、!=等比较运算符进行查询。 【例4.41】查询与王志伟同一年出生的学生的学号、姓名和出生日期。 SELECT 学号,姓名,出生年月 FROM 学生 WHERE YEAR(出生年月)=; (SELECT YEAR(出生年月) FROM 学生 WHERE 姓名=“王志伟“),

      《Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第6讲》由会员E****分享,可在线阅读,更多相关《Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第6讲》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.