--学生与书的关系,每本书只能属于一个学生 create table tb_student( student_id number,--学号 student_name varchar2(30), student_sex char(1),--性别 F/M student_age number,--年龄 student_birthday date,--学生出生日期 constraint pk_student primary key(student_id) ); insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday) values (seq_student.nextval, '阿Q', 'F', '22', to_date('1991-01-09', 'yyyy-MM-dd') ); insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday) values (seq_student.nextval, '高红成', 'F', '26', to_date('1971-02-12', 'yyyy-MM-dd') ); insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday) values (seq_student.nextval, '李艳', 'F','25', to_date('1981-05-09', 'yyyy-MM-dd') ); insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday) values (seq_student.nextval, '高雄', 'M','21', to_date('1981-05-09', 'yyyy-MM-dd') ); insert into tb_student(student_id, student_name, student_sex, student_age, student_birthday) values (seq_student.nextval, '彭传志', 'M','22', to_date('1981-05-09', 'yyyy-MM-dd') ); --书 create table tb_book( book_id number,--书号 book_name varchar2(32),--书名 student_id number, constraint fk_book_student foreign key(student_id) references tb_student(student_id) ); insert into tb_book values(seq_book.nextval, '语文', '6'); insert into tb_book values(seq_book.nextval, '语文', '7'); insert into tb_book values(seq_book.nextval, '语文', '8'); insert into tb_book values(seq_book.nextval, '语文', '9'); insert into tb_book values(seq_book.nextval, '语文', '10'); insert into tb_book values(seq_book.nextval, '数学', '6'); insert into tb_book values(seq_book.nextval, '数学', '7'); insert into tb_book values(seq_book.nextval, '数学', '8'); insert into tb_book values(seq_book.nextval, '数学', '9'); insert into tb_book values(seq_book.nextval, '数学', '10'); insert into tb_book values(seq_book.nextval, 'English', '6'); insert into tb_book values(seq_book.nextval, 'English', '7'); insert into tb_book values(seq_book.nextval, 'English', '8'); insert into tb_book values(seq_book.nextval, 'English', '9'); insert into tb_book values(seq_book.nextval, 'English', '10'); --左连接,把tb_book作为主表 --注意结果集分布, t只与b相关,t与s毫无关联。t表中没有匹配的记录行,所有字段都为null select * from tb_book b left join tb_student s on b.student_id = s.student_id left join tb_student t on b.student_id = t.student_id and t.student_id in ('6', '7', '8');
结果:
相关推荐
SQL 连接的四种类型:左外连接、右外连接、全连接、内连接 在 SQL 中,连接(JOIN)是一种非常重要的概念,它允许我们从多个表中检索数据。连接可以分为四种类型:左外连接、右外连接、全连接和内连接。每种连接都...
左外连接返回左表(在`LEFT JOIN`或`LEFT OUTER JOIN`之后指定的表)的所有行,即使在右表中没有匹配的行。对于右表中没有匹配的行,结果集中相应列的值将为NULL。例如,如果在`authors`和`publishers`表中,`LEFT ...
本文将深入探讨三种主要的连接类型:左外连接、右外连接和内连接,并通过具体的例子来阐述它们之间的区别。 首先,让我们从内连接(INNER JOIN)开始。内连接返回的是两个表中满足特定连接条件的记录。在示例中,`...
另一方面,"左外连接"(LEFT JOIN)则会返回所有左表(通常是主表)的记录,即使在右表中没有匹配的记录。如果右表有匹配,结果将包含右表的记录;如果没有,相应的字段将填充为NULL。这在处理不完全一对多或多对多...
根据连接的方向和目的,可以分为几种不同的类型:左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)、内连接(INNER JOIN)以及全外连接(FULL JOIN)。下面将详细介绍这四种连接类型,并通过示例来解释它们之间的区别...
本文主要讨论的是内连接(INNER JOIN)和左外连接(LEFT OUTER JOIN)两种类型,并结合实际例子进行详细讲解。 内连接(INNER JOIN)返回两个表中匹配的行。这意味着只有当第一个表的某行与第二个表的某行有匹配的...
左外连接(Left Outer Join)是SQL查询中的一个关键概念,用于合并两个或更多表的数据,保留左侧表格的所有记录,即使右侧表格没有匹配的记录。本文将深入探讨如何在C#中使用ADO.NET或Entity Framework等库来执行左...
主要的连接类型有内连接、左外连接、右外连接和全连接。理解这些连接方式的区别有助于设计更有效的查询,以满足不同的数据需求。 1. **内连接(Inner Join)**: 内连接只返回那些在两个表中都存在匹配的行。...
以下是四种主要的连接类型:内连接、左外连接、右外连接和全连接。 1. **内连接(INNER JOIN)**: 内连接是基于两个表之间的匹配列的值进行的连接,它只返回两个表中存在匹配的行。例如,在`authors`和`...
在SQL Server 2016中,掌握不同的连接类型,特别是左外连接(Left Outer Join),对于高效的数据查询和分析至关重要。左外连接是一种外部连接类型,它在查询时保留了左表(通常是主查询或驱动表)的所有记录,并将...
SQL的四种连接方式是数据库查询中常用的操作,它们分别是内连接(Inner Join)、左外连接(Left Outer Join)、右外连接(Right Outer Join)和全连接(Full Outer Join)。每种连接方式都有其特定的应用场景和返回...
SQL左外连接,右外连接,全连接,内连接四种连接的差异借鉴.pdf
Oracle连接有多中,我是在平常开发项目过程中用到的Oracle左连接进行了简单的阐述。
PostgreSQL 10 基础课程第五章 高级知识左右外连接详解
左连接也称为左外连接,用于从左侧表中检索记录,返回左侧表中的所有记录,并将右侧表中的匹配记录附加到左侧表中。如果右侧表中没有匹配记录,将返回空值。左连接的基本语法为: SELECT * FROM 左侧表 LEFT JOIN ...
外连接(OUTER JOIN)是一种连接操作,用于查询多个表中的数据,但不 sadece 返回符合连接条件的数据行,而是返回左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中的所有数据行。外连接可以分为三种...
外连接分为三种类型:左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)和全外连接(FULL OUTER JOIN)。 **语法**: - **左外连接**: ```sql SELECT column_name(s) FROM table1 LEFT OUTER JOIN ...
- **右外连接(Right Outer Join)**:与左外连接相反,优先显示右侧表的所有记录,左侧表中未找到匹配项时显示为`NULL`。 - 示例代码: ```sql SELECT t.*, s.* FROM teacher t RIGHT JOIN student s ON t.id ...
- 右外连接(RIGHT OUTER JOIN 或 RIGHT JOIN):与左外连接相反,返回右表的所有行,左表中没有匹配的行同样填充NULL。 - 全外连接(FULL OUTER JOIN 或 FULL JOIN):返回两个表的所有行,无论是否存在匹配。如果...