Visual FoxPro 6.0程序设计教程 教学课件 ppt 作者 杨慧珠 李德强 仝虎 编著 第五章 结构化查询语言SQL

上传人:E**** 文档编号:89399630 上传时间:2019-05-24 格式:PPT 页数:91 大小:783.50KB
返回 下载 相关 举报
Visual FoxPro 6.0程序设计教程 教学课件 ppt 作者  杨慧珠 李德强 仝虎 编著 第五章 结构化查询语言SQL_第1页
第1页 / 共91页
Visual FoxPro 6.0程序设计教程 教学课件 ppt 作者  杨慧珠 李德强 仝虎 编著 第五章 结构化查询语言SQL_第2页
第2页 / 共91页
Visual FoxPro 6.0程序设计教程 教学课件 ppt 作者  杨慧珠 李德强 仝虎 编著 第五章 结构化查询语言SQL_第3页
第3页 / 共91页
Visual FoxPro 6.0程序设计教程 教学课件 ppt 作者  杨慧珠 李德强 仝虎 编著 第五章 结构化查询语言SQL_第4页
第4页 / 共91页
Visual FoxPro 6.0程序设计教程 教学课件 ppt 作者  杨慧珠 李德强 仝虎 编著 第五章 结构化查询语言SQL_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《Visual FoxPro 6.0程序设计教程 教学课件 ppt 作者 杨慧珠 李德强 仝虎 编著 第五章 结构化查询语言SQL》由会员分享,可在线阅读,更多相关《Visual FoxPro 6.0程序设计教程 教学课件 ppt 作者 杨慧珠 李德强 仝虎 编著 第五章 结构化查询语言SQL(91页珍藏版)》请在金锄头文库上搜索。

1、第五章 SQL查询语言,5.1 SOL简介 5.2 数据查询 5.3 数据操作 5.4 数据定义,5.1 SQL简介,SQL是Sturctured Query Language(结构化查询语 言)的缩写。SQL包含数据查询、数据定义、数据 操纵和数据控制等功能。其中查询是SQL语言的重 要组成部分。 SQL是关系数据库的标准语言,所有的关系数据库 管理系统都支持SQL。,5.1 SQL简介,SQL语言主要特点: 一体化语言 高度非过程化 语言简洁,易学易用 统一的语法格式,不同的工作方式 视图数据结构,SQL操作的两个基本数据结构对象是:表和视图,5.2 数据查询,格式: SELECT ALL

2、|DISTINCT , FROM , WHERE AND AND |OR GROUP By , UNION ALL ORDER By ASCENDING|DESCENDING,ASCENDING|DESCENDING ,5.2 数据查询,INTO | TO FILE ADDITIVE | TO PRINTER | TO SCREEN|into cursor|into table,建议:多多操作! 来加深印象!,5.2 数据查询,ALL:在查询结果中包含所有的行(包括重复值)。它是 系统的默认设置。 DISTINCT:在查询结果中删除重复行 :当涉及到多表查询时,需要通过别名来区分不同 表文件中

3、的字段。 :检索项主要是FROM子句中所给出的表文件中的 字段名。选中的字段名可以和SQL函数一起使用。,常用到的函数有:,平均值函数AVG(): 求一列数据的平均值,最小值函数MIN(): 求一列数的最小值,最大值函数MAX(): 求一列数的最大值,计数函数COUNT(): 求一列中该字段的个数,求和函数SUM(): 求一列数的总和,5.2 数据查询,FROM:form子句也是命令中不可缺少的成分,用于指定数 据来源,其后列出所有要查询的表文件名,可以加上相应的 别名。 WHERE:WHERE是命令可选项,其后各子句含义为: 是指多表文件查询的条件;是指单表 文件的查询条件.,5.2 数据查

4、询,GRONP By短语:将查询结果按某一列(或多个列)的值进行 分组; HAVING子句: HAVING子句,只与GROUP By配合使用, 用于说明分组条件; UNION ALL :说明将两个查询结果合并在一 起输出;若无ALL,重复记录将被自动取消,若有ALL表示 结果全部合并;,5.2 数据查询,ORDER By ASC|DESC:ORDER BY子句指定 按哪个字段对查询结果排序,ASC为升序, DESC为降序;,5.2 数据查询,INTO Destination:指定在何处保存查询结果。如果在同 一个查询中同时包含了INTO子句和TO子句,则TO子句不起 作用。如果没有包含INTO

5、子句,查询结果显示在“浏览”窗 口中。,Destination可以是下列三种子句之一,DBF TableName|TABLE TableName: 将查询结果保存到一个表中,如果指定 的表已经打开,并且SET SAFETY设置 为OFF,则VFP在不给出任何警告信息 的情况下改写该表。执行完SELECT语 句后,该表仍然保持打开活动状态。,CURSOR CursorName:将查询结 果保存到临时表中。如果指定了一 个已打开表的名称,则VFP产生错 误信息。执行完SELECT语句后, 临时表仍然保持打开,但只读。一 旦关闭临时表,则自动删除它。,ARRAY ArrayName: 将查询结果保存

6、到数组中。如果查询 结果中不包含任何记录,则不创建这 个数组。,5.2 数据查询,TO FILE FileName ADDITIVE | TO PRINTER PROMPT | TO SCREEN:如果命令中包含了TO子句,但没有包括 INTO子句,则查询结果定向输出到名为FileName的ASCII 码文件、打印机或主窗口。包含ADDITIVE子句使查询结果 追加到所指定的文本文件的内容后面。,5.2.1 简单查询,简单查询基于单个表,由select-from构成无条件查询, select-from-where构成条件查询 无条件查询:select-from构成 1.查询表中部分字段 例5.

7、1查询student表中学生的学号和姓名 select 学号,姓名 from student 例5.2 查询department表中所有的系名 Select 系名 from department,5.2.1 简单查询,2.使用distinct短语 例5.3 列出学生表中的班级名称 (无重复行) select distinct 班级 from student 3.查询表中全部字段 例5.4 查询学生表中全部字段 select * from student 例5.5 查询course表中的所有元组 Select * from course,Distinct:去掉查询结果中的重复值,“*”是通配符,

8、表示所有字段,5.2.1 简单查询,条件查询:select-from-where结构 4.简单的条件查询 例5.6 查询1992年9月1日以后出生的学生名单 Select 姓名 from student where 出生日期ctod(“09/01/92”) 例5.7 列出选修课的课程名称和课程号 Select 课程名,课程号 from course where 课程性质=“选修” 例5.8 查询课程号是0600101,成绩大于80分的学生学号及成绩, 且将成绩由高到低列出 Select 学号,成绩 from grade where 课程号=“0600101” and 成绩80 order by

9、 成绩 desc,5.2.1 简单查询,4.简单的条件查询 例5.9 查询teacher表中工资多于2200元的职工所在的系号 Select distinct 系号 from teacher where 工资2200 例5.10 给出在系号“01”或“02”工作并且工资少于3000 元的教师编号 select 教师编号 from teacher where 工资3000 and (系号 =“01“ OR 系号=“02“),多个查询条件可以用AND、OR或者NOT连接,5.2.2 简单连接查询,连接是关系的基本操作之一,连接查询是一种基于多个关系 (表)的查询。 对于连接查询,检索项来自不同的关

10、系,在FROM短语后多 个数据表的名称之间用逗号隔开,在WHERE短语中必须指 定数据表之间进行的连接条件。,5.2.2 简单连接查询,1.等值连接 对于等值连接,连接条件通常是两个数据表的公共字段的值相等。 例5.11找出工资多于2200元的教师编号和他们所在的系名。 select 教师编号,系名 from teacher,department; where (工资2200) and (teacher.系号=department.系号) 例5.12找出成绩大于90分的学生的学号、姓名及成绩。 select student.学号,姓名,成绩 from student,grade where 成

11、 绩90 and student.学号=grade.学号 或者 select s.学号,姓名,成绩 from student s,grade g where 成 绩90 and s.学号=g.学号,在连接查询中引用两个表的公共字段时,须在公共字段名前添加表名或表别名作为前缀,否则系统会提 示出错。对于只在一个数据表中出现的字段,则无须指定前缀。,在select查询的from子句中,可以对数据表指定别名,格式为. ,指定别名后,在引用该数据表的字段时,应以别名作为数据表的前缀。,5.2.2 简单连接查询,1.等值连接 例5.13 查询上官小梅所学课程的课程名及其对应的成绩 select 姓名,课

12、程名,成绩 from student s,course c,grade g where 姓名=“上官小梅“ and s.学号=g.学号 and g.课程号=c. 课程号,对于3个表的连接查询,使用where子句指定查询条件时,其形式为: from , where and ,5.2.2 简单连接查询,2.自连接查询:同一关系与自身进行连接 例5.14 找出至少选修0200101号课和0600201号课学生的学 号 select x.学号 from grade x, grade y where x.学号=y.学号 and x.课程号=“0200101“ and y.课程号=“0600201“,5.

13、2.3 嵌套查询,在一个select命令的where子句中,如果还出现了另一个select命令,则这种查询称为嵌套查询。 Vfp只支持单层嵌套查询。 嵌套查询所要求的结果出自一个关系,但相关的条件却涉及多个关系:一般外层查询的条件依赖内层查询的结果,而内层查询与外层查询无关。,5.2.3 嵌套查询,例5.15 查询哪些系至少有一个教师的工资为2200元。 select 系名 from department where 系号 in (select 系号 from teacher where 工资=2200) 例5.16 查询所有教师的工资都多于2200元的系的信息。 select * from

14、department where 系号 not in (select 系 号 from teacher where 工资=2200) and 系号 in (select 系号 from teacher),5.2.3 嵌套查询,例5.17 查询还没有被学生选修课程的课程号和课程名 select 课程号,课程名 from course where 课程号 not in (select 课程号 from grade) 例5.18 查询选修“管理学”的所有学生的学号及成绩 Select 学号,成绩 from grade where 课程号= (select distinct 课程号 from cour

15、se where 课程名=“管理学“),5.2.3 嵌套查询,例5.19 查询同时选修了课程号为0200101和0600201两门课 程的学生姓名 select 姓名 from student where 学号 in (select g1.学号 from grade g1,grade g2 where g1.学号=g2.学号 and g1. 课程号=“0200101“ and g2.课程号=“0600201“),5.2.4 特殊运算符,特殊运算符:betweenand, in, like, not,!= 1.确定范围的查询:betweenand 例5.20 查询成绩在80分到90分之间的学生得

16、分情况 select * from grade where 成绩 between 80 and 90 或 select * from grade where 成绩=80 and 成绩=90 例5.21查询工资不在2200元到2500元范围内的教师信息。 select * from teacher where 工资 not between 2200 and 2500,注意in和between的区别,5.2.4 特殊运算符,2. In 例5.22 列出课程号是0200101和课程号是0600201的全体学 生的学号、课程号和成绩. select 学号,课程号,成绩 from grade where 课程号 in (“0200101“,“0600201“) 或 select 学号,课程号,成绩 from grade where 课程号= “0200101“ or 课程号=“0600201“,In运算符后面接一个集

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

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

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