오라클 - Count / 조인 / ROWNUM

지환·2023년 12월 31일
0

그룹웨어

목록 보기
3/17

출처 } https://gent.tistory.com/571

null 포함 경우

포함되는 경우 : COUNT(*)

COUNT(*)를 사용하면 NULL도 포함하여 전부 COUNT 합니다.

포함되지 않는 경우: COUNT(ColumnName)

COUNT(컬럼명)을 사용하면 NULL 값은 제외하고 COUNT 합니다.

DISTINCT

COUNT( DISTINCT( ColumnName ) )으로 하면 중복되지 않고 NULL은 제외되는 값들만 COUNT 하게 됩니다

LEFT OUTER JOIN

  • LEFT의 의미는 왼쪽 테이블을 기준 테이블로 지정한다는 의미이다. ( emp LEFT OUTER JOIN dept )

  • 조인된 dept 테이블에 데이터가 있을 경우 부서명(b.name)을 표시하고

    • 없으면 NULL을 표시한다.

dept 테이블에 존재하는 부서코드(deptno) 10,20, 30은 정상적으로 조인이 되며 부서명을 표시할 수 있다.

deptno = 90은 조인이 되지 않기 때문에 부서명을 표시할 수 없다.

  • 아우터 조인은 조인할 테이블(dept)과 조인이 되지 않더라도 기준 테이블(emp)의 모든 데이터는 출력된다.

  • 조인되지 않은 데이터는 조인 테이블의 데이터를 끌어와서 표시할 수 없다. (NULL로 표시)

LEFT OUTER JOIN - 조인 칼럼이 여러 개인 경우


  • deptno, locno 칼럼의 값이 동시에 일치할 경우 데이터를 표시하고, 일치하지 않으면 NULL을 표시하는 것을 확인할 수 있다.

LEFT OUTER JOIN - 조인 테이블이 여러 개인 경우

  • emp 테이블을 dept 테이블과 loc 테이블에 동시에 LEFT OUTER JOIN 하는 예제이다.
    조인할 테이블이 여러 개인 경우 위의 예제처럼 순차적으로 LEFT OUTER JOIN을 사용하여 작성하면 된다.

아우터 조인의 핵심은 메인 테이블의 데이터는 무조건 조회가 되고 조인 테이블은 참조 용도로만 사용된다.

https://gent.tistory.com/469 참고

아우터조인(+)

아우터 조인을 사용하는 이유는 기준 테이블의 데이터가 모두 조회(누락 없이) 되고, 대상 테이블에 데이터가 있을 경우 해당 컬럼의 값을 가져오기 위해서이다.

  • 아우터 조인으로 쿼리문을 작성하면 조인이 되면 DEPT 테이블의 데이터를 가져오고, 조인이 되지 않으면 DEPT 테이블의 데이터는 NULL로 조회되고 EMP 테이블의 데이터는 정상적으로 조회된다

  • 아우터 조인을 할 대상 테이블(dept)의 컬럼에 "(+)" 기호를 붙여서 조인한다.

  • 기준 테이블(emp)의 deptno가 대상 테이블(dept)에 존재 할 경우 부서명(dname)를 가져오고 없으면 NULL로 조회된다.

  • 기준 테이블(emp)의 데이터는 대상 테이블(dept)에 값이 없어도 모두 조회 되어야 한다.


ROWNUM 키워드 이용하는 방법

  • ORDER BY 를 사용하면 순번이 뒤섞이므로 정렬된 서브쿼리 결과에 ROWNUM 을 매겨야 한다.
profile
아는만큼보인다.

0개의 댓글