oracle多表查询之内连接,外连接语句总结

后期会补充建表语句。

现有两张表,westemp员工表,有(wtdempid,wtdempname,wtddeptid)列,westdept部门表,有(wtddeptid,wtddeptname,wtddeptaddress)列.其中westemp.wtddeptid可以等于westdept.wtddeptid.

1.交叉连接:(用于产生笛卡尔积)(两种写法)

1.1  select * from westemp a cross   join westdept b--交叉连接,用于生成笛卡尔积
1.2 .select * from westemp a,westdept b

2.自然连接(自动找寻消除笛卡尔积的条件)

select * from westemp a natural   join westdept b--自然连接
3.内连接(自己指定条件消除笛卡尔积)

3.1 select * from westemp a  inner join westdept b on a.wtddeptid=b.wtddeptid--内连接,
  3.2 select * from westemp a          join westdept b on a.wtddeptid=b.wtddeptid--内连接,

3.3 select * from westemp a,westdept  b where a.wtddeptid=b.wtddeptid--内连接,

4.全外连接

select * from westemp a full outer join westdept b on a.wtddeptid=b.wtddeptid--全外连接
5.右外连接

5.1 select * from westemp a right outer join westdept b on a.wtddeptid=b.wtddeptid--右外连接

5.2 select * from westemp a,westdept b where a.wtddeptid=b.wtddeptid(+)--右外连接

6.左外连接

6.1select * from westemp a left outer join westdept b on a.wtddeptid=b.wtddeptid--左外连接

6.2select * from westemp a,westdept b where a.wtddeptid(+)=b.wtddeptid--左外连接

多表连接定义

http://www.cnblogs.com/westward/p/5148028.html

时间: 2024-12-13 11:26:03

oracle多表查询之内连接,外连接语句总结的相关文章

07_MySQL DQL_多表查询_等值内连接

#6:连接查询/*含义:多表查询,当查询的字段来自多个表 笛卡尔积: 表1,m行:表2,n行: 表1,表2 = m*n行发生原因:表1的每行和表2的n行拼接,形成n行,最终得到m*n行如何避免:增加连接条件 连接查询的分类: 按年代分类: sql92标准[mysql只支持该标准的内连接,一部分外连接] sql99标准[推荐]mysql支持内连接 外连接(左右连接) 交叉连接 按功能分类: 内连接 等值连接 非等值连接 自连接 外连接 左连接 右连接 全连接 交叉连接*/USE girls; #

内连接 外连接 交叉连接

数据库表连接大致分为三种:交叉连接.内连接.外连接 交叉连接(CROSS JOIN):其实就是内连接的一种特例,不带查询条件 内连接(INNER JOIN):相等连接.不等连接.自然连接 外连接(OUTER JOIN):左外联接.右外链接.全外连接(全外连接只有部分RDBMS系统可以做到,例如Oracle.做不到的有MySQL.SQL Server.Access) 交叉连接: 最简单,返回多张表每一行相乘的结果,也就是笛卡尔积.关键字是 CROSS JOIN 写法有三种:CROSS JOIN ,

oracle系统表查询

oracle查询用户下的所有表 select * from all_tab_comments -- 查询所有用户的表,视图等select * from user_tab_comments -- 查询本用户的表,视图等select * from all_col_comments --查询所有用户的表的列名和注释.select * from user_col_comments -- 查询本用户的表的列名和注释select * from all_tab_columns --查询所有用户的表的列名等信息

Oracle锁表查询和解锁方法

数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remove DQL:数据库查询语言,关键字:select oracle表在什么情况下会被锁住 DML锁又可以分为,行锁.表锁.死锁 行锁:当事务执行数据库插入.更新.删除操作时,该事务自动获得操作表中操作行的排它锁. 表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL

oracle 字典表查询

1.oracle 字典表查询 /*显示当前用户*/ show user 在sql plus中可用,在pl sql中不可用 /*查看所有用户名*/ select username,user_id,created from all_users; /*查看当前用户的用户详情*/ select username,user_id,account_status,lock_date,expiry_date,default_tablespace,temporary_tablespace,created,init

oracle 多表查询

oracle 多表查询  1对多    多个数据放到一个字段内 select  id,zhzxm,fzhzxm,ltrim(max(sys_connect_by_path(xm, ',')), ',') xm from ( select id,zhzxm,fzhzxm,xm,row_number() over(partition by id order by lrsj) rn  --标记相同的字段 from (select t2.id id,t2.zhzxm zhzxm,t2.fzhzxm fz

[数据库] Oracle单表查询总数及百分比和数据横向纵向连接

这是最近项目关于SQL语句的,本文简单记录并总结以下几个知识点: 1.如何统计一张表中某个字段的总数,如不同"专业"的学生数及所占百分比: 2.如何联系另一张表进行查询某个字段的总数及百分比: 3.简单介绍decode防止分母为0和trunc保留小数位数等函数: 4.通常复杂的SQL语句会涉及到查询结果横向连接和纵向连接,这里进行介绍. 最近买了本<Oracle查询优化改写技巧与案例·有教无类 落落>,推荐大家也阅读下.后面我也会补充一些相关数据的知识,希望对大家有所帮助吧

左连接,右连接,内连接,外连接, join, left join, right join ,mysql ,oracle

2016-6-12 22:35:51 工作用了一年多的oracle,最近在学mysql, 仔细想想 各种连接,感觉这些概念还是蛮烦人的! 最近整理了一下,分享一下自己的理解,有些东西是借鉴网上并自己吸收了的. 1.不管是什么连接,oracle和mysql的原理是一模一样的,只是有些写法不一样而已.说到写法,这里提一下, select * from A, B where a.filed1=b.filed2; --这是第1种写法, 内连接,这样写,很方便, oracle和mysql通用 select

mysql学习之内、外连接语句

名词: 内连接:自然连接,只有两个相匹配的行才能在结果集中显示 外连接:左外连接.右连接.全外连接 内连接,只显示满足where后条件的列  select   a.*,b.*   from   a   inner   join   b     on   a.id=b.parent_id 左外连接,select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id     左列为主,右表为副表. 右外连接, select