`
songshu8312
  • 浏览: 18927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

SQL内连接&左外连接&右外连接&完全连接笔记

    博客分类:
  • SQL
阅读更多

1.创建数据库,插入测试数据

create table student

(

       sno varchar(20) primary key,

       name varchar(20)

);

 

create table course

(

       cid varchar(20),

       sno varchar(20),

       course_name varchar(30),

       primary key(cid,sno),

       foreign key(sno) references student(sno)

);

insert into student values('05138028','罗佳慧');

insert into student values('05138027','肖作为');

insert into student values('05138026','陈先虎');

insert into student values('05138004','胡斌');

insert into course values('C01','05138028','C语言');

insert into course values('C01','05138027','C语言');

insert into course values('C02','05138026','Java语言');

 

Student表

 

 

course表

 

 

2.测试

1)内联接

内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。

内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行

select student.*, course.* from student inner join course on student.sno = course.sno;

(等价于select student.*, course.* from student,course where student.sno = course.sno;)

结果:

 

 

2)左外连接

LEFT JOIN 或 LEFT OUTER JOIN。    

左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

select student.*, course.* from student left join course on student.sno = course.sno;   

结果: 

 

 

3)右外连接

RIGHT JOIN 或 RIGHT OUTER JOIN。    

右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值

select student.*, course.* from student right join course on student.sno = course.sno;

结果:

 

 

 

4)完全外连接

FULL JOIN 或 FULL OUTER JOIN。    

完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值

 

select student.*, course.* from student full join course on student.sno = course.sno;

结果:

 

 

5)交叉连接

CROSS JOIN

交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。

select student.*, course.* from student cross join course

结果:

 

 

分享到:
评论

相关推荐

    sql学习笔记

    sql练习中易错笔记,order by ,group by,distinct,内连接,外连接等,一些mysql和oracle使用的区别:sql4种连接 两个表中有相同的列,根据共有的列值匹配行 left join左外连接,不管左表是否在右表中有匹配行,都...

    oracle_sql笔记

    内连接(INNER JOIN)返回匹配的行,左连接(LEFT JOIN)返回左表所有行及右表匹配行,右连接(RIGHT JOIN)反之,全连接(FULL JOIN)返回所有匹配和不匹配的行。 五、子查询 子查询是在主查询内部的查询,可以用于获取...

    二、MySQL连接查询学习笔记(多表连接查询:内连接,外连接,交叉连接详解)

    2)sql 99标准 **(推荐使用)** :支持内连接、外连接(左外 和 右外)、交叉连接 2.按功能分类: 1)内连接: 等值连接 非等值连接 自连接 2)外连接: 左外连接 ...

    OracleSQL笔记

    - **定义**:外连接包括左外连接、右外连接和全外连接,它们可以返回不满足连接条件的行。 - **语法**: ```sql SELECT [表别名1.字段名1], [表别名2.字段名2] FROM 表1 表别名1, 表2 表别名2 WHERE 表别名1....

    内连接和外连接

    根据连接方式的不同,可以将连接分为几种类型,包括内连接(Inner Join)、左连接(Left Join)、右连接(Right Join)以及全连接(Full Outer Join)。此外,还有分组(Group By)、排序(Order By)、全文搜索等...

    sql多表连接笔记[定义].pdf

    本笔记主要探讨了SQL多表连接的定义、不同类型的连接(如LEFT JOIN, RIGHT JOIN)以及连接顺序对结果的影响。 首先,我们有三个基本的表:学生表(student)、科目表(kemu)和成绩表(chengji)。学生表存储学生...

    Myeclipse连接SQL_SERVER2005笔记

    ### MyEclipse连接SQL Server 2005笔记 #### 一、数据库配置 在进行MyEclipse与SQL Server 2005的连接之前,首先需要确保SQL Server的TCP/IP服务已经正确配置并启用。这一步对于实现两者之间的顺利通信至关重要。 ...

    sqlserver个人学习笔记

    #### 二、SQL连接类型:左联接与右联接 - **左联接**:确保左表的所有记录都会出现在结果集中,即使右表中没有匹配的记录,未匹配的记录的右表字段将被填充为NULL。 - 第一种写法:`LEFT JOIN`关键字显式指定左...

    SQL_Server学习笔记

    在标题“SQL_Server学习笔记”和描述“关于SQL学习的笔记,可以在有SQL基础之上,平时学习或者工作开发时当做查阅资料”中,我们可以得知这份文件是一份SQL Server的学习资料。这部分内容将涵盖SQL Server的基础知识...

    Mysql学习笔记1

    - **定义**:外连接分为左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)和全外连接(FULL OUTER JOIN),可以返回左表、右表或两个表的所有记录,即使它们之间不存在匹配项。 - **特点**: - 左外连接...

    高效SQL学习笔记

    《高效SQL学习笔记》 SQL,全称Structured Query Language,即结构化查询语言,是用于管理关系数据库的标准语言。高效地掌握SQL对于任何IT从业者,尤其是数据分析师、数据库管理员和开发人员来说,都是至关重要的...

    郝斌Sqlserver2005学习笔记

    在SQL Server 2005中,"内连接(Inner Join)"是数据库查询的关键操作之一。内连接用于从两个或多个表中选取那些在所有指定列中都有匹配值的行。"初识内连接(inner join).txt"可能详细介绍了如何使用INNER JOIN...

    SQL学习笔记一

    内连接返回两个表中匹配的行,左连接返回左表所有行及右表匹配的行,右连接反之,全连接则返回所有可能的组合。 在实际工作中,SQL不仅仅用于简单的CRUD操作,还可以用于复杂的查询和分析。比如,我们可以使用`...

    VC++ SQL 学习笔记

    这篇“VC++ SQL 学习笔记”将涵盖如何在VC++环境下集成和使用SQL来处理数据库操作。 首先,我们要理解的是VC++与SQL的结合。在VC++项目中,开发者通常会使用ODBC(Open Database Connectivity)或OLE DB接口来连接...

    经典sql语句笔记(sql 关键字)

    SQL,全称Structured Query Language,是一种用于管理关系数据库的标准语言,包括了数据查询、数据操纵、数据定义和数据控制等功能。以下将详细讲解SQL的基本语法、关键字、函数以及存储过程和视图等重要概念。 一...

    B站Mosh老师sql三小时的课程笔记

    B站Mosh老师SQL三小时的课程笔记 本文是对B站Mosh老师SQL三小时的课程笔记的总结,涵盖了SQL基础知识、SELECT语句、WHERE子句、逻辑操作符、IN操作符、BETWEEN操作符、LIKE操作符和REGEXP操作符等内容。 SQL基础...

    Microsoft SQL Server 2008技术内幕笔记

    【Microsoft SQL Server 2008 技术内幕笔记】主要涵盖了T-SQL查询的执行顺序和语言基础,包括逻辑查询处理的各个阶段以及关系模型的基础概念。 在T-SQL查询中,逻辑查询处理分为以下几个阶段: 1. **From阶段**: ...

    java笔记+sql语句

    Java编程语言是面向对象的、跨...这些笔记可能还会包含对这些概念的实际示例和练习,帮助学习者加深理解并掌握Java编程和SQL数据库操作。通过不断地学习和实践,可以逐渐提升编程技能,为未来的项目开发打下坚实基础。

Global site tag (gtag.js) - Google Analytics