Cardemy Card emy ← 탐색으로 돌아가기
S

SQL 기초 문법 정리

개발자·데이터 분석가·정보처리기사 응시자를 위한 SQL 핵심 문법을 한 장씩 정리했습니다. SELECT·JOIN·GROUP BY·서브쿼리·윈도우 함수·트랜잭션까지 실무와 시험 모두에서 자주 마주치는 주제를 중심으로 구성했고, 각 카드에 실제 쿼리 예시와 주의점을 담았습니다.

18 문항 0 복사 데모 2026.04.20

수록 문항

총 18개

아래 문항들은 이 학습지에 수록된 카드입니다. 각 카드는 문제(Q)와 답(A)으로 구성되어 있으며, 일부 카드에는 추가 해설이 포함되어 있습니다. 로그인하면 이 학습지를 내 계정으로 복사해 카드를 한 장씩 넘기며 반복 학습할 수 있고, 숙달한 카드는 완료 표시하여 다음 세션에서 제외할 수 있습니다.

  1. #1
    Q.

    테이블에서 모든 컬럼을 조회하는 SQL

    A.

    SELECT * FROM 테이블명;

    운영 DB에서 *는 성능·유지보수 관점에서 지양하고, 필요한 컬럼만 명시하는 것이 좋다.
  2. #2
    Q.

    조건을 걸어 특정 행만 조회하는 절

    A.

    WHERE

    AND·OR·IN·BETWEEN·LIKE 같은 연산자와 결합해 복합 조건을 만든다.
  3. #3
    Q.

    중복 행을 제거하고 조회하는 키워드

    A.

    DISTINCT

    SELECT DISTINCT col FROM t 형태로 사용. 성능 비용이 있어 인덱스·GROUP BY와 비교해 선택한다.
  4. #4
    Q.

    두 테이블의 공통 행을 결합하는 조인

    A.

    INNER JOIN

    기준 컬럼이 양쪽에 모두 존재할 때만 행이 반환된다. 기본 JOIN 키워드만 써도 동일.
  5. #5
    Q.

    왼쪽 테이블의 모든 행을 보존하는 조인

    A.

    LEFT OUTER JOIN

    오른쪽에 매칭이 없으면 NULL로 채워진다. 누락 데이터 탐지에 자주 쓰인다.
  6. #6
    Q.

    여러 행을 묶어 집계하는 절

    A.

    GROUP BY

    SELECT에 등장하는 비집계 컬럼은 모두 GROUP BY에 포함되어야 한다.
  7. #7
    Q.

    집계 결과에 조건을 거는 절 (WHERE와 구분)

    A.

    HAVING

    WHERE는 행 단위 필터, HAVING은 그룹 단위 필터. 순서는 WHERE → GROUP BY → HAVING.
  8. #8
    Q.

    조회 결과를 정렬하는 절

    A.

    ORDER BY

    ASC(기본)·DESC 지정 가능. 여러 컬럼을 콤마로 나열해 다단계 정렬도 가능.
  9. #9
    Q.

    결과 행 수를 제한하는 구문 (Postgres/MySQL)

    A.

    LIMIT

    LIMIT 10 OFFSET 20 형태로 페이지네이션. 대용량에서는 keyset pagination을 검토.
  10. #10
    Q.

    테이블 내 새 행을 추가하는 명령

    A.

    INSERT INTO

    INSERT INTO t (c1, c2) VALUES (...). 다중 행 삽입은 VALUES를 콤마로 나열.
  11. #11
    Q.

    기존 행을 수정하는 명령

    A.

    UPDATE

    WHERE 절을 빠뜨리면 모든 행이 갱신되므로 반드시 확인. 트랜잭션으로 감싸는 것이 안전.
  12. #12
    Q.

    행을 삭제하는 명령

    A.

    DELETE

    DELETE FROM t WHERE ... 형태. 전체 삭제는 TRUNCATE가 더 빠르나 트리거·롤백 특성이 다르다.
  13. #13
    Q.

    SELECT 결과를 다른 쿼리의 조건·소스로 쓰는 기법

    A.

    서브쿼리 (Subquery)

    스칼라 서브쿼리·인라인 뷰·상관 서브쿼리로 나뉜다. EXISTS가 IN보다 효율적인 경우가 많다.
  14. #14
    Q.

    행별로 순위·누적 합계 등을 계산하는 함수 군

    A.

    윈도우 함수

    ROW_NUMBER(), RANK(), SUM() OVER (PARTITION BY ...) 형태. GROUP BY와 달리 행 단위 유지.
  15. #15
    Q.

    DB 조회 성능을 높이기 위해 컬럼에 설정하는 자료구조

    A.

    인덱스 (Index)

    B-Tree가 기본. 쓰기 성능·디스크 비용이 늘어나므로 조회 패턴에 맞춰 선택적으로 생성.
  16. #16
    Q.

    일련의 SQL을 원자적으로 실행하기 위한 단위

    A.

    트랜잭션 (Transaction)

    BEGIN → COMMIT/ROLLBACK. ACID 속성을 보장. 장기 트랜잭션은 락 경합을 일으킬 수 있어 짧게 유지.
  17. #17
    Q.

    NULL을 다른 값으로 치환하는 표준 함수

    A.

    COALESCE

    COALESCE(col, 0)처럼 사용. Oracle은 NVL, MSSQL은 ISNULL이 유사 기능.
  18. #18
    Q.

    두 SELECT의 결과를 행 단위로 합치는 집합 연산자

    A.

    UNION

    UNION은 중복 제거, UNION ALL은 중복 유지(더 빠름).

이 학습지를 효과적으로 활용하는 방법

  • ① 처음에는 전체 문항을 한 번씩 훑어보며 익숙한 항목과 낯선 항목을 분류하세요.
  • ② 학습 세션에서 "안 외운 문항만" 옵션으로 아직 숙달하지 못한 카드에 집중합니다.
  • ③ 랜덤 순서 학습을 활용해 카드 순서에 의존한 암기를 방지하세요.
  • ④ 키보드 단축키(1·2·A·D·Space)를 쓰면 한 손으로도 빠르게 복습할 수 있습니다.
  • ⑤ 복사(Fork)한 학습지에는 자유롭게 나만의 해설이나 예문을 덧붙여 내 스타일로 다듬어 보세요.

카데미에 로그인하면 이 학습지를
내 학습지로 복사하여 바로 학습할 수 있습니다.