第六章 数据库层次结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SELECT-FROM-WHERE-GROUP BY-ORDER BY-INTO
SELECT子句:说明要查询的数据,对应于【查询设计器】中的 【字段】选项卡。 FROM 子句 :说明要查询的数据来自哪个表或哪些表,对应于 【查询设计器】中【添加表或视图】操作。
WHERE 子句 :说明查询条件,对应于【查询设计器】中的【筛 选】选项卡。
第2节 数据查询
二、简单查询
【例6-4】检索出经贸系和信息系贫困学生的学号、姓名和所在班级。 命令:select 学号,姓名,班级 from 学生; where 家庭情况="贫困" AND (系="经贸系" OR 系="信息系")
说明:这个SQL语句较长,分为两行来写,“;”为续行符;这 个查询的条件很简单,但初学者很容易出错,往往把查询要求 中的“和”理解成逻辑运算符中的“AND”,最后的查询条件 写为“where 系="信息系" AND 系="经贸系"”,从而查不到符 合条件的记录。
第2节 数据查询
四、嵌套查询
所谓嵌套查询就是,查询所输出的信息来自一个表,而 查询的条件却涉及到一个或多个表。 【例6-7】检索至少有一个学生欠费的系。 命令:select DISTINCT 系 from 学生 where 学号 IN; (select 学号 from 交费 where 欠交金额>0) 说明:这个检索命令由两个SELECT子句构成,即内层查 询(子查询)和外层查询,子查询查到的结果是欠费学生的学 号,外层查询在利用这个学号在学生表中查找欠费学生所在的 系,因为查询的结果有重复,而我们只对欠费的系感兴趣,所 以,用DISTINCT关键词去掉了重复值。 注意:子查询用一对圆括号括起来,且子查询不能嵌套。
(1)是一种一体化的语言,包括数据定义、数据查询、数 据操纵和数据控制功能。 (2)是一种高度非过程化的语言; SQL语言非常简洁 。 (3) SQL既是自含式语言,又是嵌入式语言,可以用同一 种语法结构提供两种使用方式。 (4) SQL语言采用面向集合的操作方式;核心是查询。
第2节 数据查询
一、SELECT语句的语法 SELECT命令的常用格式如下:
第2节 数据查询
四、嵌套查询
【例6-8】检索和会计学专业收费相同的专业。 命令:select 专业简称 from 专业; where 专业简称 !="会本" AND 学费=; (select 学费 from 专业 where 专业简称="会本") 说明:命令用专业简称 !=“会本” 条件来去掉“会计学”专业 本身
第2节 数据查询
三、简单的联接查询
【例6-6】检索每个学生所在专业与应交的学费,所住公寓与住 宿费的情况。 命令:select 学号,姓名,专业.专业简称,学费,公寓.公寓类别,住宿 费; from 学生,专业,公寓; where 学生.专业=专业.专业简称 AND 学生.公寓类别=公 寓.公寓类别
第2节 数据查询
二、简单查询 【例6-1】检索公寓表中的所有记录。 命令:select * from 公寓 说明:通配符“*”来设定返回表中的所有 列 【例6-2】从学生表中检索所有系。 命令1:select 系 from 学生 命令2:select DISTINCT 系 AS 系部名称 from 学生 说明:DISTINCT关键词的作用是去掉重复值,AS指定了输 出字段的标题。 【例6-3】检索学费不低于4000元的专业简称及其收费情况。 命令:select 专业简称,学费 from 专业 where 学费>=4000
国家级“十一五”规划教材配套电子教案
第6章
关系数据库标准语言SQL
Leabharlann Baidu
本章内容
第1节 第2节 第3节 第4节 SQL 概述 数据查询 数据操纵 数据定义
第1节 SQL 概述
一、SQL语言简介 SQL(Structured Query Language)--结构化查询语言, 其主要功能是同各种数据库建立联系,进行沟通。目前,绝大 多数流行的关系型数据库管理系统,如Oracle,Sybase, Microsoft SQL Server,Access等都采用了SQL语言标准。 二、SQL语言的特点:
第2节 数据查询
三、简单的联接查询
【例6-5】检索欠费学生的基本情况和所欠金额。 分析:查询需要输出的信息:学生情况和欠费金额,分别来 源于学生表和交费表,分析得知两表之间存在一对一的联系, 可通过公共字段“学号”建立。这样的查询一般用联接查询来 实现。 命令:select 学生.* ,欠交金额 from 学生,交费; where 学生.学号=交费.学号 AND 欠交金额>0 说明:“学生.*” 代表学生表中所有的字段;当from 之后有 多个表时,含有公共字段的表达式,必须用表名前缀直接指明 公共字段所属的表,如“学生.学号=交费.学号”,而非公共字 段则可省略表前缀,如“欠交金额”。
GROUP BY 子句 :用于对查询结果进行分组,对应于【查询设计 器】中的【分组】选项卡。
第2节 数据查询
一、SELECT语句的语法(续) 查询结果输出选项 :来指定查询结果的输出去向,对应于 【查询设计器】中【查询去向】对话框。 查询结果显示选项 :[ALL|DISTINCT] [TOP n[PERCENT]]关键 词用来控制查询结果的显示情况,对应于【查询设计器】中的 【杂项】选项卡。
第2节 数据查询
五、简单的计算查询
在查询中,还可以加入运算符,如算术运算符和函数运算 符,对原始表中的数据进行计算。常用的统计函数有:计数 函数COUNT()、求和函数SUM()、求平均值函数AVG ()、求最大值函数MAX()、求最小值函数MIN()。
【例6-9】输出每个学生的学号,姓名和年龄。 分析:表中并没有年龄字段,需要根据出生日期计算 每个人的年龄。 命令:select 学号,姓名,YEAR(DATE())-YEAR(出生日 期) AS 年龄 from 学生 【例6-10】算出生源所在地的数目。 命令:select COUNT(DISTINCT 籍贯) from 学生