SQLD 오답노트

i-c-a-n-d-o·2024년 8월 20일
0

데이터 모델링의 3단계(추상화 수준에 따라 나뉜다)

  1. 개념적 데이터 모델링(먼저 진행함): 추상화 수준이 높고 업무 중심적, 포괄적인 수준의 모델링 진행, 전사적 데이터 모델링
  2. 논리적 데이터 모델링: 시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음
  3. 물리적 데이터 모델링: 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계

속성

속성의 특성에 따른 분류 : 기본속성, 파생속성, 설계속성
구성방식에 따른 분류 : PK, FK, 일반속성

주식별자의 특징

  1. 유일성: 주식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분한다.
  2. 최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수여야 한다.
  3. 불변성: 주식별자가 특정 엔터티에 지정되면, 그 값은 변하지 않아야 한다.
  4. 존재성: 주식별자가 정해지면 값이 꼭 정해져야한다.(NOT NULL)

실행순서

FROM-WHERE-GROUP BY-HAVING-SELECT-ORDER

TRUNCATE

TRUNCATE는 테이블의 모든 행(row)의 데이터를 삭제한다. DDL에 속함
- 참고) DROP은 테이블 정의 자체를 삭제한다.
또 다른 DDL : CREATE, ALTER, DROP

함수

LPAD('X', 5, 'X') => XXXXX : 총 다섯자리를 'X'로 채운다.
ROUND(12345.678, -2) => 십의자리에서 반올림하여 12300
SIGN(120) => 양수면 1, 음수면 -1, 0이면 0을 반환한다.

NULL 관련 함수들

COMM
NULL
500

NVL(COMM, 100), ISNULL(COMM, 100) : 100, 500

  • COMM이 NULL이면 2번째 지정값을 출력하고 NULL이 아니면 COMM을 그대로 출력한다.

NULLIF(COMM, 100) : NULL, 500

  • COMM와 100이 같으면 NULL을 리턴하고 다르면 첫 번째 값을 반환한다.

COALESCES(COMM, 100) : 100, 500

  • NULL이 아닌 첫번째 값을 반환한다.

DECODE(A, B, X, Y)

  • A=B 이면 X, A !=B 이면 Y 출력

시간 계산

30/24/60은 30x1/24/60으로 생각하자. 1일을 24시간으로 나누면 1시간이고 1시간을 60으로 나누면 1분이다.

논리연산자 실행 순서

NOT > AND > OR

집계함수와 NULL

SUM(NULL)은 NULL을 리턴하고
COUNT(NULL)은 0을 리턴한다.

중복 순위 처리

RANK는 2등이 2명일 경우 1,2,2,4
DENSE_RANK는 2등이 2명일 경우 1,2,2,3

데이터 형식

NUMBER(5,2)는 XXX.YY 로 표현되야 한다. XXXX.Y는 불가함! 소수는 숫자가 더 많아져도 OKAY
CHAR(10)으로 컬럼이 정의되어 있을 때 NULL값은 들어갈 수 있다.

기타

COUNT를 사용할 때 CASE ~ ELSE 0가 있으면 안된다.

OR는 중복을 1번만 카운트한다.

GROUP BY 절에는 컬럼 별칭 사용 불가, 그룹 합수도 사용 불가하다.

별칭을 사용했으면 별칭으로 정렬해야한다.(테이블.별칭 사용 불가)

<= ALL(20,30,40)은 20,30,40보다 작은 값을 구하는 것이니 20보다 작은 수를 찾으면 된다.

profile
나는 백엔드 개발자다!

0개의 댓글