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를 하나 만들어 직접 실습해보는 건 어떨까요?
'IT개발' 카테고리의 다른 글
이산 시간 신호와 시스템: 디지털 신호처리의 핵심 개념 정리 (0) | 2025.05.05 |
---|---|
ER 모델에서 관계형 스키마로 변환하는 절차 (0) | 2025.05.05 |
정규화 단계별 설명과 예시 (1NF ~ BCNF ~ 4NF, 5NF, 반정규화) (0) | 2025.05.05 |
On-Device AI(Edge AI) 모델 경량화와 TensorFlow Lite 최적화 (0) | 2025.05.05 |
AI 윤리·편향(Bias) 모니터링·완화 전략 (0) | 2025.05.05 |