TIL - 20260110

juni·2026년 1월 10일

TIL

목록 보기
234/316

0110 SQLD 학습 (7/10): 2과목 - SQL 기본


✅ 1. SQL (Structured Query Language)의 분류

  • SQL은 데이터베이스와 상호작용하기 위한 표준 언어로, 기능에 따라 크게 세 가지(또는 네 가지)로 분류됩니다.
구분이름설명주요 명령어트랜잭션
DDL데이터 정의어
(Data Definition Language)
데이터베이스 객체(테이블, 뷰, 인덱스 등)의 구조를 정의CREATE, ALTER, DROP, TRUNCATE자동 COMMIT (실행 즉시 영구 반영)
DML데이터 조작어
(Data Manipulation Language)
테이블의 데이터를 조작(추가, 수정, 삭제, 조회)INSERT, UPDATE, DELETE, SELECTTCL로 제어 필요
DCL데이터 제어어
(Data Control Language)
데이터베이스 객체에 대한 접근 권한을 제어GRANT, REVOKE자동 COMMIT
TCL트랜잭션 제어어
(Transaction Control Language)
DML로 수행된 작업을 논리적 단위인 트랜잭션으로 묶어 제어COMMIT, ROLLBACK-
  • DELETE vs TRUNCATE vs DROP:
    • DELETE: 데이터만 행 단위로 삭제. ROLLBACK 가능. (DML)
    • TRUNCATE: 테이블 구조는 남기고 모든 데이터를 삭제. ROLLBACK 불가. (DDL)
    • DROP: 테이블 구조 자체를 완전히 삭제. ROLLBACK 불가. (DDL)

✅ 2. SELECT 문의 기본 구조와 실행 순서

  • SELECT 문은 데이터베이스에서 데이터를 조회하는 가장 기본적인 DML입니다. SQL 문법의 작성 순서와 실제 DBMS의 논리적 실행 순서는 다르며, 이 순서를 이해하는 것이 매우 중요합니다.

  • 문법 순서: SELECTFROMWHEREGROUP BYHAVINGORDER BY

  • 논리적 실행 순서: FROMWHEREGROUP BYHAVINGSELECTORDER BY

  1. FROM: 조회할 테이블을 지정합니다.
  2. WHERE: FROM 절의 결과를 바탕으로 행(Row) 단위의 조건을 필터링합니다.
  3. GROUP BY: WHERE 절까지 필터링된 데이터를 특정 컬럼 기준으로 그룹화합니다.
  4. HAVING: GROUP BY로 생성된 그룹에 대한 조건을 필터링합니다. (집계 함수 사용 가능)
  5. SELECT: 최종적으로 조회할 컬럼을 지정하고, 별칭(Alias)을 부여하거나 계산을 수행합니다.
  6. ORDER BY: 최종 결과 집합을 지정된 기준으로 정렬합니다. (ASC: 오름차순, DESC: 내림차순)

✅ 3. 주요 연산자와 함수

➕ 3-1. 비교, 논리, SQL 연산자

  • 비교 연산자: =, >, <, >=, <=, <> (같지 않음, != 와 동일)
  • 논리 연산자: AND, OR, NOT
  • SQL 연산자:
    • BETWEEN a AND b: a와 b 사이의 값 (a, b 포함)
    • IN (list): 리스트에 포함된 값 중 하나와 일치
    • LIKE '패턴' : 문자열 패턴 비교 (%: 여러 문자, _: 한 문자)
    • IS NULL / IS NOT NULL: NULL 값 여부 확인

➕ 3-2. 함수 (Functions)

  • SQL 함수는 데이터를 가공하고 계산하기 위해 사용되며, 단일 행 함수와 집계 함수로 나뉩니다.
구분설명주요 함수
단일 행 함수각 행(Row)마다 개별적으로 적용되어 하나의 결과를 반환문자: SUBSTR, REPLACE, LENGTH
숫자: ROUND, TRUNC, MOD
날짜: SYSDATE, TO_CHAR, TO_DATE
변환/일반: NVL/ISNULL, COALESCE, CASE
집계 함수여러 행(Row)을 그룹화하여 하나의 결과를 반환COUNT(), SUM(), AVG(), MAX(), MIN()
  • CASE: IF-THEN-ELSE 논리를 SQL로 구현하는 매우 중요한 조건부 함수입니다.
    SELECT ENAME,
           CASE WHEN SAL >= 3000 THEN 'High'
                WHEN SAL >= 2000 THEN 'Mid'
                ELSE 'Low'
           END AS SALARY_GRADE
    FROM EMP;
  • NVL(A, B) / ISNULL(A, B): A가 NULL이면 B를, 아니면 A를 반환.
  • COALESCE(A, B, C...): 첫 번째로 NULL이 아닌 값을 반환.

✅ 4. 제약조건 (Constraints)

  • 테이블에 잘못된 데이터가 입력되는 것을 방지하기 위한 데이터베이스 규칙입니다. 데이터의 무결성을 보장하는 핵심적인 기능입니다.
제약조건설명
PRIMARY KEY (기본 키)테이블의 각 행을 유일하게 식별. (UNIQUE + NOT NULL)
FOREIGN KEY (외래 키)다른 테이블의 PRIMARY KEY를 참조하여 테이블 간의 관계를 정의 (참조 무결성)
UNIQUE (고유 키)해당 컬럼의 모든 값이 유일해야 함. (NULL 허용, 단 한 번만)
NOT NULL해당 컬럼에 NULL 값이 입력되는 것을 방지.
CHECK입력될 수 있는 값의 범위나 조건을 지정. (e.g., AGE >= 19)

📌 요약

  • SQL은 기능에 따라 DDL, DML, DCL, TCL로 분류되며, 각 명령어 그룹의 특징과 트랜잭션 관계를 이해해야 합니다.
  • SELECT 문의 논리적 실행 순서(FROMWHERE → ...)를 반드시 숙지해야 복잡한 쿼리를 정확하게 해석하고 작성할 수 있습니다.
  • WHERE 절은 개별 행을, HAVING 절은 그룹화된 결과를 필터링하는 차이점을 명확히 알아야 합니다.
  • 제약조건은 데이터의 정확성과 일관성을 보장하기 위한 데이터베이스 규칙으로, 테이블 설계 시 매우 중요합니다.

0개의 댓글