《accesssql语句》ppt课件

上传人:tian****1990 文档编号:71782188 上传时间:2019-01-21 格式:PPT 页数:15 大小:270.81KB
返回 下载 相关 举报
《accesssql语句》ppt课件_第1页
第1页 / 共15页
《accesssql语句》ppt课件_第2页
第2页 / 共15页
《accesssql语句》ppt课件_第3页
第3页 / 共15页
《accesssql语句》ppt课件_第4页
第4页 / 共15页
《accesssql语句》ppt课件_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《《accesssql语句》ppt课件》由会员分享,可在线阅读,更多相关《《accesssql语句》ppt课件(15页珍藏版)》请在金锄头文库上搜索。

1、第14章 SQL语句,目前关系数据库管理系统都采用SQL语言作为数据库语言,SQL语言成为关系数据库的主流语言。本章以Access支持的SQL语言来讨论其功能和使用方法。 9.1.1 SQL语言的特点 SQL语言是一种介于关系代数与关系演算之间的结构化查询语言。 Access所支持的SQL语言不是全部的SQL语言,下面我们所讲的SQL语言都指的是Access所支持的SQL语言。,14.3 SQL中的数据查询语句,数据库中的数据很多时侯是为了查询的,因此,数据查询是数据库的核心操作。而在SQL语言中,查询语言中有一条查询命令,即SELECT语句。 14.3.1 基本查询语句(投影查询) 【格式】

2、SELECT ALL | DISTINCT FROM 【功能】无条件查询 【说明】ALL: 表示显示全部查询记录,包括重复记录。 DISTINCT: 表示显示无重复结果的记录,14.3.2 选择查询,【格式】SELECT FROM WHERE 【功能】有条件查询 【说明】在该条件中除了可以用关系表达式外,还可以使用以下运算符: 1. BETWEEN AND 2. IN 3. LIKE,举例:,1.显示学生选课及成绩表中考试成绩在60-80之间的所有记录。 SELECT * FROM 学生选课及成绩表 WHERE 考试成绩 BETWEEN 60 AND 80 2.显示学生选课及成绩表中考试成绩为

3、85、88、90的所有记录。 SELECT * FROM 学生选课及成绩表 WHERE 考试成绩 IN(85,88,90) 3.显示学生信息表中的所有”王”姓同学,只显示姓名和性别字段 SELECT 姓名,性别 FROM 学生信息表 WHERE 姓名 like “王*” 注:”*”表示可与一串字符匹配,”?”表示可与一个字符匹配,14.3.3 排序查询,通过在SELECT命令中加入ORDER BY 子句可控制行的显示顺序。ORDER BY 可以按升序(默认或ASC)、降序(DESC)排列各行,也可以按多个列来排序。 注意:该子句必须是SELECT命中的最后一个子句 【例】将学生选课及成绩表中的

4、考试成绩字段按降序排列。 SELECT * FROM 学生选课及成绩表 ORDER BY 考试成绩 DESC,14.3.4 使用聚合函数,聚合函数用于实现数据统计等功能.access中提供的聚合函数有AVG(),COUNT(),MIN(),MAX()SUM()等 例: 查询”计算机网络”班的学生人数。 Select count(*) from 学生信息表 where 所在班级=“计算机网络” 或 Select count (学号)from 学生信息表 where 所在班级=“计算机网络” 例: 查询编号为”C011”的课程的考试成绩的平均分。 select avg(考试成绩) as 平均分 f

5、rom 学生选课及成绩表 where 课程号=“C011“,上述例子中使用了聚合函数,我们还可以加上GROUP BY 子句,通常一个聚合函数的范围是满足WHERE子句指定的条件的所有记录。在加上GROUP BY 子句后,SELECT命令把查询结果按指定列分成集合组。当一个聚合函数和一个GROUP BY 子句一起使用时,聚合函数的范围变为每组的所有记录。换句话说,一个结果是由组成一组的每个记录聚合产生的。 使用HAVING子句可以对这些组进一步加以控制。用这一子句定义这些组所必须满足的条件,便将其包含在结果中。 当WHERE子句、GROUP BY 子句和HAVING子句同时出现在一个查询中时,S

6、ELECT的执行顺序如下:,1、执行WHERE子句,从表中选取行 2、由GROUP BY 对选取的行进行分组 3、执行聚合函数 4、执行HAVING子句选取满足条件的分组 例:显示学生考试成绩平均分高于60分的学生的学号。 SELECT 学号 FROM 学生选课及成绩表 GROUP BY 学号 HAVING AVG(考试成绩)60 例:显示学生的考试成绩的最低分大于60,最高分小于95的学生的学号。 SELECT 学号 FROM 学生选课及成绩表 GROUP BY 学号 HAVING MIN (考试成绩)=60 AND MAX (考试成绩) =95,14.3.5 表的连接查询,在数据查询中,经

7、常涉及到提取两个或多个表的数据,这就需要使用表的连接来实现若干个表数据的联合查询。 在一个查询中,当需要对两个或多个表连接时,可以指定连接列,在WHERE子句中给出连接条件,在 FROM子句中指定要连接的表,其格式如下: SELECT 字段名1,字段名2, FROM 表1,表2 WHERE 连接条件and一般条件 对于连接的多个表,为了区别是哪个表中的列,在连接条件中通过表名前缀指定连接列,如:TEACHER.NO表示TEACHER 表的NO列。,例:显示所有学生的课程名称和考试成绩字段。 SELECT 课程表.课程名称,学生选课及成绩表.考试成绩 FROM 课程表,学生选课及成绩表 WHER

8、E 课程表.课程号=学生选课及成绩表.课程号 SELECT为了简化输入,允许在查询中使用表的别名,以缩写表名,我们可以在SELECT子句中为表定义一个临时别名,然后在查询中引用。 例:显示所有学生的课程名称和考试成绩字段。 SELECT a.课程名称,b.考试成绩 FROM 课程表 a,学生选课及成绩表 b WHERE a.课程号=b.课程号,如果涉及到更多的数据表该怎么做呢? 例:显示所有学生的姓名、课程名称和考试成绩字段。 SELECT 学生信息表.姓名,课程表.课程名称,学生选课及成绩表.考试成绩 FROM 学生信息表,课程表,学生选课及成绩表 WHERE 学生信息表.学号=学生选课及成

9、绩表.学号 and 课程表.课程号=学生选课及成绩表.课程号,例:显示每门课程的考试成绩的平均分。 SELECT 学生选课及成绩表.课程号, AVG(学生选课及成绩表.考试成绩) AS 平均分 FROM 学生信息表, 学生选课及成绩表 WHERE 学生信息表.学号=学生选课及成绩表.学号 GROUP BY 学生选课及成绩表.课程号 或 例:显示每门课程的考试成绩的平均分。 SELECT Y.课程号, AVG(Y.考试成绩) AS 平均分 FROM 学生信息表 X, 学生选课及成绩表 Y WHERE X.学号=Y.学号 GROUP BY Y.课程号,例:显示“计算机应用”班所选课程的考试成绩平均

10、分。 SELECT 学生选课及成绩表.课程号, AVG(学生选课及成绩表.考试成绩) AS 平均分 FROM 学生信息表, 学生选课及成绩表 WHERE 学生信息表.学号=学生选课及成绩表.学号 AND 学生信息表.所在班级=“计算机应用“ GROUP BY 学生选课及成绩表.课程号 或 例:显示“计算机应用”班所选课程的考试成绩平均分。 SELECT Y.课程号, AVG(Y.考试成绩) AS 平均分 FROM 学生信息表 X, 学生选课及成绩表 Y WHERE X.学号=Y.学号 AND X.所在班级=“计算机应用” GROUP BY Y.课程号,9.3.6 子查询,当一个查询是另一个查询

11、的条件时,称之为子查询.子查询可以使用几个简单的命令构造强大的复合命令。子查询最常用于SQL命令的WHERE子句中。 例:查询和学号为“012101”的学生同年出生的所有学生的学号,姓名和出生日期字段。 select 学号,姓名,出生日期 from 学生信息表 where year(出生日期)=(select year(出生日期) from 学生信息表 where 学号=“012101“) 例:查询和学号为“012101”的学生同年同月同日出生的所有学生的学号,姓名和出生日期字段。 select 学号,姓名,出生日期 from 学生信息表 where 出生日期=(select 出生日期 from 学生信息表 where 学号=“012101“),9.3.7 其他查询 在进行嵌套查询(子查询)时还可以使用有关的IN和NOT IN运算符。 例:查询显示存在有85分以上考试成绩的课程,显示课程号字段。 select 课程号 from 学生选课及成绩表 where 考试成绩 in(select 考试成绩 from 学生选课及成绩表 where 考试成绩85),

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

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

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