계층형 질의 : 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해 사용 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 |