ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 连接的精典笔记

连接的精典笔记

原创 Linux操作系统 作者:zwc1083 时间:2009-02-25 07:51:10 0 删除 编辑

[表的连接分为:内连接和外连接]------很精典,很精典。
内连接:
select a.a1,a.a2,b.b1,b.b2 from a,b  where a.id=b.id   //这是一种内连接
这是一种记录的完全匹配,表a和表b进行匹配,不匹配的记录不显示。
外连接:分为左连接和右连接
左连接:
  select a.a1,a.a2,b.b1,b.b2 from a,b  where a.id=b.id(+)   //这是一种左连接
     以左边的表(a)为主,全部显示,表a中不匹配的记录也会全部显示出来。
右连接:
  select a.a1,a.a2,b.b1,b.b2 from a,b  where a.id(+)=b.id   //这是一种右连接
     以右边的表(b)为主,全部显示,表b中不匹配的记录也会全部显示出来。
 

[表的子句]

 其中分相关子查询和无关子查询。
 相关子查询:说明子句中的条件与主表的字段有关系。
 无关子查询:说明子句中的条件与主表的字段无关系。                                 
 
 in  :select * from a where a.id in (select b.id from b )  ;
                                not in
     注意:当a.id中有null值时,null值的记录将不会返回记录,切记。
 exists 子句  select * from a where exists (select b.id from b )  ;
                                not exists
 说明:
      select * from a where exists (select * from dual where 1=1 );
      这是一个无关子查询,当子句中有返回值时,则主句中返回所有的值。
      select * from a where exists (select * from b where b.dept_id=a.dept_id);
      这是一个相关子查询,结果返回子句中相关联后查询的结果。
      select * from a where not exists (select * from b where b.dept_id=a.dept_id);
      这是一个相关子查询,结果返回子句中相关联后查询的结果中不存在的值。
 in,exists 子句查询很重要,对于特殊查询很重要。
 select 子句是返回一个结果集。
1.内连接
select *
from table_1 a,table_2 b
where a.city_id=b.city_id
2.in 子句
select *
from table_1
where city_id in
(select city_id
 from  table_2 )
3.exists 子句 
select *
from table_1 a
where exists
(select *
 from  table_2  where city_id=a.city_id)  //这是一个相关子查询
以上三条sql语句返回的值是一样的,是表a和表b 的匹配记录显示,很经典。但说明一个问题,
表a和表b之间没有外键的约束关系。

4.not exists
select *
from table_1 a
where not exists
(select *
 from  table_2  where city_id=a.city_id)  //这是一个not in 的相关子查询

显示主表中子查询中结果集中不存在的记录,很经典,因没有关键字,所以对于city_id的空值
不影响主表的查询。
5.not in
select *
from table_1
where not city_id in
(select city_id
 from  table_2 )

显示主表中字段city_id子查询中结果集中不存在的记录,但与not exists子句的区别是:如果
字段ciyt_id是空值时,则不会显示。但ot exists子句不受影响.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14876437/viewspace-557661/,如需转载,请注明出处,否则将追究法律责任。

下一篇: oracle序列分析
请登录后发表评论 登录
全部评论

注册时间:2009-02-16

  • 博文量
    91
  • 访问量
    44159