连接查询:
若一个查询同时涉及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个条件连接在一起就是了。。。主要还是看大家怎么想,怎么用吧。。。
分享到:
相关推荐
实验报告的主题是“数据库表的连接和嵌套查询”,它旨在帮助用户深入理解SQL Server查询分析器的使用,以及如何运用Transact-SQL语言进行多表连接查询和嵌套查询。实验环境为Microsoft Windows XP操作系统搭配...
### 数据库查询1(包括简单,连接,嵌套,集合,综合查询) #### 简单查询 在数据库管理中,简单查询是最基础的操作之一,主要用于检索满足特定条件的数据记录。简单查询通常涉及一个表,并且可以指定某些字段进行...
实验四的目的是让学生熟悉并掌握在数据库环境中进行连接查询、嵌套查询和集合查询的方法。这些是数据库管理系统中常见的查询技巧,对于数据处理和分析至关重要。以下是对各个实验任务的详细解释: 1. **连接查询**...
在处理一对多关系时,MyBatis 提供了多种方式,包括连接查询和嵌套查询,来帮助开发者高效地进行数据操作。同时,MyBatis 还提供了日志处理功能,便于调试和记录数据库操作,提升开发效率。 1. **一对多关联查询** ...
在SQL中,数据查询可以分为单表查询、连接查询、嵌套查询和集合查询四种类型。 单表查询是指从一个表中提取数据的查询,例如SELECT语句。连接查询是指从多个表中提取数据的查询,例如JOIN语句。嵌套查询是指将一个...
4. **JOIN操作的替代**:有时嵌套查询可以替代JOIN操作,特别是在连接较小表或者进行复杂条件筛选时。例如,找出某个供应商提供的所有产品: ```sql SELECT product_name FROM products WHERE supplier_id = ...
-集合查询 -基于派生表的查询 -Select总结 下午上次课学到了嵌套查询-3 今天我们来看一下 带有EXISTS谓词的子查询 3/20 15:30 EXISTS谓词: 存在量词 ∃ 带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值...
**嵌套表集合** **--索引表集合** ``` declare type 集合类型名 is table of 元素类型 index by 下标类型; 变量名集合类型名 begin 集合类型名(唯一下标):=元素; end; --嵌套表集合 declare type 嵌套...
实验06专注于T-SQL语言中的嵌套查询,旨在帮助学生深入理解和应用这一关键的数据库查询技术。嵌套查询允许在一个SELECT语句中嵌入另一个SELECT语句,以实现更复杂的查询逻辑。以下是对实验内容的详细说明: 1. 要求...
4. **子查询与连接操作的比较**:学习者会对比分析子查询和表连接在解决相同问题时的差异,理解它们各自的适用场景和优缺点。 5. **子查询的嵌套层次**:嵌套查询可能包含多个层次,即一个查询中包含另一个查询,...
在这个实验中,你将学习如何使用SQL Server 2000的系统工具,如企业管理器和查询分析器来执行各种数据库操作。 1. **SQL Server 2000的系统工具和交互式建库建表** - **创建数据库和表**:通过企业管理器,你可以...
4. 连接查询与子查询:这两种方法都可以找到同时选修了课程'1'和'2'的学生,但子查询通常更易于理解。 **二、使用比较运算的子查询** 1. 例如,查询比"刘晨"年龄小的所有学生,这可以通过比较子查询返回的"刘晨...
常见的JOIN类型有INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)和FULL JOIN(全连接)。 4. **子查询**:一个查询嵌套在另一个查询中,通常用于比较、筛选或计算。子查询可以在FROM、WHERE或...
本文档总结了数据库系统概论的相关知识点,主要涉及关系数据库标准语言SQL的查询章节,涵盖了查询的基本概念、单表查询、连接查询、嵌套查询、集合查询等内容。 查询的基本概念 查询是数据库系统中最基本和最重要...
在Oracle中,连接查询和子查询以及存储过程与触发器是数据库管理与开发中的核心概念,下面将对这些主题进行深入讲解。 首先,让我们探讨**连接查询**。在数据库操作中,连接查询用于合并两个或更多表的数据,根据...
标题中的“Sql查询语句大集合”意味着这个压缩包包含了大量有关SQL查询的资源,适合初学者和进阶者学习。SQL(Structured Query Language)是用于管理关系数据库系统的标准语言,包括创建、更新、查询和操作数据库等...
在本实验报告中,实验题目是SQL基本表查询,旨在熟练掌握查询语句的一般格式,熟练掌握连接、嵌套和集合查询的使用。 二、实验目的和要求: 实验目的:熟练掌握查询语句的一般格式,熟练掌握连接、嵌套和集合查询...
本实验旨在让学生掌握数据库查询的基本语法和方法,包括 SELECT 语句的根本语法和查询条件表示方法、连接查询的表示及使用、嵌套查询的表示及使用、集合查询的表示及使用等。 一、实验目的: * 掌握 SELECT 语句的...
本实验是为了让学生掌握数据库查询的基本语法和查询条件表示方法,了解连接查询、嵌套查询和集合查询的表示及使用。实验的主要内容包括了 SELECT 语句的基本语法格式和执行方法、查询条件种类和表示方法、连接查询和...
本实验的目的是让学生掌握 SELECT 语句的基本语法和查询条件表示方法,了解查询条件种类和表示方法,掌握连接查询、嵌套查询和集合查询的表示和使用。 一、SELECT 语句的基本语法和查询条件表示方法 SELECT 语句是...