定义: 表连接查询 : 当要查询的数据来自于多个数据源

现在主要有92语法和99语法 –92语法 select 数据 from 数据源1,数据源2… where 行过滤条件 group by 分组字段1,分组字段2… having 组过滤信息 order by 排序字段1,… desc|asc;

执行流程 : from --> where --> group by --> having --> select --> order by

92语法中表 连接条件定义 在where后面

如果要使用的字段来自于多个数据源中都存在,需要指明限定词|出处

一、92语法

1.1笛卡尔积

--笛卡尔积 : 交叉连接

--查询所有员工的信息以及员工所在部门信息

--数据 : 员工信息* 部门信息*

--来源 : 员工表emp ,部门表 dept

select * from emp,dept;

select emp.*,dept.deptno,dept.dname from emp,dept;

--别名

select e.*,d.deptno,d.dname from emp e,dept d;

1.2等值连接

判断两个数据源中的某个字段值相等或者不相等

–表连接条件 : 过滤通过连表产生的不满足要求的表连接数据 –等值连接 : 判断两个数据源中的某个字段值相等或者不相等 –非等值连接 : 判断区间,判断范围的条件 –92语法中表 连接条件定义 在where后面 –如果要使用的字段来自于多个数据源中都存在,需要指明限定词|出处

--员工名称及部门名称

select ename, dname, e.deptno from emp e, dept d where e.deptno = d.deptno;

--找出30部门的员工名称及部门名称:先关联后过滤

select ename, dname, e.deptno

from emp e, dept d

where e.deptno = d.deptno

and e.deptno = 30;

--记录很多时 :先过滤后关联

-- 数据来源: emp (select * from emp where deptno=30) e , dept(select * from dept

where deptno=30) d

select * from emp where deptno = 30;

select * from dept where deptno = 30;

-- 查询的字段:ename, dname, e.deptno

-- 条件:e.deptno=d.deptno , deptno=30

select ename, dname, e.deptno

from (select * from emp where deptno = 30) e,

(select *

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: