热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

数据库的各种连接查询你是否真了解

数据库的各种连接查询你是否真了解下面就让我们来做个小测试,一一探查常用数据库的连接原理。--数据测试环境准备:SQLcreatetablet1(aint);TablecreatedSQLcreatetablet2(bint);TablecreatedSQLinsertintot1values(1);1rowinserted

数据库的各种连接查询你是否真了解 下面就让我们来做个小测试,一一探查常用数据库的连接原理。 --数据测试环境准备: SQL create table t1(a int); Table created SQL create table t2(b int); Table created SQL insert into t1 values(1); 1 row inserted


数据库的各种连接查询你是否真了解

下面就让我们来做个小测试,一一探查常用数据库的连接原理。

--数据测试环境准备:

SQL> create table t1(a int);

Table created

SQL> create table t2(b int);

Table created

SQL> insert into t1 values(1);

1 row inserted

SQL> insert into t1 values(2);

1 row inserted

SQL> insert into t1 values(3);

1 row inserted

SQL> insert into t2 values(1);

www.2cto.com

1 row inserted

SQL> insert into t2 values(2);

1 row inserted

SQL> insert into t2 values(4);

1 row inserted

SQL> commit;

Commit complete

--内连接,符合条件的行列出,可以看作是两个表的交集

SQL> select t1.*,t2.* from t1 inner join t2 on t1.a=t2.b;

A B

--------------------------------------- ---------------------------------------

1 1

2 2

--交叉连接,即返回两个表的笛卡尔积

SQL> select t1.*,t2.* from t1 cross join t2;

A B

--------------------------------------- ---------------------------------------

1 1

1 2

1 4

2 1

2 2

2 4

3 1

3 2

3 4

--最常用的连接查询,即从两个表的笛卡尔积两进行条件过滤,功能等同inner join,但是效率要底于inner join

SQL> select t1.*,t2.* from t1, t2 where t1.a=t2.b;

A B

--------------------------------------- ---------------------------------------

1 1

2 2

--全连接,符合条件行列出,不符合条件的行也列出,可以看作是两个表的交集

SQL> select t1.*,t2.* from t1 full join t2 on t1.a=t2.b;

A B

---------- ----------

1 1

2 2

3

4

www.2cto.com

--以最左边表的行数为基准,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录,右表记录不足的地方均为NULL

SQL> select t1.*,t2.* from t1 left outer join t2 on t1.a=t2.b;

A B

--------------------------------------- ---------------------------------------

1 1

2 2

3

--同上

SQL> select t1.*,t2.* from t1 left join t2 on t1.a=t2.b;

A B

--------------------------------------- ---------------------------------------

1 1

2 2

3

www.2cto.com

--以最右边表的行数为基准,右表的记录将会全部表示出来,而左表只会显示符合搜索条件的记录,左表记录不足的地方均为NULL

SQL> select t1.*,t2.* from t1 right outer join t2 on t1.a=t2.b;

A B

--------------------------------------- ---------------------------------------

1 1

2 2

4

--同上

SQL> select t1.*,t2.* from t1 right join t2 on t1.a=t2.b;

A B

--------------------------------------- ---------------------------------------

1 1

2 2

4

注意了:以后各种连接可不要乱用了哦。


推荐阅读
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 本文深入探讨了MySQL中的高级特性,包括索引机制、锁的使用及管理、以及如何利用慢查询日志优化性能。适合有一定MySQL基础的读者进一步提升技能。 ... [详细]
  • 本文探讨了如何在SQL Server Reporting Services (SSRS)中利用TOP N功能来筛选和展示数据集中的前N条记录。通过正确的配置图表属性中的筛选器设置,可以轻松实现这一目标。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 本文详细介绍了MySQL InnoDB存储引擎中的Redo Log和Undo Log,探讨了它们的工作原理、存储方式及其在事务处理中的关键作用。 ... [详细]
  • 本文探讨了MySQL中的死锁现象及其监控方法,并介绍了如何通过配置和SQL语句调整来优化数据库性能。同时,还讲解了慢查询日志的配置与分析技巧。 ... [详细]
  • MVC模式下的电子取证技术初探
    本文探讨了在MVC(模型-视图-控制器)架构下进行电子取证的技术方法,通过实际案例分析,提供了详细的取证步骤和技术要点。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 本文介绍了MySQL窗口函数的基本概念、应用场景及常见函数的使用方法。窗口函数在处理复杂查询时非常有用,例如计算每个用户的订单排名、环比增长率、以及动态聚合等。 ... [详细]
  • 本文介绍了如何在 Oracle 数据库中查询重复数据,并提供了多种方法来筛选和删除重复记录,包括基于单个字段和多个字段的重复数据处理。 ... [详细]
  • 美团安全响应中心推出全新配送业务测试活动,带来双重福利,邀您共同参与! ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 解决ADODB连接Access时出现80004005错误的方法
    本文详细介绍了如何解决在使用ADODB连接Access数据库时遇到的80004005错误,包括错误原因分析和具体的解决步骤。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
author-avatar
北达学院树洞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有