第8章 查询和视图课件.ppt

上传人:春哥&#****71; 文档编号:12723418 上传时间:2022-04-25 格式:PPT 页数:42 大小:192.50KB
返回 下载 相关 举报
第8章 查询和视图课件.ppt_第1页
第1页 / 共42页
第8章 查询和视图课件.ppt_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《第8章 查询和视图课件.ppt》由会员分享,可在线阅读,更多相关《第8章 查询和视图课件.ppt(42页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第8章 查询和视图 本本 章章 要要 点点n查询的创建与使用方法n关系数据库查询语言的使用n视图的创建与使用方法n查询与视图的联系与区别思考题8.1.1 查询的设计过程查询的设计过程在创建查询时,通常可以遵循以下六个步骤来创建查询。(1)用“查询向导”或“查询设计器”创建查询。(2)选择在查询结果中需要的字段。(3)设置查询记录的条件。(4)设置排序及分组条件来组织查询结果。(5)选择查询输出类别,可以是报表、表文件、图表、浏览窗口和表文件等等。(6)运行此查询。8.1 数据查询数据查询1利用利用“查询向导查询向导”创建查询创建查询利用“查询向导”创建查询的步骤如下:(1)进入“查询向导”进入

2、“查询向导”可用下面3种方法: 选择【工具】|【向导】|【查询】命令。 选择【文件】|【新建】命令,进入“新建”对话框,选择“查询”单选按钮,单击“向导”按钮。 在“项目管理器”窗口中,选择“数据”选项卡,选中“查询”,单击“新建”按钮,出现“新建查询”对话框,单击“查询向导”按钮。(2)选择查询结果中需要的字段8.1.2 查询的创建与保存查询的创建与保存(3)设置查询条件(4)设置排序字段(5)设置记录输出范围(6)保存查询2查询设计器查询设计器 进入“查询设计器”窗口有二种方法,(1)选择【文件】【新建】命令,进入“新建”对话框,选择“查询”单选按钮,单击“新建”按钮;(2)在“项目管理器

3、”窗口中,选择“数据”选项卡,选中“查询”文件类型,单击“新建”按钮,出现“新建查询”对话框,单击“新建查询”按钮。 3查询设计器工具栏查询设计器工具栏 “查询设计器工具栏”各按钮的功能如下: 按钮:添加数据库表。 按钮:移去数据库表。 按钮:添加数据库表间的联接。 按钮:显示SQL窗口。 按钮:最大化上部分窗口。 按钮:确定查询去向。4使用查询设计器创建查询使用查询设计器创建查询使用“查询设计器”创建前面“查询向导”创建查询例子,具体步骤如下:(1)进入“查询设计器”窗口,添加stud表 ,如图所示。(2)选择查询需要的字段(3)设置查询条件(4)保存查询1查询的运行查询的运行运行查询的方法

4、有以下5种: 在“查询设计器”窗口中,选择【查询】|【运行查询】命令。 在“查询设计器”窗口中,右击“查询设计器”窗口,选择快捷菜单中的【运行查询】命令。 选择【程序】|【运行】命令。弹出“运行”对话框,在对话框中,选择所要运行的查询文件,单击“运行”按钮。 在“项目管理器”窗口中,选择要运行的查询文件,单击右边的“运行”按钮。 在“命令”窗口中,键入 DO 。例如,DO 查询1.qpr。8.1.3 查询的运行与修改查询的运行与修改2查询的修改查询的修改修改可以用以下3种方法: 在“项目管理器”窗口中,选择要修改的查询文件,单击右边的“修改”按钮,进入“查询设计器”窗口中修改。 选择【文件】|

5、【打开】命令,在“打开”对话框中,选择所要修改的查询文件,单击“确定”按钮,进入“查询设计器”窗口中修改。 在命令窗口中,键入 MODIFY QUERY 。3查询去向的设置查询去向的设置 单击“查询设计器”工具栏中的“查询去向”按钮或在系统菜单中单击【查询】|【查询去向】命令,弹出“查询去向”对话框,如图所示。其中共包含7个查询去向,各项的含义见表5-1。1多表查询的创建2交叉表查询的创建 交叉表是类似电子表格形式来表现二维分析数据的一种表。例如,在学生成绩总表中,是由学生“姓名”和本学期的各门“课程名称”构成了一个二维表,此表的交叉点为“成绩”的分值。 8.1.4 复杂(多表)查询的设计SQ

6、L语言的基本概念语言的基本概念SQL语言支持关系型数据库的三级模式结构。其中外模式对应于视图(View)和部分基本表(Base Table),模式对应于基本表,内模式对应于存储文件。基本表是本身独立存在的表,在SQL语言中一个关系对应一个表。一些基本表对应一个存储文件,一个表可以带若干索引,索引存放在存储文件中。存储文件的逻辑结构组成了关系型数据库的内模式。而存储文件的物理文件结构是任意的。1综合统一综合统一 SQL语言集数据定义(DDL)、数据操纵(DML)、数据管理(DCL)的功能于一体,语言风格统一,可以独立完成数据库的全部操作,包括定义关系模式、录入数据及建立数据库、查询、更新、维护数

7、据、数据库的重新构造、数据库安全性等一系列操作的要求,为数据库应用系统开发者提供了良好的环境。 2高度非过程化高度非过程化3面向集合的操作方式面向集合的操作方式4以同一种语法结构提供两种使用方式以同一种语法结构提供两种使用方式5语言简洁,易学易用语言简洁,易学易用SQL语言的特点语言的特点8.2.1 SQL中的数据查询语句中的数据查询语句 数据库中的数据很多时侯是为了查询的,因此,数据查询是数据库的核心操作。而在SQL语言中,查询语言中有一条查询命令,即SELECT语句。1 基本查询语句基本查询语句【格式】SELECT ALL | DISTINCT FROM 【功能功能】无条件查询。无条件查询

8、。【说明】ALL: 表示显示全部查询记录,包括重复记录。 DISTINCT: 表示显示无重复结果的记录。【例8-1】显示STUD(学生信息数据表)中的所有记录。SELECT * ;FROM STUD命令中的*表示输出显示所有的字段,数据来源是STUD表,表中的内容以浏览方式显示。【例8-2】显示STUD(学生信息数据表)中的所有的学号及与之对应的姓名,同时能去除重名。SELECT DISTINCT 学号,姓名学号,姓名 ;FROM STUD【例8-3】显示SC(课程成绩表)中的所有记录,并将成绩一项乘以0.7。SELECT 学号,课程号,成绩学号,课程号,成绩*0.7 AS 成绩成绩 FROM

9、 SC2 带条件(带条件(WHERE)的查询语句的查询语句【格式】SELECT ALL | DISTINCT FROM WHERE 【功能】从一个表中查询满足条件的数据。【说明】由一系列用AND 或 OR 连接的条件表达式组成,条件表达式的格式可以是以下几种: (1)。(2)。(3)ALL()(4) ANY | SOME ()(5) NOT BETWEEN AND (6)NOT EXISTS ()(7) NOT IN (8) NOT IN ()(9) NOT LINK SQL支持的关系运算符如下:、!、。【例8-4】显示STUD表中所有男生记录的学号,姓名和性别字段值。SELECT 学号,姓名

10、,性别学号,姓名,性别 ;FROM STUD WHERE 性别性别=男男【例8-5】显示STUD表中出生日期在85年之间的学生的学号,姓名,出生日期。SELECT 学号,姓名,出生日期学号,姓名,出生日期 ;FROM STUD ;WHERE 出生日期出生日期 BETWEEN 01/01/85 AND 12/31/86【例8-6】显示STUD表中姓李的学生的学号,姓名,出生日期。SELECT 学号,姓名,出生日期学号,姓名,出生日期; FROM STUD ;WHERE 姓名姓名 LIKE “李李%”2. SQL的复杂查询的复杂查询(1)连接查询)连接查询 【说明说明】在一个数据库中的多个表之间一

11、般都存在在一个数据库中的多个表之间一般都存在着某些联系,在一个查询语句中同时涉及到两个或两着某些联系,在一个查询语句中同时涉及到两个或两个以上的表时,这种查询称之为连接查询(也称为多个以上的表时,这种查询称之为连接查询(也称为多表查询)。在多表之间查询必须处理表与表之间的连表查询)。在多表之间查询必须处理表与表之间的连接关系。接关系。 SELECT ALL | DISTINCT FROM ,表,表2. WHERE 【例8-7】查询并显示各个学生的学号,姓名,各科成绩及课程名。SELECT a.学号,学号,a.姓名,姓名,b.课程名,课程名,c.成绩成绩 ;FROM STUD a,COURSE

12、b,SC c ;WHERE a.学号学号=c.学号学号. AND .b.课程号课程号=c.课程号课程号或或SELECT 学号,学号,a.姓名,姓名,b.课程名,课程名,c.成绩成绩 ;FROM STUD ,COURSE ,SC ;WHERE STUD.学号学号= SC .学号学号. AND . COURSE.课程号课程号= SC.课程号课程号【例8-8】查询并显示各个学生所学课程的情况。SELECT STUD.学号,学号,STUD.姓名,姓名,COURSE.课程名课程名 ;FROM STUD,SC,COURSE ;WHERE STUD.学号学号=SC.学号学号. AND .SC.课程号课程号=

13、COURSE.课程号课程号(2)连接问题)连接问题在SQL语句中,在FROM子句中提供了一种称之为连接的子句,连接分为内连接和外连接,外连接又可分为左外连接、右外连接和全外连接。1)内连接)内连接内连接是指包括符合条件的每个表的记录,也称之为全记录操作。而上面两个例子就是内连接。【例8-9】查询并显示各个学生的学号,所学课程及课程成绩。SELECT SC.学号,学号,COURSE.课程名,课程名,SC.成绩成绩 ;FROM SC,COURSE ;WHERE SC.课程号课程号=COURSE.课程号课程号如果采用内连接方式,则命令如下:SELECT a.学号,学号,b.课程名,成绩课程名,成绩

14、;FROM SC a INNER JOIN COURSE b ON a.课程号课程号=b.课程号课程号将会得到完全相同的结果。2)外连接)外连接外连接是指把两个表分为左右两个表。右外连接是指连接满足条件右侧表的全部记录。左外连接是指连接满足条件左侧表的全部记录。全外连接是指连接满足条件表的全部记录。(3)嵌套查询)嵌套查询 在SQL语句中,一个SELECTFROMWHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询或子查询。【例8-10】显示“李宁”所在班级的学生名单。SELECT 学号,姓名,班级名学号,姓名,班级名 ;FR

15、OM STUD ; WHERE 班级名班级名=(SELECT 班级名班级名 FROM STUD WHERE 姓名姓名=李宁李宁)(4)分组与计算查询)分组与计算查询【格式格式】SELECT ALL | DISTINCT FROM WHERE GROUP BY HAVING ORDER BY ASC | DESC 【功能】包括有排序、函数运算和谓词演算【例8-11】按出生日期降序显示STUD表中的学号,姓名,出生日期。SELECT 学号,姓名,出生日期学号,姓名,出生日期 ;FROM STUD ;ORDER BY 出生日期出生日期 DESC【例8-12】按成绩升序显示SC表中的学号,课程号,成绩

16、。SELECT 学号,课程号,成绩学号,课程号,成绩 ;FROM SC ;ORDER BY 成绩成绩【例8-13】按班级分类显示学生的姓名,课程名,成绩,同一班级按分数排序。SELECT a.姓名,姓名,a.班级名,班级名,c.课程名,课程名,b.成绩成绩 ;FROM STUD a,SC b,COURSE c ;WHERE a.学号学号=b.学号学号 AND b.课程号课程号=c.课程号课程号;ORDER BY a.班级名,班级名,b.成绩成绩;【例8-14】显示成绩在80至90之间的学号,姓名,课程名和成绩。SELECT a.姓名,姓名,c.课程名,课程名,b.成绩成绩 FROM STUD

17、a,SC b,COURSE c WHERE a.学号学号=b.学号学号 AND b.课程号课程号=c.课程号课程号 AND b.成绩成绩 BETWEEN 80 AND 90【例8-15】显示计算机系学生的成绩。SELECT a.姓名,姓名,a.系别代号,系别代号,c.课程名,课程名,b.成绩成绩 ;FROM STUD a,SC b,COURSE c ; WHERE a.学号学号=b.学号学号 AND b.课程号课程号=c.课程号课程号 AND a.系别代号系别代号=“01”【例8-16】显示各班总人数。SELECT 班级名,班级名,COUNT(班级名)班级名) AS 总人数总人数 ;FROM

18、STUD ;GROUP BY 班级名班级名【例8-17】显示计算机系的学生及所有男学生。SELECT 学号,姓名,系别代号,性别学号,姓名,系别代号,性别 ;FROM STUD ;WHERE 系别代号系别代号=01 UNION ; SELECT 学号,姓名,系别代号,性别学号,姓名,系别代号,性别 ; FROM STUD ; WHERE 性别性别=男男【例8-18】显示选修了英语或数学科目的学生学号。SELECT 学号,课程号学号,课程号 FROM SC ; WHERE 课程号课程号=“01” UNION ; SELECT 学号,课程号学号,课程号 ;FROM SC ;WHERE 课程号课程号

19、=“02”【例8-19】显示计算机系男生的名单。SELECT 学号,姓名,系别代号,性别学号,姓名,系别代号,性别 ;FROM STUD ;WHERE 系别代号系别代号=“01” AND 性别性别=“男男”【例8-20】显示既选修了01课程又选修了02课程学生的名单。SELECT 学号学号 ;FROM SC ; WHERE 课程号课程号=“01” AND 学号学号 IN ; (SELECT 学号学号 FROM SC WHERE 课程号课程号=“02”)【例8-21】显示计算机系非男生的名单。SELECT 学号,姓名,系别代号,性别学号,姓名,系别代号,性别 ; FROM STUD ; WHER

20、E 系别代号系别代号=“01” AND 性别性别=“女女”【例8-22】显示选修了01课程而没有选修02课程学生的名单。SELECT 学号学号 ;FROM SC ;WHERE 课程号课程号=“01” AND 学号学号 NOT IN ;(SELECT 学号学号 FROM SC WHERE 课程号课程号=“02”)(5)查询去向)查询去向默认情况下,查询输出到一个浏览窗口,用户在“SELECT”语句中可使用INTO|TO FILE|TO SCREEN| TO PRINTER子句选择查询去向:INTO ARRAY 数组名:将查询结果保存到一个数组中。CURSOR:将查询结果保存到一个临时表中。DBF

21、 | TABLE :将查询结果保存到一个永久表中。TO FILEADDITIVE:将查询结果保存到文本文件中。如果带“ADDITIVE”关键字,查询结果以追加方式添加到指定的文件,否则,以新建或覆盖方式添加到指定的文件。TO SCREEN:将查询结果保在屏幕上显示。TO PRINTER:将查询结果送打印机打印。8.3.1 视图简介视图是一个定制的虚拟逻辑表,视图中只存放相应的数据逻辑关系,并不保存表的记录内容,但可以在视图中改变记录的值,然后将更新记录返回到源表。 视图与查询在功能上有许多相似之处,但又有各自特点,主要区别如下: 功能不同:视图可以更新字段内容并返回源表,而查询文件中的记录数据

22、不能被修改。 从属不同:视图不是一个独立的文件而从属于某一个数据库。查询是一个独立的文件,它不从属于某一个数据库。8.3 建立视图建立视图 访问范围不同:视图可以访问本地数据源和远程数据源,而查询只能访问本地数据源。 输出去向不同:视图只能输出到表中,而查询可以选择多种去向,如表、图表、报表、标签、窗口等形式。 使用方式不同:视图只有所属的数据库被打开时,才能使用。而查询文件可在命令窗口中执行。一、一、 本地视图的创建本地视图的创建1使用本地视图向导创建本地视图使用本地视图向导创建本地视图2使用视图设计器创建本地视图使用视图设计器创建本地视图远程视图是通过ODBC从远程数据源建立的视图。所谓O

23、DBC即Open DataBase Connectivity (开放式数据互连)的英语缩写,它是一个标准的数据库接口,以一个动态连接库(DLL)方式提供的。创建ODBC数据源可以用二种方法建立。第一种方法是利用 “连接设计器”中“新的数据源”创建,第二种方法是利用在windows系统的“控制面板”中启动“ODBC数据源(32位)”应用程序。 1 1更新数据更新数据在在“视图设计器视图设计器”中,中,“更新条件更新条件”选项卡控制对数据源选项卡控制对数据源的修改(如更改、删除、插入)应发送回数据源的方式,的修改(如更改、删除、插入)应发送回数据源的方式,而且还可以控制对表中的特定字段定义是否为可

24、修改字段,而且还可以控制对表中的特定字段定义是否为可修改字段,并能对用户的服务器设置合适的并能对用户的服务器设置合适的SQLSQL更新方法。更新方法。2 2修改视图修改视图在在“项目管理器项目管理器”中,选择中,选择“数据数据”选项卡,选定要修改选项卡,选定要修改的的“本地视图本地视图”或或“远程视图远程视图”,单击右边的,单击右边的“修改修改”按按钮,进入钮,进入“视图设计器视图设计器”进行修改。进行修改。二、二、 使用视图的有关操作使用视图的有关操作3删除视图删除视图 在在“项目管理器项目管理器”中,选择中,选择“数据数据”选项卡,选定要修选项卡,选定要修改的改的“本地视图本地视图”或或“远程视图远程视图”,单击右边的,单击右边的“移去移去”按按钮,单击提示框中钮,单击提示框中“移去移去”按钮即可删除。按钮即可删除。4浏览或运行视图浏览或运行视图 5显示显示SQL语句语句在在“视图设计器视图设计器”窗口。可用下面三种方法之一察看窗口。可用下面三种方法之一察看SQL语语句:句: 单击单击“视图设计器视图设计器”工具栏中工具栏中“SQL”按钮。按钮。 右击右击“视图设计器视图设计器”窗口,选择窗口,选择 “察看察看 SQL”命令。命令。 在系统菜单中选择在系统菜单中选择【查询查询】|【查看查看SQL】

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

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com