IT개발

SQL DDL, DML, DCL 명령어 정리 및 활용 예시

우리모두 개발자되기 2025. 5. 5. 16:45

 

SQL DDL, DML, DCL 명령어 정리 및 활용 예시 (정보처리기사 1과목 완전 정복)

SQL(Structured Query Language)은 데이터베이스를 다루기 위한 표준 언어입니다.
SQL은 단순한 데이터 조회를 넘어, 테이블 생성부터 데이터 조작, 사용자 권한 관리까지 다양한 기능을 제공합니다.

이 글에서는 정보처리기사 1과목의 핵심 주제 중 하나인 DDL, DML, DCL 명령어의 개념과 구문, 그리고 활용 예시를 정리합니다.
SQL이 처음이더라도 이해할 수 있도록 구성했으며, 실무에서도 바로 써먹을 수 있는 예제도 함께 포함했습니다.


1. SQL 언어의 3가지 분류

SQL 명령어는 기능에 따라 세 가지로 분류됩니다.

분류 의미 주요 기능
DDL Data Definition Language 데이터 구조 정의 (테이블, 인덱스 등)
DML Data Manipulation Language 데이터 조작 (삽입, 수정, 삭제, 조회)
DCL Data Control Language 권한 부여 및 트랜잭션 제어

각 분류마다 대표적인 명령어를 차례로 살펴보겠습니다.


2. DDL (데이터 정의 언어)

DDL은 데이터베이스 객체를 생성, 수정, 삭제하는 명령어입니다.
주로 테이블, 인덱스, 뷰 등을 정의할 때 사용됩니다.

주요 명령어

  • CREATE: 테이블, 인덱스, 뷰 등을 생성
  • ALTER: 기존 객체의 구조 변경
  • DROP: 객체 완전 삭제
  • TRUNCATE: 테이블의 모든 데이터를 빠르게 삭제 (구조는 유지)

(1) CREATE TABLE 예시

CREATE TABLE Student (
  student_id INT PRIMARY KEY,
  name VARCHAR(50),
  major VARCHAR(30),
  admission_date DATE
);

→ 학생 정보를 저장하는 테이블 생성


(2) ALTER TABLE 예시

ALTER TABLE Student
ADD phone_number VARCHAR(15);

→ Student 테이블에 전화번호 컬럼 추가


(3) DROP TABLE 예시

DROP TABLE Student;

→ Student 테이블을 완전히 삭제


(4) TRUNCATE TABLE 예시

TRUNCATE TABLE Student;

→ 모든 데이터를 삭제하되 테이블 구조는 유지


3. DML (데이터 조작 언어)

DML은 테이블 내의 데이터를 조회하거나 변경할 때 사용하는 명령어입니다.
CRUD(Create, Read, Update, Delete) 작업을 수행할 수 있습니다.

주요 명령어

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

(1) SELECT 예시

SELECT student_id, name
FROM Student
WHERE major = '컴퓨터공학';

→ 전공이 컴퓨터공학인 학생 목록 조회


(2) INSERT 예시

INSERT INTO Student (student_id, name, major, admission_date)
VALUES (1001, '홍길동', '정보통신', '2023-03-01');

→ Student 테이블에 새로운 학생 정보 삽입


(3) UPDATE 예시

UPDATE Student
SET major = '컴퓨터공학'
WHERE student_id = 1001;

→ 학번이 1001번인 학생의 전공을 수정


(4) DELETE 예시

DELETE FROM Student
WHERE student_id = 1001;

→ 해당 학생의 데이터를 삭제


4. DCL (데이터 제어 언어)

DCL은 데이터베이스 사용자 권한을 제어하거나, 트랜잭션을 관리하는 명령어입니다.

주요 명령어

  • GRANT: 권한 부여
  • REVOKE: 권한 회수
  • COMMIT: 트랜잭션 확정
  • ROLLBACK: 트랜잭션 취소
  • SAVEPOINT: 중간 저장점 설정

(1) GRANT 예시

GRANT SELECT, INSERT ON Student TO userA;

→ userA에게 Student 테이블에 대해 조회 및 삽입 권한 부여


(2) REVOKE 예시

REVOKE INSERT ON Student FROM userA;

→ userA의 삽입 권한 회수


(3) COMMIT / ROLLBACK 예시

BEGIN;

UPDATE Student
SET major = '전자공학'
WHERE student_id = 1002;

-- 문제가 없으면 저장
COMMIT;

-- 문제가 생기면 취소
-- ROLLBACK;

→ 트랜잭션 기반으로 작업을 묶고, 일괄 저장 또는 취소 처리 가능


5. SQL 예제 종합 연습

시나리오: 학생과 수강 정보를 관리하는 데이터베이스 구성

테이블 생성

CREATE TABLE Course (
  course_id INT PRIMARY KEY,
  course_name VARCHAR(50)
);

CREATE TABLE Enrollment (
  student_id INT,
  course_id INT,
  grade CHAR(1),
  PRIMARY KEY(student_id, course_id)
);

데이터 삽입

INSERT INTO Course VALUES (1, '데이터베이스');
INSERT INTO Course VALUES (2, '운영체제');

INSERT INTO Enrollment VALUES (1001, 1, 'A');
INSERT INTO Enrollment VALUES (1001, 2, 'B');

데이터 조회

SELECT s.name, c.course_name, e.grade
FROM Student s
JOIN Enrollment e ON s.student_id = e.student_id
JOIN Course c ON e.course_id = c.course_id;

→ 학생의 수강 내역과 성적을 조인 쿼리로 출력


6. 정리 및 학습 팁

SQL 명령어 요약표

분류 명령어 주요 기능
DDL CREATE, ALTER, DROP, TRUNCATE 테이블 구조 정의/변경/삭제
DML SELECT, INSERT, UPDATE, DELETE 데이터 조회 및 조작
DCL GRANT, REVOKE, COMMIT, ROLLBACK 권한 및 트랜잭션 제어

학습 팁

  • DDL → 테이블 설계 시 사용
  • DML → 실제 데이터 작업에 사용
  • DCL → 보안과 트랜잭션 제어용으로 관리자 필수 지식

정보처리기사 시험에서는 단순 구문보다는 명령어의 목적, 용도, 실행 결과를 이해하는 것이 중요합니다.
실무에서도 DB 설계자와 개발자 모두 DDL, DML, DCL의 정확한 사용이 필수입니다.


7. 마무리

SQL은 데이터베이스의 언어이며, 그 안에서도 DDL, DML, DCL은 각각의 역할과 책임을 가진 핵심 명령어 집합입니다.
특히 정보처리기사에서는 명령어의 문법뿐 아니라 사용 목적, 조합 예시, 실행 결과 해석 능력까지 평가합니다.

  • DDL은 구조를 만든다
  • DML은 데이터를 움직인다
  • DCL은 시스템을 통제한다

이 세 가지를 균형 있게 익히면, 데이터베이스를 자유자재로 다룰 수 있게 됩니다.
이제 연습 DB를 하나 만들어 직접 실습해보는 건 어떨까요?