자격증/SQLD

SQLD(4)-SQL활용1

jhs0129 2021. 8. 13. 12:07
320x100
반응형
  • JOIN - 여러 개의 릴레이션을 사용해서 새로운 릴레이션을 만드는 과정

조인 참조

https://sql-joins.leopard.in.ua/

  • 등가조인(교집합) - 두 개의 테이블 간에 일치하는 것을 조인 '=' 사용

        WHERE절사용 - 일치시킬 칼럼을 ' = '을 가지고 연결

                             해시 함수를 사용해서 연결

        INNER JOIN - FROM절에서 연결 ex) FROM TABLE1 INNER JOIN TABLE2 ON 1.COLUMN=2.COLUMN

                          조인문에 추가 조건 및 정렬 할 수 있음

        INTERSECT - 두 개 테이블에서 공통된 값을 조회하는 방법 

 

  • 비등가조인 - 정확하게 일치하지 않는 것을 조인 '='을 제외한 나머지를 사용

 

  • OUTER JOIN - 교집합 + 한쪽 테이블에만 있는 데이터, INNER JOIN 과 사용법 동일

       LEFT OUTER JOIN - 교집합 + 왼쪽 테이블에만 있는 데이터

       RIGHT OUTER JOIN - 교집합 + 오른쪽 테이블에만 있는 데이터

       FULL OUTER JOIN - 모든 데이터

 

  • CROSS JOIN - 조인 조건구가 없음, 단순히 카테시안 곱이 발생

 

  • UNION - 연산의 결과로 나온 두개의 테이블을 하나로 합침, 중복 발생시 제거, 정렬발생, UNION ALL에서는 중복제거 정렬 발생하지 않음

 

  • MINUS - 연산의 결과에서 일치하는 데이터를 제거하고 보여줌 (EXCEPT연산과 동일)
SELECT COLUMN1 FROM TABLE1
MINUS
SELECT COLUMN1 FROM TABLE2

TABLE2에서 나온 값을 제거하고 보여줌

 

  • 계층형 조회

오라클에서 지원, 트리 형태의 구조를 위에서 아래로, 아래에서 위로 탐색하면서 조회

SELECT FROM WHERE에서 WHERE절을 계층형 조건으로 변경해서 사용

계층형 조건 작성 방법 - START WITH 시작조건 CONNECT BY PRIOR 조인 조건

조건을 먼저 실행 후 SELECT 실행

 

 * 시작조건에는 TREE구조에서 ROOT에 넣고 싶은 것을 적고, 조인조건에는 ROOT아래로 연결 될 것들을 작성

 

키워드 설명
LEVEL 계층 레벨 의미
가장 상위레벨은 1
CONNECT_BY_ROOT 가장 최상위 값 표시
CONNECT_BY_ISLEAF 가장 최하위 값 표시
SYS_CONNECT_BY_PATH 전체 전개 경로 표시
NOCYCLE 순환 구조가 발생지점까지 전개
CONNECT_BY_ISCYCLE 순환 구조 발생지점 표시

계층형 구조 키워드 - SELECT 절에서 표시 가능

 

  • 서브쿼리 - WHERE절에서 SELECT문을 한번더 사용 하는 것

* FROM 절에서 SELECT문 사용 - 인라인뷰, 가상의 테이블을 만드는 효과

* SELECT절에서 SELECT문 사용 - 스칼라 서브쿼리, 한행과 한칼럼만 반환

 

단일행 서브쿼리 - 서브쿼리의 실행 결과가 하나의 행만 반환하는 것, 비교연산자 사용

다중행 서브쿼리 - 서브쿼리의 실행 결과가 여러개의 행을 반환하는 것,  IN ANY ALL EXISTS사용

 

다중행 연산 설명
IN 결과중 하나만 동일해도 됨
ALL 결과가 모두 동일해야 됨
ANY 결과중 하나만 동일해도 됨
EXISTS 결과가 하나라도 존재해야 됨

 

320x100
반응형