关系数据库标准语言分解.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.3.4.多表连接查询 1、等值连接和非等值连接 前面的查询都是针对一个表进行的。若一个查询同时涉及两个以上的表,则称之为连接查询。 连接查询中用来连接两个表的条件称之为连接条件或连接谓词,其一般格式为: [表名1.]列名1比较运算符[表名2.]列名2 其中比较运算符主要有:=、、 、 =、=、!=。 此外连接谓词还可以使用下面形式: [表名1.]列名1 BETWEEN[表名2.]列名2AND [表名2.]列名2 当连接运算符为=时,称为等值连接。 使用其他运算符称为非等值连接。 例:查询每个学生及其选修课程的情况。 SELECT 学生.*,选课.* FROM 学生,选课 WHERE 学生.学号=选课.学号; 连接运算中有两种特殊的情况,一种为自然连接,另一种为广义笛卡儿积(连接)。 广义笛卡儿积是不带连接谓词的连接。两个表的广义笛卡儿积即是两表中元组的交叉乘积,其连接的结果会产生一些没有意义的元组,所以这种运算实际很少使用。 若在等值连接中把目标列中重复的属性列去掉则为自然连接。 上例用自然连接完成: SELECT 学生.学号,姓名,性别,年龄,所在系,课程号,成绩 4、自身连接 连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,称为表的自身连接。 例:书上 5、外连接 在通常的连接操作中,只有满足连接条件的元组才能作为结果输出。 如果我们想以学生表为主体列出每个学生的基本情况,若某个学生没有选课,只输出其基本情况信息,其选课信息为空值即可,这时就需要使用外连接。 SELECT 学生.学号,姓名,性别,年龄,所在系,课程号,成绩 FROM 学生,选课 WHERE 学生.学号=选课.学号(*); 外连接的表示方法为:在连接谓词的某一边加符号*(有的数据库系统中用+)。 外连接就好象是为符号*所在边的表(选课表)增加一个“万能”的行,这个行全部由空值组成。它可以和另一个表(学生表)中所有不满足连接条件的元组进行连接。 如果外连接符出现在连接条件的右边,称其为左外连接。 ……………………………………左边,………右外连接。 5.3.5. 嵌套查询 在SQL语言中,一个SELECT-FROM-WHERE语言称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。 例:书P81 上层的查询块称为外层查询或父查询,下层查询块称为内层查询块或子查询。 SQL语言允许多层嵌套查询。 需要特别指出的是:子查询的SELECT语句中不能使用ORDER BY子句, ORDER BY子句只能对最终查询结果排序。 1、带有IN谓词的子查询 在嵌套查询中,子查询的结果往往是一个集合,所以谓词IN是嵌套查询中最经常使用的谓词。 例:书上 2、带有比较运算符的嵌套查询 3、带有ANY或ALL谓词的子查询 ANY运算符用来检查在子查询返回结果中是否有一个满足给定关系的值; ALL………………………………………..所有值是否满足给定关系; 4、带有EXISTS运算符的子查询 带有EXISTS运算的子查询不返回任何数据,只产生逻辑真“TRUE”或逻辑假“FALSE” 例:书上 4.3.6. 组合查询 每个SELEST语句的查询结果是元组的集合,若将多个查询结果集再进行集合运算,就构成SQL的组合查询。 SQL的集合操作有并操作(UNION)、交操作(INTERSECT)和差操作(MINUS) 例:书上 5.4 SQL数据更新 SQL中数据更新包括插入数据、修改数据和删除数据。 1、插入数据 SQL的数据插入语言INSERT通常有两种形式。一种是插入一个元组,另一种是插入子查询结果。 2、修改数据 修改操作语句的一般格式为: UPDATE表名 SET列名=表达式[,列名=表达式]… [WHERE条件]; 3、删除数据 一般格式为: DELETE FROM表名 [WHERE条件]; 4、更新操作与数据库的一致 如果更新操作涉及数据库的多个表或相关数据信息分布在多个表中,则有可能会导致数据的不一致,破坏数据的完整性。 为了解决这个问题,就要保证这些更新操作是一个整体,或者全部完成,或者全部不做。(数据库系统中“事务”的概念)。 5.5 视图 1、视图的概念: 视图是关系数据库系统提供给用户以多种角度观察数据库的数据的重要机制。 视图是根据用户需求建立的一张虚表,可从一个或几个基本表导出。 数据库只存放视图的定义,并不存放视图的数据,数据仍保留在基本表中。 2、视图的作用 (1)、视图能简化用户的操作 (2)、视图可使用户能以多种角度看待同一数据 (3)、视图对重构数据库提供一

文档评论(0)

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

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

1亿VIP精品文档

相关文档