[SQLD] 2과목 핵심 요약 정리 (시험 전에 빠르게 훑어보기)

728x90

2과목. SQL 기본 및 활용

1. 관계형 데이터베이스 개요

데이터베이스와 DBMS

  • 데이터베이스: 데이터 집합 형식으로 구성된 데이터 모음
  • DBMS: 데이터를 효과적으로 관리하기 위한 시스템(ORACLE, MYSQL 등)

관계형 데이터베이스 구성요소

  • 계정: 데이터 접근 권한 관리
  • 테이블: 데이터를 행(Row)과 열(Column)로 구성하여 저장하는 2차원 구조
  • 스키마: 테이블 구성과 정보를 정의하는 구조

테이블 특징

  • 하나의 테이블은 하나의 계정 소유
  • 테이블간 관계(1:1, 1:N, N:M) 가능
  • 다른 소유자의 같은 이름 테이블 가능

SELECT 문

SELECT [DISTINCT] 컬럼명 AS 별칭
FROM 테이블명;

함수의 종류와 사용법

단일 행 함수

문자 함수

  • SUBSTR(문자열, 시작위치, 길이): 문자열 일부 반환
    • 시작 위치가 음수면 뒤에서부터 계산
  • LENGTH(문자열): 문자열 길이 반환
    • 공백 문자도 길이에 포함
  • RPAD(문자열, 길이, 문자): 문자열 오른쪽 패딩
    • 지정한 길이보다 문자열 길이가 길면 문자열이 잘림
  • RTRIM(문자열, '문자'): 우측 특정 문자 제거
    • 제거 문자를 명시하지 않으면 공백 제거

숫자 함수

  • SIGN(숫자): 부호 판단 (양수:1, 0:0, 음수:-1)
  • MOD(숫자1, 숫자2): 나머지 반환
    • 숫자2가 0이면 에러 발생
  • CEIL(숫자): 올림
  • FLOOR(숫자): 내림

날짜 함수

  • TO_DATE(문자열, '포맷'): 날짜 형식 변환
    • 포맷을 정확히 맞추지 않으면 오류 발생

변환 함수 (NULL)

  • NVL(컬럼, 기본값): NULL 값을 기본값으로 대체
  • COALESCE(값1, 값2, ...): 첫 번째 NULL 아닌 값 반환
  • DECODE(값, 조건1, 결과1, 조건2, 결과2, 기본값): 조건에 따른 값 반환
    • 조건과 결과 쌍을 명확히 입력해야 함

집계 함수

  • SUM(컬럼): 합계
  • AVG(컬럼): 평균
  • COUNT(* 또는 컬럼): 행 개수 (*로 인자를 넘겨줄 시, NULL값을 포함하여 COUNT함)
  • MAX(컬럼): 최대값
  • MIN(컬럼): 최소값

WHERE 절

SELECT 컬럼명 FROM 테이블명 WHERE 조건;

GROUP BY 절

SELECT 컬럼명, 집계함수(컬럼)
FROM 테이블명
GROUP BY 컬럼명;

ORDER BY 절

SELECT 컬럼명
FROM 테이블명
ORDER BY 컬럼명 [ASC|DESC];

JOIN

INNER JOIN

SELECT * FROM 테이블1
INNER JOIN 테이블2
ON 테이블1.컬럼 = 테이블2.컬럼;

OUTER JOIN

  • LEFT JOIN, RIGHT JOIN, FULL JOIN
SELECT * FROM 테이블1
LEFT JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼;

NATURAL JOIN

SELECT * FROM 테이블1 NATURAL JOIN 테이블2;

서브쿼리

  • 단일행 서브쿼리: 하나의 행 반환
  • 다중행 서브쿼리: 여러 행 반환
  • 다중열 서브쿼리: 여러 컬럼 반환

집합 연산자

  • UNION: 중복 제거 후 합집합
  • UNION ALL: 중복 포함 합집합
  • INTERSECT: 교집합
  • MINUS: 차집합

윈도우 함수

  • ROW_NUMBER: 각 행에 고유번호 부여
  • RANK: 동일 값 순위 동일하게 부여, 다음 순위 건너뜀
  • DENSE_RANK: 동일 값 순위 동일하게 부여, 순위 건너뛰지 않음

계층형 질의

SELECT 컬럼, LEVEL
FROM 테이블
START WITH 조건
CONNECT BY PRIOR 부모컬럼 = 자식컬럼;

PIVOT과 UNPIVOT

  • PIVOT: 행 데이터를 열로 변환
  • UNPIVOT: 열 데이터를 행으로 변환

정규 표현식 함수

  • REGEXP_LIKE: 패턴 포함 여부 판단
  • REGEXP_COUNT: 패턴 발생 횟수 계산
  • REGEXP_SUBSTR: 패턴 일치 부분 추출
  • REGEXP_REPLACE: 패턴 일치 부분 다른 문자열로 교체

DML(Data Manipulation Language)

  • INSERT: 데이터 삽입
  • UPDATE: 데이터 수정
  • DELETE: 데이터 삭제

TCL(Transaction Control Language)

  • COMMIT: 트랜잭션 확정
  • ROLLBACK: 트랜잭션 취소
  • SAVEPOINT: 특정 지점 임시 저장

DDL(Data Definition Language)

  • CREATE: 객체 생성
  • ALTER: 객체 변경
  • DROP: 객체 삭제
  • TRUNCATE: 테이블의 모든 행 삭제(ROLLBACK 불가능)

DCL(Data Control Language)

  • GRANT: 권한 부여
  • REVOKE: 권한 회수

NULL의 이해

  • 값 미정 상태, 비교 연산 시 UNKNOWN 반환 (IS NULL만 TRUE)
728x90