`

mysql 多表连接

 
阅读更多

现有表R,S如下:



笛卡尔积

select * from R,S;

 

结果:


注:不需要任何条件。结果为两张表函数相乘(3x3=9)。

 

 

自连接

 

 

select e.empno,e.ename,m.empno,m.ename from emp e,emp m where m.mgr = e.empno; 

 

连接类型

分为三种:交叉连接、内连接、外连接。

 

交叉连接 cross join

没有where子句的交叉连接将产生连接表的笛卡尔积。

 

select * from R cross join S;

 

结果:和笛卡尔积一样,如上图。

 

select * from R cross join S where R.C = S.C;

 

结果:


内连接

内连接分为三种:自然连接、等值连接、非等值连接。

 

自然连接 natural join:在连接条件中使用等于=运算符比较被连接列的列值,但删除连接表中重复列。

 

select * from R natural join S;

 

结果:



 等值连接  :使用等于=比较连接列的列值,在查询结果中列出接连表中的所有列,包括其中的重复列。

 

select * from R  join S where R.C = S.C;

select * from R inner join S where R.C = S.C;

 


非等值连接 :在连接条件中,可以使用其他比较运算符,比较被连接列的列值,如:<、>、!=等。

 

 

外连接

外连接分为三类:全外连接、左外连接、右外连接。

 

左外连接 left join / left outer join

 

select * from R left join S on R.C = S.C;

 

 

左外连接要遍历左表的所有记录,右表没有的用null表示。

 

右外连接 right join / right outer join

 

select * from R right join S on R.C = S.C;

 

 

右外连接要遍历右表所有的记录,左表没有的用null表示。

 

全外连接 full join / full outer join

 

select * from R full join S on R.C = S.C;

 

 

 

 

 

 

 

  • 大小: 8.1 KB
  • 大小: 5.7 KB
  • 大小: 29.2 KB
  • 大小: 12.5 KB
  • 大小: 10.5 KB
  • 大小: 13.8 KB
分享到:
评论
1 楼 Aceslup 2015-12-23  
非常详细,感谢分享。

相关推荐

    数据库系统及原理及MYSQL应用教程多表连接和子查询实验报告

    3. 掌握多表连接的各种方法,包括内连接、外连接等。 4. 掌握子查询的方法,包括相关子查询和不相关子查询。 实验内容及实验器材: 一、实验内容 分组查询、多表连接查询、子查询,具体内容参见实验指导手册。 二、...

    mysql多表连接查询实例讲解

    本篇文章中给大家通过实例代码讲述了mysql多表连接查询的方法,有需要的朋友们可以参考学习下。

    MySQL多表连接的入门实例教程

    主要给大家介绍了关于MySQL多表连接的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    struts2连接mysql多表查询

    struts2连接mysql多表查询

    MYSQL无法远程连接

    解决MYSQL无法远程连接,适合mysql外链。

    MySQL数据库查询优化

    第12课 表扫描与连接算法与MySQL多表连接优化实践 MySQL的单表扫描算法。MySQL的两表连接算法。MySQL的多表连接算法。 MySQL的多表连接的优化技巧。 预计时间1小时 第13课 查询优化的综合实例(一)------TPCH实践...

    Mysql 连接资源Jar

    Mysql 连接资源Jar,Mysql连接jar包.

    VFP 用于连接MYSQL数据库的ODBC

    使用VFP 9.0想连接MYSQL 数据库,连接串都正确了,安装了ODBC但一直接不上,原来 是ODBC版本的问题。64位电脑安装这个ODBC驱动后,VFP就可以连接到MYSQL了。

    MYSQL数据库远程连接

    MYSQL数据库远程连接,例程,需要有亦众的支持库才能编译。

    mysql delete 多表连接删除功能

    单个表的删除: DELETE FROM tableName WHERE columnName = value; 删除表内的所有行: ...多表连接删除: DELETE orders,itrms FROM orders,items WHERE orders.userid = items.userid AND orders.orderid = i

    java连接mysqljava连接mysql

    java连接mysqljava连接mysql

    设置mysql远程连接

    设置mysql数据库远程连接: Windows系统 1、 停止mysql的服务。 2、 进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是c:\mysql,进入c:\mysql\bin 3、 进入mysql数据库服务器 c:\mysql\bin&gt;mysql –u ...

    mysql8和mysql5的连接驱动jar包

    mysql-connector-java-5.1.30.jar 和mysql-connector-java-8.0.19.jar

    18道经典 MySQL 面试题.txt

    3、MySQL多表连接有哪些方式?怎么用的?这些连接都有什么区别?4、MySQL数据库和Redis的区别?5、说一下索引的优势和劣势?6、什么是死锁?怎么解决?7、什么是视图?为什么要使用视图?8、视图有哪些特点?使用...

    MyEclipse连接MySQL数据库报错解决办法

    一般MySQL连接不上,可能有两大原因:1、MyEclipse配置错误 2、MySQL配置不当。 一、我们一般的连接步骤如下: 1、在MyEclipse中连接MySQL数据库:依次点击window–&gt;show view–&gt;other–&gt;MyEclipse Database–&gt;DB ...

    MySQL 使用 SSL 连接配置详解

    本文给大家分享的是如何配置MySQL支持SSL连接方式的方法以及在docker中配置的具体案例,有需要的小伙伴可以参考下

    C#多线程连接mysql,Access

    C#多线程连接mysql,Access并且比较两者的性能 vs2008 Cs3.5

Global site tag (gtag.js) - Google Analytics