欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库--多表查询

程序员文章站 2022-05-29 21:59:10
...

1.92语法

①语法规则:

SELECT	 table1.column, table2.column
FROM	 table1, table2
WHERE table1.column1 = table2.column2;

 

在where子句中写入连接条件

当多个表中有重名列是,必须在列的名字前加上表名作为前缀

②连接的类型:

  1. 等值连接 --> =

取关系列相同的记录

  1. 非等值连接

取关系列不同的记录

!=, < ,>, >=, <=, between and

3.外连接

左外连接:以左边的表为标准,没有的列则补空;

加号在哪边,哪边为补充的数据。

例:

select *  from emp e ,dept d where e.deptno = d.deptno(+);

 

4.自连接

本表中的一条数据适用本表中的另外一条数据。

③笛卡尔积

Select * from table1,table2,table3

 

2.99语法

①语法

Table (cross,nautral,inner,left,right) join table on condition

适用 on 将连接条件与其它的查询条件分开书写

②连接的类型

1.笛卡尔积(交叉连接)

Cross join

例:

Select * from table cross join table2

 

相当于-->

Select * from table, table2

 

 

2.自然连接

Natural join 基于两个表中列名完全相同的列产生连接

适用:

--两个表有相同名字的列

--数据类型相同

结果:返回从两个表中选出连接列的值相等的所有行

例:

select *from emp natural join dept Where deptno = 10;

 

3.等值连接

Inner join 相当于92的等值连接

例:

Select * from table1 inner join table2 on table1.col = table2.col

 

4.左/右外连接

Left join/right join 以左边/右边表的数据为参考,右边/左边数据不够补null

例:

Select * from table1 left/right  join table2 on table1.col = table2.col

 

5.using连接

Using 就是制定某一列来做自然连接

select e.ename,e.ename,e.sal,deptno,d.loc 
from emp e join dept d using(deptno)  
where deptno=20