SQL

[SQLD] 오답정리

2025. 5. 30. 23:31

1과목

1. 데이터 모델링 유의점

더보기

 중복성, 유연성, 비일관성

 

2. 데이터 스키마 구조 단계 - 외부, 개념, 내부

더보기

 View 단계는 여러 사용자 관점으로 구성하는 외부 스키마에 해당

 논리적인 데이터 독립성을 고려하는 단계는 외부, 개념적 단계

 물리적인 저장구조를 표현하는 스키마는 내부스키마

 통합된 모든 사용자의 관점은 개념스키마와 관련있음

 

3. 엔티티 특징

더보기

 영속적으로 존재하는 인스턴스의 집합이어야함

 발생시점에 따라 구분할수있는건 행위, 중심, 기본 엔티티

 엔티티에 이름을 부여할때 가능하면 약어를 사용안함

 

4. 속성의 특징

더보기

 인스턴스에서 관리하고자 하는 의미상 더이상 분리 되지않은 최소 데이터 단위

 하나의 인스턴스에서 각각의 속성은 한개의 속성값을 가짐

 이름을 부여할때 데이터 모델에서 유일성을 확보

 속성이 가질수 있는 값의 범위는 도메인

 

5. 식별자의 종류

더보기

 대표성을 가지는거에 따라 주식별자(PK) / 보조식별자 (FK)

 엔티티 내에서 스스로 생성되었는지에 따라 내부식별자 / 외부식별자

 단일속성으로 식별이 되냐에따라 단일식별자 / 복합식별자

 업무적으로 의미가 있던 식별자를 대체하여 새로 만드는지에 따라 인조식별자 / 본질식별자

 

6. 정규형

더보기

 제 1정규형 : 모든 속성은 하나의 값을 가진다

학생ID 이름 수강과목
1 철수 수학
1 철수 영어
1 철수 과학

 

 제 2정규형 : 엔티티의 일반속성은 주식별자 전체에 종속이어야 한다

학생 테이블

학생ID 이름
1 철수

수강 테이블

학생ID 수강과목
1 수학
1 영어

 

 제 3정규형 : 엔티티의 일반속성간에 서로 종속적이지 않다

학생-수강 테이블

학생ID 과목
1 수학
1 영어

과목-교수 테이블

과목 교수이름
수학 김교수
영어 이교수

 

7. NULL의 특징

더보기

 모르는값, 값의 부재를 의미함

 NULL과의 모든 비교는 unknown을 반환, 집계함수에서는 제외 처리

 오라클에서는 insert할때 '' 로 넣으면 null로 들어감

 NULL을 포함한 연산은 NULL

 

8. NULL 관련 함수

더보기

 NVL, ISNULL : 첫번째 결과값이 NULL이면 두번째 값을 출력

 NULLIF : 첫번째, 두번째 값이 같으면 NULL, 아니면 첫번째 값을 출력

 COALESCE : 여러 값중 NULL이 아닌 최초의 값을 출력, 없으면 NULL 출력

 

9. SELECT 관련 내용

더보기

 실행순서 : FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY

 시간 관련 계산 : 1->24시간으로 계산 ex) 1/24/(60/30) : 1시간

 EXIST : 안에 조건이 존재해야만 결과를 출력, NOT EXIST는 반대

 

10. JOIN 관련 내용

더보기

 순수 관계 연산자 : SELECT, PROJECT, (NATURAL)JOIN, DIVIDE

 카타시안 곱 : 두 테이블간에 조인조건 없이 조인하면 모든 가능한 곱 (AxB) ex) CROSS JOIN

 USING 절은 같은 컬럼을 기준으로 조인하기 때문에 접두사(Alias) 를 붙일수 없음

 (+) 표시는 오라클에서 OUTER JOIN을 의미함 (조인 조건에 포함)

 

11. GROUP BY 관련 내용

더보기

 GROUPING SET(COL1) : GROUP BY 를 UNION ALL로 합친것 ex) COL1

 ROLLUP(COL1) : 위에서 아래로 누적 요약 ex) COL1, 전체

 CUBE(COL1,COL2) : 모든 가능한 조합으로 계산 ex) COL1, COL2, (COL1, COL2), 전체

 

12. 집합 연산자

더보기

 UNION : 여러 결과에 대한 합집합, 중복 없음

 UNION ALL : 여러 결과에 대한 합집합, 중복 있음

 INTERSECT : 여러 결과에 대한 교집합, 중복 없음

 EXCEPT, MINUS : 앞의 결과에서 뒤의 결과에 대한 차집합, 중복 없음

 

13. 계층 관련 내용

더보기

 PRIOR : CONNECT BY 절에 사용되며, PRIOR 자식 = 부모 형태는 부모->자식 방향으로 전개됨

 루트 노드의 LEVEL 값은 1

 오라클 계층형 질의문에서 PRIOR은 SELECT, WHERE, CONNECT BY 절에서 사용

 START WITH 절은 계층구조의 시작위치

 ORDER SIBLINGS BY : 동일 계층끼리 정렬 수행

 

14. RANK 관련 내용

더보기

 PERCENT_RANK : 파티션별 윈도우에서 먼저나오면 0, 늦으면 1로 값이 아닌 행의 순서별 백분율을 구함

 DENSE_RANK : 순위 구하는 함수, 중간 순위를 비워두지 않음 ex) 1,1,2,3,3...

 CUME_DIST : 파티션별 윈도우의 전체건수에서 현재 행보다 작거나 같은건수에 대한 누적 백분율을 구함

 RANK : ORDER BY 에 의한 순위 구함, 중간 순위를 비워둠 ex) 1,1,3,4,4...

 RATIO_TO_REPORT : 주어진 컬럼 값의 합계에 대한 행렬 백분율을 소수점으로 구함

 NTILE : 전체건수를 N 등분한 결과

 

15. VIEW 관련 내용

더보기

 인라인뷰 : FROM 절에서 사용되는 서브쿼리를 말함

 사용시 장점 : 독립성 - 테이블 구조가 변경되어도 뷰는 변경하지 않아도됨, 편리성 - 복잡한 질의를  단순하게 작성가능, 보안성 - 민감한 정보는 컬럼을 빼고 생성가능 

 

16. DDL 관련 내용

더보기

 SQL SERVER 에서는 여러개의 컬럼을 동시에 수정하는 구문은 지원하지 않음

 컬럼 제거시 ALTER TABLE 테이블명 DROP COLUMN 컬럼명;

 TRUNCATE : 테이블에서 데이터를 제거함, 되돌릴수 없음, DELETE 보다 빠름

 

17. 트랜잭션 의 특성

더보기

 트랜잭션 : 데이터베이스의 논리적 연산 단위

 원자성 : 트랜잭션의 정의된 연산들은 모두 성공적으로 실행되든지, 실행 안된 상태로 남아있어야함

 일관성 : 트랜잭션이 실행되기 전의 데이터베이스 내용이 잘못되어있지 않으면 실행되서도 문제 없어야함

 고립성 : 트랜잭션이 실행되는 도중 다른 트랜잭션의 영향을 받아 잘못되면 안됨

 지속성 : 트랜잭션이 성공적으로 수행되면 갱신된 내용은 영구적으로 저장됨

 

18. 참조동작 관련 내용

더보기

 CASCADE : 부모 삭제시 자식도 같이 삭제

 SET NULL : 부모 삭제시 자식 해당 필드 NULL

 SET DEFAULT : 부모 삭제시 자식 해당 필드 DEFAULT

 RESTRICT : 자식 테이블에 PK값이 없는 경우만 부모 삭제 허용

 DEPENDENT : 부모 테이블에 PK가 존재할때만 자식 입력 허용

 AUTOMATIC : 부모 테이블에 PK가 없는 경우 부모 PK를 생성후 자식 입력

 

'SQL' 카테고리의 다른 글

[SQL] 쿼리 튜닝 정리  (0) 2025.10.17
[SQL] Oracle Flashback Query 정리  (0) 2025.10.14
[SQL] 자주 쓰는 MSSQL 함수 정리  (0) 2025.03.27
[SQL] 자주 쓰는 PostgreSql 함수 정리  (0) 2022.09.02
[SQL] 자주 쓰는 Mysql 함수 정리  (3) 2021.08.27