`

查询内外连接

 
阅读更多
create table tmp3
(
age int,
name char(100)
)
GO

create table tmp3
{
age int,
made char(100)
}
GO

insert into tmp1 values(10,'liwei')
insert into tmp1 values(11,'lijing')
insert into tmp1 values(12,'lijia')


insert into tmp3 values(10,'liwei')
insert into tmp3 values(12,'lijing')
insert into tmp3 values(14,'lijia')

--内连接:从结果中删除其他被连接表中没有匹配行的所有行
select * from tmp1,tmp3 where tmp1.age = tmp3.age
select * from tmp1 join tmp3 on tmp1.age = tmp3.age

age     name       age  name
10 liwei      10  liwei                                  
12 lijia      12  lijing                                                                

--左外连接:保留第一个表中的所有行,但只包含第二个表与第一表匹配的行,第二个表相应的空行被放入NULL值
select * from tmp1 left join tmp3 on tmp1.age = tmp3.age
10 liwei 10       liwei                          
11 lijing NULL NULL
12 lijia 12       lijing                                                                                              

--右外连接:保留了第二个表的所有行,但只包含第一个表与第二个表匹配的行,第一个表相应行被放入NULL值
select * from tmp1 right join tmp3 on tmp1.age = tmp3.age
10 liwei  10   liwei     
12 lijia 12   lijing         
NULL NULL 14   lijia  

--全外连接:把两个表的所有行都显示在结果表周苏红,并尽可能多的匹配数据和连接条件
select * from tmp1 full join tmp3 on tmp1.age = tmp3.age
10 liwei   10  liwei                                     
12 lijia   12  lijing         
NULL NULL 14 lijia                        
11 lijing NULL NULL

--交叉连接(笛卡尔积):两个表的记录进行交叉组合。其中不能有on条件。
select * from tmp1 cross join tmp3
10 liwei   10  liwei                  
11 lijing  10  liwei
12 lijia   10  liwei                              
10 liwei   12  lijing                            
11 lijing  12  lijing                       
12 lijia   12  lijing                             
10 liwei   14  lijia                              
11 lijing  14  lijia                              
12 lijia   14  lijia


create table student
(
student_no int,
name char(100),
group_no int
)

insert into student values(100,'liwei',99)
insert into student values(101,'lijia',100)
insert into student values(102,'lijing',101)

--自连接:指同一个表自身与自身进行连接。如果同一时间需要一个表中两个不同行的信息(一般数据库操作每次只操作其中一行的多列),则需要将表与自身连接。为了更好地理解自身连接,用户可以把一个表想象成两个独立的表。而在from子句中表被列出了两次。
select a.student_no,a.name,b.student_no as 组长编号,b.name as 组长名称 from student a,student b where a.group_no = b.student_no
student_no name    组长编号 组长名称
101 lijia   100     liwei                            
102 lijing  101     lijia                                                                                               

                                                                                              

分享到:
评论

相关推荐

    SQL基本SELECT查询语句_内外连接

    SQL基本SELECT查询语句_内外连接

    数据库内外连接举例

    数据库连接是数据查询和分析的关键部分,理解不同类型的连接可以帮助我们更有效地组合和汇总来自多个表的信息。在设计查询时,应根据实际需求选择合适的连接类型,以确保获取到正确且完整的信息。

    数据库实验报告-数据库的简单查询和连接查询

    - **内外连接操作**:使用SQL语句实现职工和部门表之间的内连接、左外部连接和右外部连接,掌握不同类型的连接查询。 ### 实验环境 - **硬件条件**:个人计算机。 - **软件条件**:Windows XP操作系统,SQL Server...

    数据库————内外连接

    数据库中的内外连接是关系型数据库管理系统(RDBMS)中非常关键的概念,它们允许我们从两个或多个表中检索数据,这些数据基于一个或多个共享列的匹配条件。在SQL中,主要有三种类型的连接:内连接(INNER JOIN)、左...

    精简内外网ip查询工具

    标题 "精简内外网IP查询工具" 暗示了这是一个专为用户设计的轻量级应用程序,用于确定设备当前的互联网连接是内网(局域网)还是外网(广域网)。这个工具可能非常实用,特别是对于需要了解自己网络环境的普通用户或...

    数据库表连接(内外、左右连接).docx

    在关系型数据库管理中,表连接是一种重要的查询操作,它允许从多个相关表中检索数据。连接使得数据间的关联性得以展现,增强了数据查询的灵活性。通常,一个实体的信息可能分散在多个表中,通过连接操作,我们可以...

    sql左外连接、右外连接、内连接、全外连接的区别

    根据题目中给出的数据表`user`和`department`,我们可以通过左外连接查询所有用户的信息及其对应的部门信息。假设表`user`的结构如下: ``` userid username departmentid 1 111111 1 2 222222 2 3 333333 null ```...

    数据库表连接(内外、左右连接).pdf

    数据库表连接是数据库管理系统中用于整合来自多个表的数据的关键操作,尤其在处理复杂查询和关联数据时至关重要。本文主要探讨了四种基本的表连接类型:内连接、外连接(包括左外连接、右外连接)以及交叉连接。 ...

    sql语句的内联外联 经典面试题

    SQL语句的内联外联是一种常见的数据库查询技术,它可以根据不同的连接方式将多个表连接起来,提高查询效率和数据整合性。在面试中,SQL语句的内联外联经典面试题是一个非常重要的考察点。本文将对SQL语句的内联外联...

    MSSQL内外连接(INNER JOIN)语句详解

    MSSQL内外连接(INNER JOIN)语句详解 MSSQL内外连接(INNER JOIN)语句是数据库管理系统中最基本的概念之一。今天,我们将详细讲解MSSQL内外连接(INNER JOIN)语句的概念、分类、使用方法和应用场景。 什么是INNER ...

    mysql数据库设计为表连接设计索引

    本文将深入探讨连接查询的基本原理、表访问顺序对索引设计的影响以及几种常见的连接方法(如循环嵌套连接、合并扫描、哈希连接等),并给出一些实用的设计建议。 #### 连接查询原理 连接查询是指将两个或多个表的...

    解决无线网卡,有线网卡同时上内外网的问题

    但是,每次重启又会丢失,我们可以做成 BAT 批命令文件,将外网 IP 做成参数输入,但是这样还是麻烦:每次重启并拨号上网后需查询外网 IP,再进入运行批命令文件。 解决方法二:永久路由点 为了解决这个问题,我们...

    数据库实验四:SQL数据查询.doc

    * 设计两个内外层互相关的嵌套查询 * 使用EXISTS的嵌套查询 * 使用NOT EXISTS的嵌套查询 4. 汇总和分组查询: * 使用COUNT统计数目的查询 * 使用SUM计算合计的查询 * 一次完成求和、计数、计算平均值的查询 * 查询...

    sql语句的各种查询操作

    sql语句的各种查询操作以及各种连接(内外连接)与各种条件的结合

    ORACLE数据库SQL优化---表连接类型.docx

    Oracle数据库的SQL优化是数据库管理员和开发人员关注的重要领域,特别是在处理复杂的表...通过调整连接顺序、选择合适的连接方法和单表访问策略,以及明智地使用内外连接,我们可以显著提升Oracle数据库的SQL执行性能。

    实验5 数据查询.docx

    - **内外层相关嵌套查询**:子查询结果与外层查询关联。 - **EXISTS**:查询满足子查询存在条件的数据。 - **NOT EXISTS**:查询不满足子查询存在条件的数据。 4. **汇总和分组查询**: - **COUNT**:统计记录...

    基于WEB的网上机票查询和销售系统.doc

    不论身处何地,只要有网络连接,用户都能方便地查询和购买机票,极大地便利了人们的生活。 3. 经济可行性:系统采用开源免费软件,降低了开发成本。长期来看,系统能减少人工售票压力,降低运营成本,提高工作效率...

    SQL的数据查询功能之四---子查询.

    当内层查询返回单个值时,可以使用比较运算符(如>、<、=等)来连接内外层查询。比如,查询成绩高于平均分的学生,我们可以先计算平均分(子查询),然后在外部查询中使用这个值来筛选学生。这使得我们可以动态地...

    Sql Server高级查询练习题及答案

    在SQL Server中,高级查询是数据库管理与分析的关键技能,特别是在使用子查询、内外连接等技术时。这些功能使得我们能够处理复杂的数据关系,提取出有价值的信息。以下将详细讲解这些知识点。 首先,子查询是SQL中...

    oracle分页查询sql

    在涉及到多表联合查询时,Oracle提供了多种连接方式,如`NESTED LOOP`, `HASH JOIN`等。对于分页查询,`NESTED LOOP`在大多数情况下更为高效,原因在于: - `NESTED LOOP`能够根据`ROWNUM`的限制条件提前终止查询,...

Global site tag (gtag.js) - Google Analytics