본문 바로가기

SQL

SQLD 시험 대비 - SQL 활용편(2)

계층형 질의 : 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해 사용 ex_팀장과 사원

 

Start With : 계층 구조 전개의 시작 위치 지정

Connect By : 다음에 전개될 자식 데이터 지정

Prior : Connect By 절에 사용되며 현재 읽은 칼럼을 지정한다. Prior 자식 = 부모 형태를 사용하면 계층 구조의 부모 데이터에서 자식 데이터( 부모 -> 자식 ) 방향으로 전개하는 순 방향 전개를 한다. 역 방향 전개

Nocycle : 동일한 데이터가 전개 되지 않음.

Order Siblings By : 형제 노드간의 정렬 수행 -> 값이 같은 복수의 raw이 있을 때 ~ 기준으로 정렬

Where : 모든 전개를 수행한 후에 지정된 조건을 만족하는 데이터만 추출한다.(필터링)

 

계층형 질의에서 사용되는 가상컬럼 

Level : 루트 데이터면 1, 그 하위 데이터면 2, 리프 데이터까지 1씩 증가 루트 노드의 level은 1

Connect_By_Isleaf : 해당 데이터가 리프 데이터면 1, 그렇지 않으면 0

Connect_By_Iscycle : 해당 데이터가 조상이면 1, 아니면 0 (Cycle 옵션을 사용했을 시만 사용가능) 

Sys_Connect_By_Path : 루트 데이터 부터 현재 전개할 데이터까지의 경로를 표시한다.

Connect_By_Root : 현재 전개할 데이터의 루트 데이터를 표시한다. 단항 연산자이다.

 

셀프 조인 : 한 테이블 내 두 컬럼이 연관관계가 있을 때 동일 데이블 사이의 조인. From 절에 테이블이 2번 이상 나타난다. 반드시 테이블 별칭을 사용해야 함

 

★★ 서브 쿼리 : 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문. 알려지지 않은 기준을 이용한 검색에 사용

- 서브 쿼리를 괄호로 감싸여 사용.

- 서브 쿼리는 단일 행 또는 복수 행 비교연산자와 함께 사용 가능 하다. 단일 행 비교 연산자는 서브 쿼리의 결과가 반드시 1건 이하여야 하고 복수행 비교 연산자는 결과 건수와 상관없다.

- 서브 쿼리에서는 Order By를 사용하지 못한다.

- Select , From, Where, Having, Order By, Insert-Values, Update-Set 절에 사용가능

 

 - 단일 행 비교 연산자 : =, <>, <,> 서브 쿼리 결과로 1개 행 반환

 - 다중 행 비교 연산자 : IN, ALL, ANY, SOME  등

 - 연관 서브쿼리

 - 뷰 ( View ) - 정적 뷰

 - 그 밖의 위치에서 사용하는 서브 쿼리 

     -  Select 절 -> 스칼라 서브쿼리 : 한 행, 한 칼럼만을 반환하는 서브쿼리 ( 단일 행 서브쿼리 )

     -  From 절 -> 인라인 뷰 - 동적 뷰

 


 


인 라인 뷰 : From 절에서 사용되는 서브쿼리. Order By를 사용 가능

 

뷰 : 테이블은 실제로 데이터를 가지고 있는 반면, 뷰는 실제 데이터를 가지고 있지 않다.

(가상 테이블, 정적 뷰)

- 실행 시점에 SQL 재작성하여 수행됨

 

뷰 사용 장점

1. 독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용프로그램은 변경하지 않아도 된다.

2. 편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 지르이를 단순하게 작성할 수 있다.

3. 보안성 : 직원의 급여 정보와 같이 숨기고 싶은 정보가 존재할 때 사용

생성문 : Create View V_Play_Team  As Select ... ;

삭제문 : Drop View V_Play_Team;

 

  

반응형

'SQL' 카테고리의 다른 글

SQLD 시험 대비 - SQL 활용편(3)  (0) 2023.03.08
SQLD 시험 대비 - SQL 활용편(3)  (0) 2023.03.08
SQLD 시험 대비 - SQL 활용편(1)  (0) 2023.03.06
SQLD 시험 대비 - SQL 기본 (3)  (0) 2023.03.06
SQLD 시험 대비 - SQL 기본 (2)  (0) 2023.03.05