SQL 개념 및 실무 적용

발행: (2026년 4월 11일 오후 09:24 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

DDL vs DML

DDL (Data Definition Language) – 테이블과 같은 데이터베이스 객체를 정의하고 구조화하는 데 사용됩니다.
DML (Data Manipulation Language) – 해당 테이블 안의 데이터를 관리하고 조작하는 데 사용됩니다.

구분DDL (데이터 정의 언어)DML (데이터 조작 언어)
목적데이터베이스 구조 정의테이블의 데이터 조작
명령어CREATE, ALTER, DROPINSERT, UPDATE, DELETE
효과스키마 변경레코드/데이터 변경
예시CREATE TABLE students (...);INSERT INTO students VALUES (...);

CREATE, INSERT, UPDATE, DELETE 사용

  • CREATEstudents, exam_results, subjects와 같은 테이블을 정의합니다.
  • INSERT – 테이블에 레코드를 추가합니다.
INSERT INTO students (id, name, city) VALUES (1, 'John Doe', 'Nairobi');
  • UPDATE – 기존 데이터를 수정합니다. 예를 들어 학생의 도시를 변경하거나 점수를 정정합니다.
UPDATE students
SET city = 'Mombasa'
WHERE id = 1;
  • DELETE – 잘못되었거나 취소된 레코드를 삭제합니다. 예시: 시험 결과 테이블에서 result_id = 9 삭제.
DELETE FROM exam_results
WHERE result_id = 9;

WHERE 절을 이용한 데이터 필터링

WHERE 절은 특정 조건에 따라 레코드를 필터링합니다. 흔히 사용하는 연산자는 다음과 같습니다:

  • = (같음)
  • > (보다 큼)
CASE
    WHEN marks >= 75 THEN 'Distinction'
    WHEN marks >= 60 THEN 'Merit'
    WHEN marks >= 40 THEN 'Pass'
    ELSE 'Fail'
END AS grade
FROM exam_results;

회고

이번이 SQL을 사용한 첫 주였습니다. SQL이 데이터를 효율적으로 관리하고 분석하는 방식을 배웠습니다. 가장 흥미로웠던 부분은 처음부터 테이블을 만들고 데이터를 채워 넣는 것이었으며, SELECT * 로 결과를 확인했을 때의 감동은 이루 말할 수 없었습니다. 가장 큰 도전은 다중 행 INSERT 문과 필터링 조건에서 정확한 구문을 맞추는 것이었으며, 작은 실수(예: 쉼표 누락) 때문에 오류가 발생하곤 했습니다.

전체적으로 이번 경험을 통해 실제 상황에서 데이터베이스 구조와 데이터 조작에 대한 이해도가 크게 향상되었습니다. 아직 시작 단계에 불과하지만 이미 SQL을 사랑하게 되었습니다.

0 조회
Back to Blog

관련 글

더 보기 »

[Rust Guide] 8.2. 벡터와 Enum 응용

Rust Guide 8.2. Vector와 Enum 응용 프로그램의 표지 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%...

Git diff driver를 구축하는 방법

2024년 11월부터 쓰고 싶어 했던 것 중 하나는 https://gitlab.com/tanna.dev/jvt.me/-/work_items/1358 에서 diff를 위한 external command를 만드는 방법입니다.

Common Lisp로 MCP 서버 구축

전제 조건 시작하기 전에 다음이 설치되어 있는지 확인하십시오: - SBCL – 고성능 Common Lisp 컴파일러 - Roswell – Common Lisp 구현