Oracleの学習(3)マルチテーブル共同調査

Oracleの学習(3)マルチテーブル共同調査

@

まず、99文法

Oracleの学習(II)我々が学んだ92の文法は、我々は今、文法99について学びます

構文のSQL 1999

直積に参加1.1.cross
select * from emp cross join dept;
自然の接続に参加1.2.natural

二つのテーブルが同じカラム名を持っていない場合は、クロスが参加し、同じ列名を持つ、自動マッチング

select * from emp e natural join dept d;
92等価結合文法に相当1.3.on句、リンク条件を追加し、

92は、同等の接続文法に対応します

select * from emp e join dept d on e.deptno=d.deptno

92は非構文の等価結合に対応します

select * from emp e join salgrade sg on e.sal between sg.losal and sg.hisal
1.4.left外部結合します

以下の表は、すべてのデータが左を示し、カーソルを直接空のデータを表示しません

select * from emp left outer join dept d on e.deptno=d.deptno
1.5.right外部結合します

すべての権利テーブル、nullでないデータ

select * from emp right outer join dept d on e.deptno=d.deptno
1.6.full外部結合
select * from emp full outer join dept d on e.deptno=d.deptno
1.7.innerは、外部結合します

インナーには参加し、同じに参加します

select * from emp e inner outer join dept d on e.deptno=d.deptno
1.8.using

条件を除いて接続を使用して使用することができることを示します

接続用のDEPTNO列は、いずれかのテーブルに属していないので使用することは、より少ないものを使用することになります

select * from emp e join dept d using(deptno)

第二に、少なくとも二つの行転送モードカラム

フルネーム 中国の 数学 英語
王呉 88 99 50
2.1.decode
select ss.name,
    max(decode(ss.subject,'语文',ss.score)) 语文,
    max(decode(ss.subject,'数学',ss.score)) 数学,
    max(decode(ss.subject,'英语',ss.score)) 英语,
from student_score ss group by ss.name  
2.2.caseときに
select ss.name,
    max(case ss.subject
        when '语文' then ss.score
    end) 语文,
    max(case ss.subject
        when ‘数学’ then ss.score
    end) 数学,
    max(case ss.subject
        when '英语' then ss.score
    end) 英语
from student_score ss group by ss.name  
2.3.join
select ss01.name,ss01.score 语文,ss02.score 数学,ss03.score 英语
  from(select ss.name,ss.score
        from student_score as
        where ss.subject='语文') ss01
  join(select ss.name,ss.score
        from student_score as
        where ss.subject='数学') ss02
  join(select ss.name,ss.score
        from student_score as
        where ss.subject='英语') ss03
  on ss01.name = ss03.name;

第三に、ページネーション

それ以外の場合は可動RNであり、フィールドの内側に配置されなければなりません

select * from  (select emp.*,rownum rn from emp) where rn>2 and rn <5

おすすめ

転載: www.cnblogs.com/littlepage/p/11784879.html