数据库原理与技术(Visual FoxPro) 孙学农 第8章 查询和视图

上传人:E**** 文档编号:89472424 上传时间:2019-05-25 格式:PPT 页数:42 大小:190.50KB
返回 下载 相关 举报
数据库原理与技术(Visual FoxPro) 孙学农 第8章 查询和视图_第1页
第1页 / 共42页
数据库原理与技术(Visual FoxPro) 孙学农 第8章 查询和视图_第2页
第2页 / 共42页
数据库原理与技术(Visual FoxPro) 孙学农 第8章 查询和视图_第3页
第3页 / 共42页
数据库原理与技术(Visual FoxPro) 孙学农 第8章 查询和视图_第4页
第4页 / 共42页
数据库原理与技术(Visual FoxPro) 孙学农 第8章 查询和视图_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《数据库原理与技术(Visual FoxPro) 孙学农 第8章 查询和视图》由会员分享,可在线阅读,更多相关《数据库原理与技术(Visual FoxPro) 孙学农 第8章 查询和视图(42页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

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

6、模式结构。其中外模式对应于视图(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 【功能】无条件查询。 【说明】ALL: 表示显示全部查询记录,包括重复记录。 DISTINCT: 表示显示无重复结果的记录。,【例8-1】显示STUD(学生信息数据表)中的所有记录。 SELECT *

8、; FROM STUD 命令中的*表示输出显示所有的字段,数据来源是STUD表,表中的内容以浏览方式显示。 【例8-2】显示STUD(学生信息数据表)中的所有的学号及与之对应的姓名,同时能去除重名。 SELECT DISTINCT 学号,姓名 ; FROM STUD,【例8-3】显示SC(课程成绩表)中的所有记录,并将成绩一项乘以0.7。 SELECT 学号,课程号,成绩*0.7 AS 成绩 FROM SC,2 带条件(WHERE)的查询语句 【格式】SELECT ALL | DISTINCT FROM WHERE 【功能】从一个表中查询满足条件的数据。 【说明】由一系列用AND 或 OR 连

9、接的条件表达式组成,条件表达式的格式可以是以下几种:,(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 学号,姓名,性别 ; FROM STUD WHERE 性别=“男“ 【例8-5】显示STUD表中出生日期在85年之间的学生的学号,姓名,出生日期。 SELECT 学号,姓名,出生日期 ; FROM

10、STUD ; WHERE 出生日期 BETWEEN 01/01/85 AND 12/31/86,【例8-6】显示STUD表中姓李的学生的学号,姓名,出生日期。 SELECT 学号,姓名,出生日期; FROM STUD ; WHERE 姓名 LIKE “李%”,2. SQL的复杂查询,(1)连接查询 【说明】在一个数据库中的多个表之间一般都存在着某些联系,在一个查询语句中同时涉及到两个或两个以上的表时,这种查询称之为连接查询(也称为多表查询)。在多表之间查询必须处理表与表之间的连接关系。 SELECT ALL | DISTINCT FROM ,表2 WHERE ,【例8-7】查询并显示各个学生的

11、学号,姓名,各科成绩及课程名。 SELECT a.学号,a.姓名,b.课程名,c.成绩 ; FROM STUD a,COURSE 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 STU

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

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

14、名=(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表中的学号,课程号,成绩。 SELECT 学号,课程号,成绩 ; FROM SC ; ORDER BY 成绩,

15、【例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 a,SC b,COURSE c WHERE a.学号=b.学号 AND b.课程号=c.课程号 AND b.成绩 BETWEEN 80 AND 90,【例8-15】

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

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

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

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