본문 바로가기

데이터와 대화하는 언어 | 정보처리의 흐름 FLOW 03 | K-BOOKS

FLOW 03 · INFORMATION PROCESSING
DIRECTION 03 · 연결된 세계를 걷다 · DB · SQL · 트랜잭션

데이터와 대화하는 언어

DB · SQL · 트랜잭션

QUESTION · 질문에서 시작합니다

데이터베이스 안에 원하는 정보가 있어도 꺼내는 방법을 모르면 사용할 수 없다.

“9월 20일 오전 예약만 보여 줘.”

사람의 말로는 쉽다. 데이터베이스에도 이런 요청을 전달하는 언어가 필요하다.

기술 이름 관계형 데이터베이스에서 데이터를 정의하고 조회하고 조작하기 위해 사용하는 대표 언어가 SQL이다.

먼저 데이터를 조회한다

SELECT reservation_id, member_id, reserve_time FROM reservation;

SELECT는 어떤 열을 볼지, FROM은 어느 테이블에서 가져올지 정한다.

SELECT * FROM reservation WHERE status = '예약';

WHERE를 사용하면 원하는 조건에 맞는 행만 선택할 수 있다.

추가하고, 바꾸고, 지운다

INSERT INTO reservation (reservation_id, member_id, reserve_date, reserve_time) VALUES (1004, 21, '2026-09-20', '14:00');

INSERT는 새로운 데이터를 추가한다.

UPDATE reservation SET status = '취소' WHERE reservation_id = 1004;

UPDATE는 기존 데이터를 수정한다.

DELETE FROM reservation WHERE reservation_id = 1004;

DELETE는 데이터를 삭제한다.

SQL은 역할에 따라 나눌 수 있다

DDL테이블과 같은 데이터 구조를 정의한다.
DML데이터를 조회·추가·수정·삭제한다.
DCL권한을 부여하거나 회수한다.

COMMIT과 ROLLBACK처럼 트랜잭션을 제어하는 명령은 교재나 분류 기준에 따라 DCL에 포함해 설명하기도 하고 TCL(Transaction Control Language)로 별도 구분하기도 한다.

원하는 순서와 그룹으로 묶는다

SELECT member_id, COUNT(*) AS cnt FROM reservation GROUP BY member_id;

같은 회원번호끼리 묶고 각 회원의 예약 건수를 계산할 수 있다.

SELECT member_id, COUNT(*) AS cnt FROM reservation GROUP BY member_id HAVING COUNT(*) >= 3;

HAVING은 그룹을 만든 뒤 그룹 결과에 조건을 적용한다.

SQL은 작성 순서와 처리 흐름이 다르게 느껴진다

SQL은 작성된 순서만 따라 읽기보다 데이터가 처리되는 흐름을 떠올리면 이해가 쉬워진다.

FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
ILLUST B | ILL-08 | SQL 논리적 처리 순서 | SQL 흐름 화살표

어느 테이블에서 가져올지 정하고, 행을 걸러내고, 그룹을 만들고, 그룹을 다시 걸러낸 뒤, 보여줄 열을 선택하고, 마지막으로 정렬한다고 생각하면 된다.

더 찾아보고 싶다면846면 학습 아카이브에서 검색하세요.
K-BOOKS Q&A이 내용이 헷갈리나요?

공부하던 페이지를 자동으로 연결해 질문할 수 있습니다.

RELATED STUDY MATERIALS

이 개념과 이어서 볼 정보처리 자료

학습자료실 65개 →

CONTINUE · INFORMATION PROCESSING ENGINEERDB에서 시험 학습으로 이어가기
이야기형 개념 설명은 그대로 두고, 필요한 시험 요약·문제·실습으로 연결합니다.