第5章 数据操作语句.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 数据操作语句.ppt

第5章 数据操作语句 5.1 数据查询语句 5.5.1 查询语句的基本结构 5.5.1 查询语句的基本结构 5.5.2 单表查询 1. 选择表中的若干列 1. 选择表中的若干列 1. 选择表中的若干列 1. 选择表中的若干列 1. 选择表中的若干列 1. 选择表中的若干列 1. 选择表中的若干列 (1)消除取值重复的行 (2)查询满足条件的元组 比较大小 确定范围 确定集合 字符串匹配 多重条件查询 3. 对查询结果进行排序 4.使用计算函数汇总数据 5.对查询结果进行分组计算 (1)使用GROUP BY 5.1.3 多表连接查询 若一个查询同时涉及两个或两个以上的表,则称之为连接查询。 连接查询是关系数据库中最主要的查询 连接查询包括内连接、外连接和交叉连接等。 连接查询中用于连接两个表的条件称为连接条件或连接谓词。 连接条件的一般格式为: [表名1.]列名1 比较运算符 [表名2.]列名2 两个表的连接列必须是可比较的,即必须是语义相同的列,否则比较将是无意义的。 1.内连接 使用内连接时,如果两个表的相关字段满足连接条件,则从这两个表中提取数据并组合成新的纪录。 内连接查询的两种表示方法 theta方式连接操作是在WHERE子句中执行的(即在WHERE子句中指定表连接条件): FROM 表1 , 表2 WHERE 连接条件 在ANSI 中,连接是在JOIN子句中执行的: FROM 表1 [ INNER ] JOIN 表2 ON 连接条件 1.内连接 执行连接操作的过程: 首先取表1中的第1个元组,然后从头开始扫描表2,逐一查找满足连接条件的元组, 找到后就将表1中的第1个元组与该元组拼接起来,形成结果表中的一个元组。 表2全部查找完毕后,再取表1中的第2个元组,然后再从头开始扫描表2, … 重复这个过程,直到表1中的全部元组都处理完毕为止。 [例46]查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩。 SELECT Sname, Cno, Grade FROM Student JOIN SC ON Student.Sno = SC.Sno WHERE Sdept = 计算机系 或 SELECT Sname, Cno, Grade FROM Student , SC WHERE Sdept = 计算机系 AND Student.Sno = SC.Sno 2.自连接 为特殊的内连接 相互连接的表物理上为同一张表。 必须为两个表取别名,使之在逻辑上成为两个表。 FROM 表1 AS T1 --在内存中生成“T1”表 JOIN 表1 AS T2 --在内存中生成“T2”表 3.外连接 只限制一张表中的数据必须满足连接条件,而另一张表中数据可以不满足连接条件。 theta方式的外连接的语法格式为: 左外连接:列出左边关系中所有的元组 FROM 表1, 表2 WHERE [表1.]列名(+) = [表2.]列名 右外连接:列出右边关系中所有的元组 FROM 表1, 表2 WHERE [表1.]列名= [表2.]列名(+) ANSI方式的外连接的语法格式为: FROM 表1 LEFT | RIGHT [OUTER] JOIN 表2 ON 连接条件 3.外连接 只限制一张表中的数据必须满足连接条件,而另一张表中数据可以不满足连接条件。 ANSI方式的外连接的语法格式为: FROM 表1 LEFT | RIGHT [OUTER] JOIN 表2 ON 连接条件 5.1.5 子查询 在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。 子查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句的 WHERE 或 HAVING 子句内,或其它子查询中. 子查询的 SELECT 查询总是使用圆括号括起来。 子查询也称为嵌套查询. 1. 基于集合的测试 使用子查询进行基于集合的测试的语句的一般格式为: 表达式 [NOT] IN (子查询) 判断一个表达式的值是否在子查询返回的结果集中。 如果该表达式的值与集合中的某个值相等,则此测试为True; 如果该表达式与集合中所有的值均不相等,则返回False。 使用子查询进行基于集合的测试时,子查询返回的结果集中的列的个数和数据类型必须与测试表达式中的列的个数和数据类型相同。 当子查询返回结果之后,外层查询将在筛选条件中使用这个结果。 实际的查询过程为: 确定“刘晨”所在系(执行子查询): S

文档评论(0)

5566www + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6122115144000002

1亿VIP精品文档

相关文档