select 高级查询

      

                      多表进行连接查询 ,子查询等高级selece语句的查询

        1、笛卡尔积  

               用第一个表的每一行与第二表中的每一行,进行连接。

               因此结果集中的行数是两表汇总行数的乘积,两列之和。

               但是包含了大量的无用的信息。

        2、如果为表 指明了别名,则所有引用表名的地方都必须使用别名,不能使用表名

        3、为表名设置别名时,不能使用as 关键字

        4、查询多表时,必须使用“表名.同名字段” 进行限制   不同名时,字段名前加上表名,则查询效率会更高

        5、使用join 关键字的连接查询

              内连接:inner join

              外连接:left |  right|  full  outer join

              交叉连接: cross join

              on  关键字后面是连接条件           (一般会使用   同一张表  进行子查询  联立  )

        6、内链接查询 

              未指明连接类型时,默认为内连接

              查询出的结果集,所有行都要满足连接条件。

              内链接包括:

                    等值内链接(),

                    不等值内链接(不常用),

                    自然连接,它是由是系统根据两表的同名字段自动 作等值比较的内链接。

        7、外连接

              左外连接(left join ) 也可以用    select   a ,b from a.c = b.c(+)

              右外连接(right join )                select   a ,b from a.c (+) = b.c

              完全外连接

       8、union 集合运算

             可以将多个查询结果集合并,形成一个结果集  会消除两个结果集中重复的行。

       9、intersect

            是取两个结果集的交集。只会同时存在两个结果集中的数据。         

  
      select a from  table  a where a >200
        intersect
      select b from table b where  b>33

        10、

        单行子查询

               指的是只返回单列单行数据。即返回一个值。

       多行子查询

               指的是子查询返回单列多行数据,即一组数组。        in   not in ,any,all ,some

       多列子查询

    select  ename ,job ,sal ,deptno from scott.emp where (deptno,job)=(select deptno,job from scott.emp where empno = 7316)


            

             

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值