[SQLD] 4-4. SQL 활용 - 서브쿼리, 단일행 서브쿼리, 다중행 서브 쿼리, 다중 컬럼 서브 쿼리, 연관 서브 쿼리, 기타 서브 쿼리, 뷰(view)
A. 서브쿼리
- 서브쿼리 개요
- 하나의 SQL문안에 포함되어 있는 또 다른 SQL문
- 서브쿼리는 메인쿼리의 칼럼을 모두 사용할 수 있음
- 메인쿼리는 서브쿼리의 칼럼을 사용할 수 없음
- 질의 결과에 서브쿼리 칼럼을 표시해야 한다면 조인 방식으로 변환, 함수, 스칼라 서브쿼리(Scalar Subquery)를 사용
- 서브쿼리는 서브쿼리 레벨과는 상관없이 항상 메인쿼리 레벨로 결과 집합이 생성
- 서브쿼리 주의사항
- 괄호를 사용하여 서브쿼리 표시
- 서브쿼리는 단일 행(Single Row)/복수 행(Multiple Row) 비교 연산자와 함께 사용
- 단일 행 비교 연산자는 서브쿼리의 결과가 1 건 이하
- 복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관없음
- 서브쿼리에서는 ORDER BY를 사용하지 못함
- 서브쿼리 사용 위치
- SELECT 절
- FROM 절
- WHERE 절
- HAVING 절
- ORDER BY 절
- INSERT문의 VALUE 절
- UPDATE문의 SET 절
B. 동작하는 방식에 따른 서브쿼리 분류
C. 반환되는 데이터의 형태에 따른 서브쿼리 분류
D. 단일 행 서브 쿼리
1) 단일 행 비교 연산자(=,〈,<=, >, >=,〈〉)와 함께 사용
2) 결과 건수가 반드시 1 건 이하
3) 메인쿼리는 서브쿼리에서 반환된 결과를 이용
E. 다중 행 서브 쿼리
1) 서브쿼리의 결과가 2건 이상
2) 다중 행 비교 연산자(IN, ALL, ANY, SOME)와 함께 사용
F. 다중 컬럼 서브 쿼리
1) 서브쿼리의 결과로 여러 개의 칼럼이 반환되어 메인쿼리의 조건과 동시에 비교
2) SQL Server에서는 지원되지 않는 기능
G. 연관 서브 쿼리
- 서브쿼리 내에 메인쿼리 칼럼이 사용된 서브쿼리
- 메인쿼리에 존재하는 모든 행에 대해서 반복 수행
- EXISTS 서브쿼리는 항상 연관 서브쿼리로 사용
- EXISTS 서브쿼리는 조건을 만족하는 건이 많아도 조건을 만족하는 1건만 찾으면 검색을 진행하지 않음
H. 기타 서브 쿼리
- SELECT 절에 서브쿼리
1. 스칼라 서브쿼리(Scalar Subquery)
2. 한 행,한 칼럼(1 Row 1 Column)만을 반환
3. 메인쿼리의 결과 건수만큼 반복수행
- FROM 절에 서브쿼리
1. 인라인 뷰(Inline View)
2. 동적으로 생성된 테이블인 것처럼 사용
3. 인라인 뷰에서는 ORDER BY절 사용 가능
- FROM 절에 서브쿼리 : TOP-N 쿼리
1. 인라인 뷰에 먼저 정렬을 수행하고 일부 데이터를 추출하는 것
2. 정렬 결과 중 일부 데이터만을 추출할 수 있는 방법이 필요
3. Oracle은 ROWNUM 연산자를 사용하여 TOP-N 쿼리를 구현
4. SQL Server은 TOP 연산자를 사용하여 TOP-N 쿼리를 구현
I. 뷰 (VIEW)
- 뷰(View)는 데이터 없는 가상 테이블(Virtual Table)
- 뷰 정의(View Definition)로 구현
- 뷰 정의 질의를 재작성(Rewrite)하여 쿼리 수행
- 존재하는 뷰를 참조해서도 신규 뷰 생성 가능
- 뷰를 포함하는 뷰를 잘못 생성하는 경우 성능 문제가 발생할 수 있음
- CREATE VIEW문을 통해서 생성
- DROP VIEW문으로 삭제
[SQLD] 4-1. SQL 활용 - 표준 조인, Standard SQL, Inner Join, Natural Join, Using Join, Cross Join, Outer Join
A. STANDARD SQL 개요1. 관계형 데이터베이스를 유일하게 접속할 수 있는 언어가 SQL 2. 벤더별로 일부 기능의 개발이 진행 중인 경우도 있고 벤더별로 특이한 기술 용어는 여전히 호환이 안 되고 있음
infoofit.tistory.com
[SQLD] 2-4. 데이터 모델과 성능 - DB 구조와 성능, 슈퍼/서브타입, PK/FK칼럼
[SQLD] 2-4. 데이터 모델과 성능 - DB 구조와 성능, 슈퍼/서브타입, PK/FK칼럼
A. DB 구조에 따른 성능 개선 방안1. 슈퍼타입/서브타입 모델 구현에 따른 성능 2. 인덱스 특성을 고려한 PK/FK 데이터베이스 성능 향상 3. 테이블과 FK제약 여부에 따른 성능 B. 슈퍼타
infoofit.tistory.com
[용어/개념] SSO (Single Sign On) - 통합 인증 관리 서비스
[용어/개념] SSO (Single Sign On) - 통합 인증 관리 서비스
I. 통합 인증 관리 서비스 SSO의 개요 가. SSO (Single Sign On)의 정의.한 번의 시스템 인증을 통하여 관련 SSO를 지원하는 다수의 정보 시스템에 재 인증 절차 없이 사용할 수 있게 하는 기능.나. SSO의
infoofit.tistory.com
[용어/개념] Product Life cycle (EOS,EOL,EOD,EOSL) 비교
[용어/개념] Product Life cycle (EOS,EOL,EOD,EOSL) 비교
Product Life Cycle상용 H/W 및 S/W를 사용하다 보면 Life Cycle를 체크하여 공식 지원이 언제까지 지원되는지 확인할 필요가 있다.이 때, 사용되는 용어가 EOS, EOL로 일반적으로 제품의 생산 중단을 선언할
infoofit.tistory.com