728x90
반응형
- CASE 문에서 ELSE 생략하면 ELSE에 해당하는 값은 NULL 값으로 출력
- FROM 절에 아무리 많은 테이블이 나열되더라도 항상 2개씩 조인
- 데이터 관점: 업무가 어떤 데이터와 관련이 있는지 또는 데이터 간의 관계는 무엇인지에 대해 모델링하는 관점
- 영업사원별 누적 매출 (윈도우 함수): PARTITION BY 영업사원
- UNBOUNDED PRECEDING AND CURRENT ROW: (범위) 시작부터 현재행까지
- 차수: 결과 릴레이션(테이블)의 컬럼 수
- 카디널리티: 선택된 행들의 개수
- 하나의 속성은 하나의 속성값을 가지며, 하나 이상의 속성값을 가지는 경우 정규화 필요
- LIKE '_A%' : 두 번째 문자가 A인 값 (와일드 카드 '_' 로 인해, 대소문자 구분)
- NULL 값 - SQL-Server: 맨 앞 / Oralce: 맨 뒤
- LAG: 이전 행의 몇 번째 행 값 가져옴 ↔ LEAD
- 함수별 동일 값 있을 때 순위 - RANK: 1, 1, 3, 4 / DENSE_RANK: 1, 1, 2, 2 / ROW_NUMBER: 1, 2, 3, 4
- 외부스키마: 사용자 관점 / 내부스키마: 물리적 관점 / 개념 스키마: 통합 관점
- NATURAL JOIN 에서 EMP.DEPTNO 와 같이 OWNER (EMP) 명 사용하면 에러 발생 > NATURAL JOIN은 같은 컬럼명 조인
- 200 BETWEEN COL1 AND COL2 : COL1 <= 200 AND COL2 <= 200
- COL1 BETWEEN A AND B : COL1 >= A AND COL1 <= B
- SUBSTRING(문자열, -4, 2): 뒤에서 4번째 자리값부터 2개 반환
- 비교연산자 뒤에는 단일행이 와야 하는데 GROUP BY는 다중행 함수로 멀티행을 반환하여 에러
- 연산자의 우선 순위: () > NOT > 비교연산자 > AND > OR
- 다중행 입력 쿼리문 - CASE와 동일하게 수행, WHEN을 만족하면 종료
- 차집합: EXCEPT / 교집합: INTERSECT
- NULL 관련 함수
COL1 | COL2 | COL3 |
A | 300 | 50 |
B | 300 | 150 |
C | NULL | 300 |
D | 300 | 100 |
1) NVL(COL2, COL3) : COL2 이 NULL 이면 COL3 , 아니면 COL2 출력
▶ COL2는 NULL 이 아니기 때문에 COL2 출력 ▶ 300
2) COALESCE(COL2, COL3): NULL이 아닌 최초의 출력값
▶ 300
3) NULLIF(COL2, COL3): COL2와 COL3의 값이 같으면 NULL 출력, 아니면 COL2 값 출력
▶ COL2는 300, COL3은 50 으로 값이 다름 ▶ 300
4) CASE WHEN COL2 IS NOT NULL THEN COL2 ELSE COL3 END
▶ COL2가 NULL 이 아니면 COL2 값을, 아니면 (NULL 이라면) COL3 값을 반환
▶ COL2는 NULL 이 아니므로 300
- DDL과 DML 비교
DDL | 데이터 정의어 | 테이블 구조 초점 | CREATE, ALTER, DROP |
DML | 데이터 조작어 | 데이터 내용 초점 | INSERT, UPDATE, DELETE |
DDL / DML 자주 헷갈릴 때
DDL은 카드 (C, A, R, D)라고 외움.
* Create / Alter / Rename / Drop
728x90
반응형
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 시험후기 (비전공자, 독학) (0) | 2024.03.09 |
---|---|
[SQLD] 정규표현식 (보강) (0) | 2024.03.08 |
[SQLD] 34회 기출문제 오답노트 (0) | 2024.03.02 |
[SQLD] 30회 기출문제 오답 노트 (0) | 2024.03.02 |
[SQLD] PIVOT / UNPIVOT (보강-2) (0) | 2024.03.01 |