본문 바로가기

SQLD

[SQLD 공부] 35회 기출문제 오답 및 모르는 것 정리

 

 

이전에 한글파일로 정리했던 것 업로드!

 


 

 

1. 반정규화를 하면 데이터 무결성을 해친다.

 

3. 스키마

  • 개념 스키마 : 조직 전체 통합 관점. 데이터와 관계 표현
  • 외부 스키마 : 사용자 관점
  • 내부 스키마 : 물리저 관점

 

7. 조인

  • 조인하기 위한 최소 조건 개수 계산( 테이블 개수 - 1 )

 

8. 인덱스

  • 주로 B-Tree 인덱스로 되어있음
  • 테이블에 만들 수 있는 인덱스 수는 제한 없음
  • 외래키가 설계되어 있지만 인덱스가 없는 상태라면 입력/삭제/수정의 부하가 덜 생김

 

9. 한 테이블에 많은 컬럼이 밀집된 형태일 때

  • 자주 쓰는 컬럼/아닌 컬럼 나눠 성능 향상 가능
  • Row Chaining 발생으로 속도 느려질 수 있음
  • 데이터가 디스크의 여러 블록에 존재하여 I/O량이 많아져 성능 저하될 수 있음

 

11. natural join, join using, 뭔지 찾아보기

 

 

12. cross join 찾아보기

 

 

13. UNION

  • 중복된 행 제거, 정렬

 

15. 트랜잭션의 특징

  • Atomicity(원자성)
  • Consistency(일관성)
  • Isolation(고립성)
  • Durability(영속성)

 

18. LIKE

  • %나 _가 들어간 문자를 검색하기 위해서는 ESCAPE 명령어를 사용
  • 방법: _나 % 앞에 ESCAPE로 특수 문자를 지정하면 검색

 

19. ROWNUM

  • 주로 <, <= 사용하며 >, >= 인 경우 ROWNUM은 동작하지 않는다
  • ROWNUM = 1은 사용 가능 하지만 ROWNUM = 2인 경우는 데이터가 추출되지 않는다

 

20.

  • NVL(A, B) : A가 NULL일 때, B로 대체
  • CLALESCE(A, B) : A가 NULL이 아니면 A/ NULL이면 B가 NULL인지 체크
  • NULL IF(A, B): A,B가 같으면 NULL / 다르면 A

 

21. 집합연산자

  • UNION : 합집합(중복X, 정렬)
  • UNION ALL : 합집합(중복)
  • INTERSECT : 교집합
  • MINUS(EXCEPT) : 차집합

 

22. WINDOW FUNCTION

  • OVER : WINDOW FUNCTION에서 필수 키워드
  • PARTITION BY : 전체 집합을 기준에 의해 소그룹으로 나눔
  • RANGE BETWEEN A AND B
  • (RANGE BETWEEN) UNBOUNDED PRECEDING : 최종 출력될 값의 처음 ROW의 값
  • CURRENT ROW : 현재 ROW 값
  • (AND) UNBOUNDED FOLLOWING : 최종 출력될 값의 마지막 ROW값

 

23. 인덱스

  • 인덱스의 기본 목적은 검색성능의 최적화
  • DML작업은 느림
  • 인덱스 데이터는 인덱스를 구성하는 컬럼의 값으로 정렬을 수행
  • equal, between, > 와 같은 연산자로 범위검색도 가능

 

24. 서브쿼리

  • SELECT : 스칼라 서브쿼리(한 행, 한 컬럼만 반환하는 서브쿼리)
  • FROM : 인라인 뷰(DB에 저장되지 않고 임시로 생성)
  • WHERE/HAVING : 서브쿼리 (그룹함수와 함께 사용 시 그룹핑된 결과에 부가조건 설정)

 

25. PL/SQL (절차형 SQL Procedural Language)

  • 기본 구조(BLOCK) : DECLARE, BEGIN, EXCEPTION, END로 표현 -> 필수는 아님!
  • 변수와 상수 등을 사용하여 일반 SQL 문장을 실행할 때 WHERE절의 조건 등 으로 대입
  • PL/SQL로 작성된 코드는 PL/SQL 엔진이 처리하고, 일반적인 SQL 문장은 SQL 실행기가 처리
  • Stored PL/SQL Block : 함수처럼 정의해서 사용하는 PL/SQL
  • Stored PL/SQL Block의 종류 : Procedure, Function, Package, Trigger

 

26. 데이터 무결성 보장 방법

  • 애플리케이션
  • Trigger
  • 제약조건

 

27. 계층형 쿼리

  • START WITH : 최상위계층 지정
  • CONNECT_BY_ISLEAF : 해당하는 로우가 자식노드가 있으면 0, 없으면 1
  • SYS_CONNECT_BY_PATH : 루트노드로부터 해당 로우 항목까지의 경로를 반환
  • (필수) CONNECT BY : 각 행의 연결관계 설정
    • PRIOR연산자로 계층구조 표현
    • CONNECT BY PRIOR A = B : A가 B와 일치하는 데이터 가져옴(B가 상위계층)
  • LEVEL : CONNECT BY 사용 시 나오는 컬럼. 수행 결과의 DEPTH를 표현(현재 행이 계층의 몇 번째 레벨인지 표시)

 

30. 문자열이 입력될 때 빈공간으로 채우는 형태의 데이터타입

  • CHAR : CHAR(n) => 필요한 만큼 입력후 남은 공간은 공백
  • VARCHAR2 : 입력한 크기만큼 할당되는 가변길이 문자열 타입

 

 

31. 문자열 자르기

  • EXTRACT(날짜요소) : 월 추출 시 05여도 5로 추출됨(NUMBER 타입)
  • TRIM(‘’): 공백제거

 

34. 단일행/ 다중행 서브쿼리

  • 비교연산자 뒤에는 단일행이 와야하는데 GROUP BY 는 다중행 함수라 에러
  • ANY : 다중행 연산자. 조건들 중 만족하는 값이 있다면 리턴
  • ALL : 다중행 연산자. 모든 조건을 만족하는 값 리턴

 

36. 테이블 제약조건 CONSTRAINT

  • 고유키 Unique Key : 중복값은 X, Null값은 O
  • 기본키 Primary Key : Null값 X, 테이블당 하나