이전에 한글파일로 정리했던 것 업로드!
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, 테이블당 하나
'SQLD' 카테고리의 다른 글
| [SQLD 공부] 2024년 변경과목 공부(2과목 - 정규표현식, TOP N 쿼리) (0) | 2024.05.23 |
|---|---|
| [SQLD 공부] 39회 기출문제 오답 및 모르는 것 정리 (0) | 2024.05.22 |
| [SQLD 공부] 2024년 변경과목 공부(2과목 - PIVOT, UNPIVOT) (0) | 2024.05.22 |
| [SQLD 공부] 38회 기출문제 오답 및 모르는 것 정리 (0) | 2024.05.21 |
| [SQLD 공부] 34회 기출문제 오답 및 모르는 것 정리 (0) | 2024.05.21 |