多表连接

-- 第三章 多表查询
-- 从多个表中获取数据
--------------------------------------------
-- oracle的多表连接写法:将连接条件写在where子句中
-- sql99标准写法
-----------------------------------------------------

-- oracle的多表连接写法:将连接条件写在where子句中
select * from emp;
select * from dept;
-- 笛卡尔积 多表连接没有连接的条件
select * from emp,dept; -- 60 条数据  15*4=60
1、查询员工姓名、员工编号、工作 、部门编号、工作地点、部门名称
-- 注意:
		-- ①连接条件中的列名相同时,使用表名.列名规定列
		-- ②select字句中不明确的列使用表名.列名规定列(歧义列名)
		-- ③在WHERE子句中书写连接条件
		-- ④N个表相连时,至少需要N-1个连接条件
-- 等值连接
select ename,empno,job,dept.deptno,loc,dname from emp,dept where emp.deptno=dept.deptno
-- 使用AND运算符增加其它查询条件
2、查询工作在20号部门的员工姓名、员工编号、工作 、部门编号、工作地点、部门名称
select ename,empno,job,emp.deptno,loc,dname from emp,dept where emp.deptno=dept.deptno and emp.deptno=20;

-- 歧义列名
在用到多个表时可以使用表名作前缀来限定列;
通过使用表前缀可以提高性能;
通过使用列的别名可以区分来自不同表但是名字相同的列
select ename,empno,job,emp.deptno,loc,dname from emp,dept 
where emp.deptno=dept.deptno and emp.deptno=20; -- 效率较低

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值