第6章关系数据库标准语言SQL

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

相关文档

关系数据库标准语言SQL - 课程内容-PPT文档资料
数据库概论第三章 的关系数据库标准语言SQL -PPT文档资料
1.5关系数据库标准语言SQL-PPT精选文档
电脑版