SQLD, D-2 문제풀이 및 오답노트

야아니·2025년 11월 14일

SQLD

목록 보기
10/11

🧩 한 줄 개념 정리

  • UNIQUE제약조건은 NULL을 가질 수 있다.
  • ORACLE에서는 ORDER BY 정렬 시 NULL을 가장 큰 값으로 취급한다.
  • ORDER BY 절은 “컬럼마다” 정렬 순서를 따로 준다
  • 테이블 명은 숫자로 시작할 수 없으며, -(하이픈)을 사용할 수 없다.
  • NTILE함수 사용시 나머지는 앞 그룹부터 1씩 추가된다.
  • '=' 연산은 NULL과 비교하면 항상 거짓을 반환한다.
  • LAG 함수는 현재 행을 기준으로 이전 행의 값을 가져온다.
  • 반대로 LEAD 함수는 현재 행을 기준으로 다음 행의 값을 가져온다.
  • CUME_DIST는 누적백분율을 구하는 함수이다.

🧩 용어정리

1️⃣ DECODE

DECODE(A,
   B, C, -- A가 B면 → C
   D, E, -- A가 D면 → E
   F, G, -- A가 F면 → G
H) -- 그 외 → H

2️⃣ EXISTS 문법

  • EXISTS: 서브쿼리 결과가 존재하면 TRUE
  • NOT EXISTS: 서브쿼리 결과가 없으면 TRUE
EXISTS는 레코드 존재 여부만 확인하기 때문에
SELECT * 대신에  1, 'X', '아무문자열' 처럼 상수를 써도 상관없음

3️⃣ 서브쿼리(subQuery)

분류위치특징/용도
Inline View / DerivedFROM임시 테이블처럼 사용, 별칭 필요
ScalarSELECT/WHERE/HAVING단일 값 반환 (1행1열)
CorrelatedWHERE/SELECT메인쿼리 컬럼 참조, 행별 실행
EXISTS / NOT EXISTSWHERE존재 여부 판단
IN / NOT INWHERE포함 여부 판단
ViewFROM재사용 가능, 복잡한 쿼리 간결화

결과요약

profile
세계평화를 원하는 사람입니다.

0개의 댓글