• 내부 조인이란 무엇입니까?
  • 외부 조인이란 무엇입니까?
    • 공연 외부 조인을 사용하여(+)상징

좋아하는 거의 모든 관계형 데이터베이스,오라클할 수 있는 쿼리를 생성되는 결합 또는JOIN행에서 두 개 이상의 테이블을 만들의 최종 결과를 설정합니다., 는 동안 수많은 유형의 조인 수행할 수 있는,가장 일반적인INNER JOINOUTER JOIN.

에서는 우리가 잠시 사이의 차이를 탐구INNEROUTER JOIN을 검토 속기법을 Oracle 에서 제공하는 수행하기 위한OUTER JOINS특별히 사용하는+운영자 상징입니다.

내부 조인이란 무엇입니까?,

INNER JOIN관계형 데이터베이스에서는 단순히 가입 두 개 이상의 테이블이있는 결과에만 데이터가 포함되어 있는 만족한 모든 가입하세 조건입니다.

예를 들어,여기서 우리는 기본적인library스키마로 두 테이블:bookslanguages.,>

한편,우리의books테이블에는language_id줄는 아니지만,대부분의 모든 책은 단순히 담고 있는language_id와 관련된 원래 출판 언어의 책:

SELECT * FROM booksORDER BY idFETCH FIRST 10 ROWS ONLY;id title author year_published language_id1 In Search of Lost Time Marcel Proust 1913 22 Ulysses James Joyce 1922 13 Don Quixote Miguel de Cervantes 1605 54 Moby Dick Herman Melville 1851 15 Hamlet William Shakespeare 1601 (null)6 War and Peace Leo Tolstoy 1869 87 The Odyssey Homer -700 98 The Great Gatsby F. Scott Fitzgerald 1925 19 The Divine Comedy Dante Alighieri 1472 1010 Madame Bovary Gustave Flaubert 1857 2

많은 경우에, 우리는 할 수 있습을 수행하는INNER JOINbookslanguages테이블도록보다는 보는 이 의미는language_id각각의 가치 예약,우리는 실제로 볼 수 있는language name대신 합니다.,

SELECT b.id, b.title, b.author, b.year_published, l.name languageFROM books bINNER JOIN library.languages lON b.language_id = l.idORDER BY b.idFETCH FIRST 10 ROWS ONLY;id title author year_published language1 In Search of Lost Time Marcel Proust 1913 French2 Ulysses James Joyce 1922 English3 Don Quixote Miguel de Cervantes 1605 Spanish4 Moby Dick Herman Melville 1851 English6 War and Peace Leo Tolstoy 1869 Russian7 The Odyssey Homer -700 Greek8 The Great Gatsby F. Scott Fitzgerald 1925 English9 The Divine Comedy Dante Alighieri 1472 Italian10 Madame Bovary Gustave Flaubert 1857 French11 The Brothers Karamazov Fyodor Dostoyevsky 1880 Russian

무엇이 중요한 참고 여기 우리의 결과로 설정되었는 약간 다른 위의 두 가지 검색어입니다. 먼저,우리는 단순히 상장 첫 번째10도서,하지만INNER JOIN쿼리를 우리는 결과를 반환되는 모든 조건을 충족 모두의 테이블이 있습니다. 이러한 이유로,기록의Hamlet(는language_id값의null거나 비어 있는)무시하고 반환하지 않은 결과에서 우리의INNER JOIN.,

외부 조인이란 무엇입니까?

대신에 독점적으로 결과를 반환을 만족하는 모든 조건의INNER JOINOUTER JOIN반환하지 않은 결과만을 만족하는 모든 조건이지만,또한 행을 반환 한 테이블에서는 만족하지 않았습니다. 테이블에 대한 선택이”바이패스”의 조건부 요구 사항이 결정한 방향에 의해 또는”사이드”의 가입으로 불리LEFT또는RIGHT외부 조인.,

정의할 때 쪽의OUTER JOIN,을 지정하는 테이블 항상 행하는 경우에도 상대 테이블 다른 측면에서의 참여가 누락 또는null값으로의 가입 조건이다.,

경우에 따라서 우리가 수행하는 동일한 기본적인JOIN위와 같이 검색bookslanguage names,우리가 알고 있는 우리books테이블은 항상 데이터를 반환 그래서 우리JOIN측은”지점을 향해”우리의books테이블,함으로써languages테이블의OUTER테이블 우리는 첨부합니다.,>제외하고는 작은 변화:

SELECT b.id, b.title, b.author, b.year_published, l.name languageFROM books bLEFT OUTER JOIN library.languages lON b.language_id = l.idORDER BY b.idFETCH FIRST 10 ROWS ONLY;id title author year_published language1 In Search of Lost Time Marcel Proust 1913 French2 Ulysses James Joyce 1922 English3 Don Quixote Miguel de Cervantes 1605 Spanish4 Moby Dick Herman Melville 1851 English5 Hamlet William Shakespeare 1601 (null)6 War and Peace Leo Tolstoy 1869 Russian7 The Odyssey Homer -700 Greek8 The Great Gatsby F. Scott Fitzgerald 1925 English9 The Divine Comedy Dante Alighieri 1472 Italian10 Madame Bovary Gustave Flaubert 1857 French

예상대로 사용하여LEFT OUTER JOIN대신 이전INNER JOIN,우리는 두 세계의 최고: 우리는 모두 건너뛰books기록(등의Hamlet)기 때문에 단순히language_idvaluenull에 대한 기록하는,아직에 대한 모든 레코드를language_id존재, 우리는 잘 포맷language name에서 얻은 우리languages테이블.,

공연 외부 조인을 사용하여(+)상징

에 표시된 공식 문서,Oracle 에서 제공하는 특별한outer join operator(+심볼)는 속기 위해 수행하는OUTER JOINS.

,실제로+기호가 배치에서 직접 조건문을하고의 측면에서 선택적 테이블(하나를 포함하도록 허용되 빈 또는null에서 값을 조건).,

따라서,우리는 다시 한 번 다시 작성의 위LEFT OUTER JOIN을 사용하여 문+운영자는 다음과 같이

결과는 같은 표준으로는LEFT OUTER JOIN위의 예에서,그래서 우리는 포함되지 않습니다. 그러나,하나의 중요한 부분을 주의에 대한 구문을 사용하는+운영자를 위한OUTER JOINS.

+연산자이어야의 왼쪽에 있는 조건(왼쪽에 같=등록하십시오)., 따라서,이 경우,기 때문에 우리가 원하는지 확인 우리의languages테이블은 선택 사항 테이블 반환할 수 있는null값이 비교,우리는 교체 테이블의 순서에서 이러한 조건에서,그래서languages왼쪽에(그리고 선택사양) 동books오른쪽에 있습니다.

마지막으로,이 때문에 다시 정렬의 표면에 조건을 사용할 때는+연산자,그것의 중요한 깨닫는 위을 축약한RIGHT OUTER JOIN., 이 말의 의미는 다음과 같습니다 조각의 질

FROM books b, library.languages lWHERE l.id (+)= b.language_id

…효과적으로 동일한다.

FROM library.languages lRIGHT OUTER JOIN books bON b.language_id = l.id