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

上传人:w****i 文档编号:92482009 上传时间:2019-07-10 格式:PPT 页数:26 大小:778.50KB
返回 下载 相关 举报
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞10VFP第5讲_第1页
第1页 / 共26页
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞10VFP第5讲_第2页
第2页 / 共26页
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞10VFP第5讲_第3页
第3页 / 共26页
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞10VFP第5讲_第4页
第4页 / 共26页
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞10VFP第5讲_第5页
第5页 / 共26页
点击查看更多>>
资源描述

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

1、第5讲,第4章 SQL关系数据库查询语言,2,教学内容,第4章 SQL关系数据库查询语 4.1 SQL语言的特点 4.2 SQL的查询功能,第4章 SQL关系数据库查询语言,3,教学重点 SQL的简单、联接查询 教学难点 SQL的简单、联接查询,第4章 SQL关系数据库查询语言,4,4.1 SQL语言的特点,功能一体化,可以独立完成对数据库的所有操作 高度非过程化 “自含式”和“嵌入式”使用方式 语言简洁,易学易用,SQL命令动词,第4章 SQL关系数据库查询语言,5,4.2 SQL的查询功能,在SQL语言中,只有一条查询命令,即SELECT语句。 4.2.1 SQL语法格式,SELECT ,

2、 AS FROM , WHERE ,【说明】 SELECT指明查询结果由哪些字段组成 FORM指明在查询结果中使用的字段都是来自哪个表或视图 WHERE指明查询条件和两个表的联接条件,第4章 SQL关系数据库查询语言,6,4.2 SQL的查询功能,4.2.2 简单查询 1查询部分或全部字段信息 【例4.1】查询教师表中所有人的姓名和性别信息。 SELECT 姓名,性别 FROM 教师,第4章 SQL关系数据库查询语言,7,4.2 SQL的查询功能,【例4.2】查询教师表中的所有信息。 SELECT * FROM 教师 命令中的*表示输出显示所有的字段,等价于如下语句: SELECT 教师号,姓

3、名,性别,职称,党员否,年龄 FROM 教师 【例4.3】查询教师表中男教师的姓名、职称和性别信息。 SELECT 姓名,职称,性别 FROM 教师 WHERE 性别=“男“,第4章 SQL关系数据库查询语言,8,4.2 SQL的查询功能,【例4.4】在学生表中查询外语专业或计算机专业中入学成绩小于510分的学生的学号、姓名、专业和入学成绩信息。 SELECT 学号,姓名,专业,入学成绩 FROM 学生; WHERE (专业=“外语“ OR 专业=“计算机“) AND 入学成绩510 此查询等价于如下语句: SELECT 学号,姓名,专业,入学成绩 FROM 学生; WHERE (专业=“外语

4、“ AND 入学成绩510) OR (专业=“计算机“ AND 入学成绩510) 如果将此查询写成如下语句可以吗? SELECT 学号,姓名,专业,入学成绩 FROM 学生; WHERE 专业=“外语“ OR 专业=“计算机“ AND 入学成绩510,第4章 SQL关系数据库查询语言,9,4.2 SQL的查询功能,2查询结果可以是通过某一字段或几个字段计算得到的虚拟字段 【格式】 AS 【例4.5】查询学生表中年龄大于21岁的女学生的学号、姓名和年龄信息。 年龄=当前的年份-出生日期的年份, 即YEAR(DATE()-YEAR(出生日期) SELECT 学号,姓名,YEAR(DATE()-YE

5、AR(出生日期) AS 年龄 FROM 学生 WHERE 性别=“女“ AND YEAR(DATE()-YEAR(出生日期)21 AS 短语可以省略 【注意】WHERE语句后不能使用虚拟字段进行条件限定,即条件不能写成“年龄21”。,第4章 SQL关系数据库查询语言,10,4.2 SQL的查询功能,3去掉查询结果中的重复记录 【格式】DISTINCT 【说明】DISTINCT语句后不能接表达式。 【例4.6】查询学生表中都有哪些专业。 SELECT 专业 FROM 学生 利用DISTINCT语句可以去掉查询结果中的重复记录。 SELECT DISTINCT 专业 FROM 学生,第4章 SQL

6、关系数据库查询语言,11,4.2 SQL的查询功能,4.2.3 联接查询 在一个数据库中多个表之间一般都存在着某些联系,在一个查询语句中如果同时涉及两个或两个以上表时,这种查询称之为联接查询(也称为多表查询)。 1简单联接查询 【例4.7】查询学生的学号、姓名和成绩的信息。 SELECT 学生.学号,姓名,成绩 FROM 学生,选课 WHERE 学生.学号=选课.学号,WHERE后是联接条件,通常表示为两个表中共有字段相等。 当不同表中含有相同的字段名时,必须指明是哪个表的字段。,第4章 SQL关系数据库查询语言,12,4.2 SQL的查询功能,4.2.3 联接查询 1简单联接查询 【例4.8

7、】查询学生的学号、姓名、课程名和成绩的信息。 SELECT 学生.学号,姓名,课程名,成绩 FROM 学生,选课,课程; WHERE 学生.学号=选课.学号 AND 课程.课程号=选课.课程号 在该查询中,要查询的字段来自三个表,所以FROM后面是这三个表的表名; WHERE后面的联接条件应该是这三个表中的每两个表的共有字段相等。,第4章 SQL关系数据库查询语言,13,4.2 SQL的查询功能,4.2.3 联接查询 2超联接查询,SELECT FROM INNER|LEFT|RIGHT|FULL JOIN ON WHERE,【说明】 INNER JOIN或JOIN为内联接:按照联接条件进行联

8、接 LEFT JOIN 为左联接:第一个表不满足条件的记录也在结果中 RIGHT JOIN 为右联接:第二个表不满足条件记录也在结果中 FULL JOIN 为全联接:两个表中不满足条件的记录都在结果中 ON 指明联接条件:不能在WHERE后面给出联接条件。,第4章 SQL关系数据库查询语言,14,4.2 SQL的查询功能,【例4.9】内联接查询(查询学生的学号、姓名和成绩的信息)。 SELECT 学生.学号,姓名,成绩 FROM 学生 JOIN 选课 ON 学生.学号=选课.学号 内联接查询等价于简单联接查询,即等价于: SELECT 学生.学号,姓名,成绩 FROM 学生,选课 WHERE

9、学生.学号=选课.学号,第4章 SQL关系数据库查询语言,15,4.2 SQL的查询功能,【例4.10】内联接查询(查询学生的学号、姓名、课程名和成绩的信息)。 SELECT 学生.学号,姓名,课程名,成绩 FROM (学生 JOIN 选课 ON 学生.学号=选课.学号) JOIN 课程 ON 选课.课程号=课程.课程号 等价于另一种内联接查询方式: SELECT 学生.学号,姓名,课程名,成绩 FROM 学生 JOIN 选课 JOIN 课程 ON 选课.课程号=课程.课程号 ON 学生.学号=选课.学号 【注意】后一种写法中,多个表用“JOIN”语句联接的顺序要与联接条件“ON”的顺序恰好相

10、反。,第4章 SQL关系数据库查询语言,16,4.2 SQL的查询功能,【例4.11】左联接查询(查询学生的学号、姓名和成绩的信息)。 SELECT 学生.学号,姓名,成绩 FROM; 学生 LEFT JOIN 选课 ON 学生.学号=选课.学号 第一个表中不满足联接条件的记录会出现在查询结果中,由于三名学生没有选课,因此相应的成绩为空。,第4章 SQL关系数据库查询语言,17,4.2 SQL的查询功能,【例4.12】右联接查询(查询学生的学号、课程名和成绩的信息)。 SELECT 学号,课程名,成绩 FROM 选课 RIGHT JOIN 课程; ON 选课.课程号=课程.课程号 最后一个表中

11、不满足联接条件的记录会出现在查询结果中,由于有一门课程没有被学生所选,因此相应的学号和成绩为空。,第4章 SQL关系数据库查询语言,18,4.2 SQL的查询功能,【例4.13】全联接查询(查询学生的学号、姓名、课程名和成绩的信息)。 SELECT 学生.学号,姓名,课程名,成绩 FROM; 学生 FULL JOIN 选课 FULL JOIN 课程; ON 选课.课程号=课程.课程号 ON 学生.学号=选课.学号 两个表(第一个表和最后一个表)中不满足条件的记录会出现在查询结果中。即全联接查询的结果是左联接查询和右联接查询结果的并集。 。,第4章 SQL关系数据库查询语言,19,4.2 SQL

12、的查询功能,3自联接查询,将同一个表与其自身进行联接,这种联接就称为自联接 此时可以给表取两个别名,格式为 : ,【例4.14】查询所有课程的先行课信息。,SELECT FROM 课程表 ,课程表 WHERE 课程号= 先行课,B.,A.,A,B,A.课程名,“的先行课是“,B.课程名,A,B,第4章 SQL关系数据库查询语言,20,4.2 SQL的查询功能,4.2.4 排序 【格式】 SELECT TOPPERCENT FROM ORDER BY|ASC|DESC 【说明】 (1)ORDER BY语句后可以使用多个字段名(包括虚拟字段)或字段编号。 (2)ASC为升序排列,DESC为降序排列

13、,默认为升序排列,升序排列时ASC可以省略。 (3)TOP PERCENT语句用于显示排序之后的前几条记录或前百分之多少条记录。 当不使用PERCENT时,是1至32 767间的整数,说明显示前几个记录; 当使用PERCENT时,是0.01至99.99间的实数,说明显示结果中前百分之几的记录。,第4章 SQL关系数据库查询语言,21,4.2 SQL的查询功能,【例4.15】查询学生的学号、姓名和入学成绩信息,查询结果按入学成绩降序排列。 SELECT 学号,姓名,入学成绩 FROM 学生 ORDER BY 入学成绩 DESC 此查询等价于: SELECT 学号,姓名,入学成绩 FROM 学生

14、ORDER BY 3 DESC,第4章 SQL关系数据库查询语言,22,4.2 SQL的查询功能,【例4.16】查询物理专业的学生信息,查询结果按入学成绩升序排列,入学成绩相同的记录再按出生日期降序排列。 SELECT * FROM 学生 WHERE 专业=“物理“ ORDER BY 入学成绩,出生日期 DESC 此查询等价于: SELECT * FROM 学生 WHERE 专业=“物理“ ORDER BY 7,5 DESC,第4章 SQL关系数据库查询语言,23,4.2 SQL的查询功能,【例4.17】查询学生表中年龄大于21岁的学生的学号、姓名和年龄信息,查询结果按年龄升序排列。 SELE

15、CT 学号,姓名,YEAR(DATE()-YEAR(出生日期) AS 年龄 FROM 学生 WHERE YEAR(DATE()-YEAR(出生日期) 21 ORDER BY 年龄 【注意】WHERE语句后不能使用虚拟字段,但可以使用运算表达式;ORDER BY语句后不能使用运算表达式,但可以使用虚拟字段。,第4章 SQL关系数据库查询语言,24,4.2 SQL的查询功能,【例4.18】查询入学成绩前三名的学生的学号、姓名和入学成绩信息。 SELECT TOP 3 学号,姓名,入学成绩 FROM 学生 ORDER BY 入学成绩 DESC 【例4.19】查询入学成绩最低的那30%的学生信息。 S

16、ELECT TOP 30 PERCENT * FROM 学生 ORDER BY 入学成绩 【注意】TOP语句要与ORDER BY语句同时使用才有效。,第4章 SQL关系数据库查询语言,25,4.2 SQL的查询功能,【例4.20】在学生表中查询年龄最大的前2名学生的姓名和出生日期,查询结果按年龄降序排列。 此查询只要求查询学生的姓名和出生日期,没有要求查询年龄,所以不能使用虚拟字段。按年龄降序排列,等价于按出生日期升序排列。 SELECT TOP 2 姓名,出生日期 FROM 学生 ORDER BY 出生日期,【注意】 TOP PERCENT语句要与ORDER BY语句同时使用才有效 ORDER BY语句只对最终的查询结果进行排序,在子查询中不能使用 ORDER BY语句不能按某个表达式的运算结果进行排序 对于空值排序,升序时空值记录将最先显示,降序时将最后显

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

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

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