`
有崖生110
  • 浏览: 53539 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

连接查询、嵌套查询和集合查询

 
阅读更多

连接查询:

若一个查询同时涉及2个或以上的表,则称为连接查询。连接查询是关系数据库中最主要的查询,包括等值和非等值连接查询,自然连接查询,外连接查询,复合条件连接查询等。

一、等值和非等值连接

连接查询的时候where子句中用来连接2个表的条件称为连接条件或连接谓词,一般格式为:

[<表名1>.]<列名1>  <比较运算符>  [<表名2>.]<列名2>

其中主要比较运算符:= , > , < , <= , >= , !=(<>) 等

此外还可以用between  and  ,当连接符为=的时候为等值连接,其余的都为非等值连接。

select student.*, course.* from student ,course where student.sno=course.sno;这个就是等值连接

自然连接是一种特殊的等值连接,要求2个关系中进行比较的分量必须是相同的属性组,并在结果中把重复的属性列去掉。


二、外连接

在通常的连接操作中,只有满足连接条件的元组才能作为结果输出。

2个关系S和R在做自然连接的时候,选择2个关系在公共属性上的值相等的元组构成新的关系,此时关系R中某些元组可能在S中不存在公共属性上值相等的元组,造成R中这些元组在操作时候被舍弃了。同理,S的也可能被舍弃。

如果把这些舍弃的元组也保存在结果关系中,而在其他属性上填空值Null,那么这种连接就叫外连接

如果只把左边关系S中要舍弃的元组保留就叫左外连接(left out join或left join

如果只把右边关系R中要舍弃的元组保留就叫右外连接(right out join或right join

select student.*,cno,grade from student left out join course on (student.sno=course.sno);


三、复合条件连接

where子句中可以有多个连接条件 , 称为复合条件连接。如:

select student.sno , name from student ,course where student.sno=course.sno and course.cno='2' and course.grade>90;


四、自身连接

一个表自己与自己连接查询,称为自身连接。主要要为表自身取2个别名。


嵌套查询:

在sql语言中,一个select-from-where语句称为一个查询块。将一个查询块嵌套在另外一个查询块的where子句或having短语的条件中的查询叫做嵌套查询。如:

select name from student where sno in (select sno from course where cno = '2');

上层的查询块称为层查询或父查询,下层查询块称为内层查询或子查询。

子查询select语句中不能用order by 子句,它只能对最终查询结果排序。


嵌套查询中,子查询结果往往是一个集合,所以谓词in是用的最多的。

但是,当确认子查询结果是单值的时候也可以用 = , < , > 等运算符。此时 = 作用和 in 相等。

select sno , cno from course x where grade <= (select avg(grade) from course y where y.sno=x.sno);


集合查询:

集合操作主要包括并操作union,交操作intersect和差操作except。

注意:集合操作各查询结果列数必须相同;对应项的数据类型也必须相同。

select * from student where dept = 'cs' union select  * from student where age<19;

用到差, 交操作的时候把union换掉就是了。


个人而言,这个集合操作貌似没多大用处,只要换成一个and把2个条件连接在一起就是了。。。主要还是看大家怎么想,怎么用吧。。。

分享到:
评论

相关推荐

    数据库查询1(包括简单,连接,嵌套,集合,综合查询)

    txt文本数据库查询 简单查询 连接查询 嵌套查询 集合查询 综合查询

    数据库表的连接和嵌套查询实验报告

    数据库表的连接和嵌套查询 分实验目的 实验题目 实验要求 具体步骤 和实验环境包含语句和截图

    实验四连接、嵌套和集合查询.doc

    适合大学在校学生以及从事计算机行业的人员

    【3.18数据库作业8】SQL练习8 – SELECT(嵌套查询EXISTS、集合查询、基于派生表的查询)

    -集合查询 -基于派生表的查询 -Select总结 下午上次课学到了嵌套查询-3 今天我们来看一下 带有EXISTS谓词的子查询 3/20 15:30 EXISTS谓词: 存在量词 ∃ 带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值...

    嵌套表集合-索引表集合

    **嵌套表集合** **--索引表集合** ``` declare type 集合类型名 is table of 元素类型 index by 下标类型; 变量名集合类型名 begin 集合类型名(唯一下标):=元素; end; --嵌套表集合 declare type 嵌套...

    数据库实验报告 SQL查询 ,子查询组合

    实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000企业管理器和查询分析器创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束...

    数据库原理实验2-数据查询(实验报告含总结体会)

    (3) 掌握SQL的高级查询的使用方法,如分组统计、嵌套查询、集合查询等等。 2 实验内容 2.1 熟悉DBMS的数据查询工具的使用方法 (1)查询分析工具的界面环境 (2)查询分析工具的使用方法 2.2 掌握SQL的基本查询...

    数据库课本例题(数据查询)

    3.嵌套查询(带有IN谓词的子查询、带有比较运算符的子查询、带有ANY(SOME)或ALL谓词的子查询、带有EXISTS谓词的子查询) 4、集合查询(并操作UNION、交操作INTERSECT、差操作EXCEPT) 5.基于派生表的查询

    SQL_Server数据库之创建、查询语句学习集合.docx

    一、完整性与约束 二、数据定义: 三、本课件使用的数据表 四、数据查询 1、查询语句: 2、简单查询: 3、连接查询: 4、嵌套查询: 5、集合查询: 6、本章小结:

    《数据库系统概论》实验报告—数据查询

    《数据库系统概论》第二次实验报告数据查询 ...2、在查询分析器在窗口下用SELECT语句完成连接(嵌套)查询: 验证例33、38、39、40、41、42、45、46 3、在查询分析器在窗口下用SELECT语句完成集合查询: 验证例48、49

    常用数据库查询语句 常用的数据库查询语句

    常用的数据库查询语句,包括单表查询,连接查询,嵌套查询,集合查询,很全面,适合作为查询手册

    数据库实验报告-查询

    一、实验目的 1.掌握查询语句的一般格式; 2.熟练掌握单表查询、连接查询、集合查询、统计查询和嵌套查询。

    精通SQL 结构化查询语言详解

    10.2.2 IN子查询实现集合交和集合差运算 10.2.3 EXISTS子查询  10.2.4 EXISTS子查询实现两表交集  10.2.5 SOME/ALL子查询  10.2.6 UNIQUE子查询  10.3 相关子查询  10.3.1 使用IN引入相关子查询  ...

    数据库基础实验的实验报告附图

    13) 查询选修课程1的学生集合和选修2号课程学生集合的差集 14) 查询李丽同学不学的课程的课程号 15) 查询选修了3号课程的学生平均年龄 16) 求每门课程学生的平均成绩 17) 统计每门课程的学生选修人数...

    SQL查询 数据库 实验报告

    熟练掌握SQL的SELECT简单查询语句的使用。 熟练使用SQL语句进行多表连接查询、嵌套查询、集合查询等复杂查询。 熟练使用GROUP BY、HAVING、ORDER BY 等SQL子语句进行查询数据分组和排序

    学生成绩管理系统

    含详细E-R图,全部SQL语言,实现了...7种查询方式,分别涉及到:集合查询、字符匹配查询、汇总查询、分组查询、连接查询、嵌套查询、带有EXISTS或NOT EXISTS 谓词查询等。 分析并创建了所需要的索引 含源码和操作截图

    SQL文查询语句

    SQL文资源描述,基本查询,嵌套查询,排序,集合运算,连接查询,函数

    精通sql结构化查询语句

    9.6.2 内连接与右外连接的综合应用 9.6.3 UNION集合运算与多表连接应用 9.7 小结第10章 子查询 10.1 子查询的简单应用 10.1.1 子查询概述 10.1.2 在多表查询中使用子查询 10.1.3 在子查询中使用聚合函数 10.1.4 使用...

    数据库综合查询

    1. 掌握SELECT语句的基本语法和查询条件表示方法; 2. 掌握查询条件种类和表示方法; 3. 掌握连接查询的表示及使用; 4. 掌握嵌套查询的表示及使用; 5. 了解集合查询的表示及使用。

Global site tag (gtag.js) - Google Analytics