`
king_tt
  • 浏览: 2229374 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL里各种联合查询总结

阅读更多

create database mytest
go
use mytest
go
create table t_dept
(
d_id int primary key identity(1,1),
d_name varchar(20),
d_remark varchar(20)
)
go
create table t_emp
(
e_id int primary key identity(1,1),
d_id int references t_dept(d_id),
e_name varchar(20),
e_sex varchar(4)
)
go
insert into t_dept values('一部','1111');
insert into t_dept values('二部','2222');
insert into t_dept values('三部','3333');
insert into t_dept values('四部','4444');
go
insert into t_emp values(1,'一部A君','男');
insert into t_emp values(1,'一部B君','男');
insert into t_emp values(2,'二部C君','女');
insert into t_emp values(null,'三部D君','男');
go
select * from t_dept;
select * from t_emp;
go
--注:联接查询,哪个表在前,就以哪个表为主表

--内联接(两表标识号相同的所有行)
select * from t_dept a inner join t_emp b on a.d_id=b.d_id ;

1一部111111一部A君男
1一部111121一部B君男
2二部222232二部C君女

--外连接(外联接可以是左向外联接、右向外联接或完整外部联接)

--(1)
select * from t_dept a left outer join t_emp b on a.d_id=b.d_id ;--"左外连接 等同于 左连接"
select * from t_dept a left join t_emp b on a.d_id=b.d_id ;--左连接(所有的部门显示,员工表里部门id为null的显示不出来)

1一部111111一部A君男
1一部111121一部B君男
2二部222232二部C君女
3三部3333NULLNULLNULLNULL
4四部4444NULLNULLNULLNULL

--(2)
select * from t_dept a right outer join t_emp b on a.d_id=b.d_id ;--"右外连接 等同于 右连接"
select * from t_dept a right join t_emp b on a.d_id=b.d_id ;--右连接,员工表所有员工显示,"三部"和"四部"没有员工的部门则该部门不显示

1一部111111一部A君男
1一部111121一部B君男
2二部222232二部C君女
NULLNULLNULL4NULL三部D君男

--(3)
--完整外部联接,返回左表和右表中的所有行
--当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
select * from t_dept a full outer join t_emp b on a.d_id=b.d_id ;
select * from t_dept a full join t_emp b on a.d_id=b.d_id ;

1一部111111一部A君男
1一部111121一部B君男
2二部222232二部C君女
3三部3333NULLNULLNULLNULL
4四部4444NULLNULLNULLNULL
NULLNULLNULL4NULL三部D君男


--笛卡尔积
select * from t_emp,t_dept
select * from t_dept,t_emp
--返回16条数据,左表有4条,右表有4条,返回行数为4*4=16(条),产生笛卡尔积

1一部111111一部A君男
2二部222211一部A君男
3三部333311一部A君男
4四部444411一部A君男
1一部111121一部B君男
2二部222221一部B君男
3三部333321一部B君男
4四部444421一部B君男
1一部111132二部C君女
2二部222232二部C君女
3三部333332二部C君女
4四部444432二部C君女
1一部11114NULL三部D君男
2二部22224NULL三部D君男
3三部33334NULL三部D君男
4四部44444NULL三部D君男

分享到:
评论

相关推荐

    WinForm+SQL多表联合自定义查询

    总结来说,"WinForm+SQL多表联合自定义查询"是一个通过WinForm交互式地构造和执行多表SQL JOIN查询的过程。这个过程涉及到了用户界面设计、SQL查询构造、参数化查询以及数据访问层的实现。熟练掌握这一技术,对于...

    sql基本查询总结(SQL查询语句精华文章)

    SQL 基本查询总结 SQL查询语句精华文章,涵盖了简单查询、联合查询、连接查询等多种查询方式。下面是对SQL基本查询的总结: 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别...

    sql注入之联合查询,最详细的CMS联合查询过程!!!!

    本案例聚焦于CMS(内容管理系统)中的SQL注入,特别是联合查询的利用方法。 【联合查询】是SQL注入的一种技术,允许攻击者合并两个或更多的SELECT语句,以便在不直接访问数据库的情况下获取信息。在这个场景中,...

    只能在PL/SQL中访问联合数组。

    在Oracle数据库的PL/SQL环境中,...总结来说,联合数组是PL/SQL中的一种灵活的数据结构,用于在程序中存储和操作动态数据集合,而`add_months`函数则是处理日期操作的重要工具,两者都是PL/SQL编程中不可或缺的功能。

    sqlserver 支持多表联合查询分页存储过程

    根据提供的信息,我们可以深入探讨如何在SQL Server中创建一个支持多表联合查询并实现分页功能的存储过程。本文将详细介绍存储过程的设计思路、参数解释、实现细节以及可能遇到的问题和解决方案。 ### 一、存储过程...

    【一文看懂SQL系列】分页查询,联合查询 精辟总结

    在SQL语言中,分页查询和联合查询是两种非常实用的操作,它们可以帮助我们高效地管理和检索大规模数据。本文将深入探讨这两个概念,并提供相应的应用场景、语法结构以及注意事项。 一、分页查询 分页查询主要应用...

    简单SQL数据库语句总结——以学生成绩的管理为例描述

    摘要:本文总结了简单 SQL 数据库语句的基本用法,以学生成绩的管理为例进行描述,涵盖了查询结果中的列名显示、精确查找、时间类型变量的处理、集函数、分组、union 联合查询结果、多表查询等多个方面的知识点。...

    SQL结构化查询语言速学宝典(带完整原创目录)

    ### SQL结构化查询语言速学宝典知识点概览 #### 一、SQL简介与应用场景 - **定义**:SQL(Structured Query Language)是一种用于管理关系数据库的标准计算机语言。 - **功能**:支持数据查询、更新、插入、删除等...

    查询重复数据sql语句

    本文将详细介绍如何使用SQL语句来查询表中的重复数据,并基于提供的SQL示例进行深入分析。 ### SQL查询重复数据的核心概念 在开始之前,我们需要了解几个关键的概念: 1. **重复数据**:指的是在数据表中存在多条...

    sql、pl/sql总结 例题

    以上总结了SQL与PL/SQL中关于表的管理、字段的修改与约束设置,以及复杂查询的多个知识点。这些基本操作是数据库管理和数据分析的基石,掌握它们对于理解和使用SQL语言至关重要。通过实际例题的练习,初学者可以加深...

    数据库基础之sql语句总结

    本篇文章将全面总结SQL语句的基础知识,为数据库学习者提供基础指导。 1. **查询操作** - **查表结构**:使用`DESC 数据表名`可以查看表的字段名称、数据类型和是否允许为空等信息。 - **单表查询** - **简单...

    sql查询总结.txt

    根据提供的文件信息,我们可以归纳和总结出SQL查询中的一些核心知识点和应用场景,这些知识点涵盖了从简单的数据检索到复杂的多表联合查询以及数据分组等多种场景。 ### 一、简单查询语句 #### 1. 查看表结构 - **...

    SQL注入基础整理及Tricks总结1

    联合查询(Union Query)是最常见的SQL注入手法之一,它利用了数据库系统允许将多个查询结果合并成一个结果集的特性。例如,假设存在一个查询语句`SELECT column FROM table WHERE condition`,攻击者可以通过在条件...

    oracle分页查询sql

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

    sql注入知识点总结.pdf

    按照注入手法来分,主要类型有联合查询注入(UNION SQL injection)、基于错误的SQL注入(Error-based SQL injection)、基于布尔的盲注(Boolean-based blind SQL injection)、基于时间延迟的盲注(Time-based ...

    SQL Server健康查询

    **解释**:通过多个视图的联合查询,可以获得关于缺失索引的详细信息,包括涉及的表、等值条件、不等式条件以及可能带来的性能提升等。 #### 三、总结 以上提到的几个查询只是SQL Server健康检查的一部分。通过...

    SQL查询语句使用简要(很经典)

    总结,SQL查询语句是数据库管理的基础,熟练掌握简单的查询、联合查询和连接查询,能够有效地管理和分析数据,提升数据处理效率。理解并灵活运用这些基本概念,将有助于你在数据库管理和数据分析方面的能力提升。

    sql注入讲解ppt.pptx

    SQL 注入基础知识点总结 SQL 注入是指 web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法...

    简单的sql语句集合(自己总结)

    它被广泛应用于各种数据库管理系统,如MySQL、Oracle、SQL Server等。以下是一些基础的SQL语句,适合初学者入门学习。 1. **SELECT语句**:这是SQL中最常用的语句,用于从数据库中查询数据。基本语法是`SELECT ...

Global site tag (gtag.js) - Google Analytics