정보처리기사 CBT
종목 메뉴

개념 한 쪽

정보처리기사 오류 처리 — SQL 명령 분류와 DML·DDL·DCL

SQL 문법 오류를 줄이려면 명령의 목적과 키워드 위치를 정확히 구분한다. 데이터 조작, 구조 정의, 권한 제어는 서로 다른 언어 범주에 속하며, 그룹화 조건과 삽입 문법도 정해진 짝을 따른다.

2026-11-08 기준 · 정보처리기사 대시보드

이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용

가입 없이 오늘의 10문제 바로 풀기 →

시험에 이렇게 나온다

출제기준 단원 「오류 처리」의 공개 문제 3개를 묻는 꼴별로 나누면 이렇습니다.

묻는 꼴문제 수무엇을 묻나
데이터 조작어의 역할 구분1사용자와 DBMS 사이에서 데이터 처리 도구가 되는 언어를 가린다
삽입 명령의 문법 판별1테이블에 튜플을 넣는 INSERT 문의 키워드 순서를 가린다
데이터 제어어의 정의 매칭1공용 데이터 제어를 담당하는 언어를 DCL로 연결한다

뜻

SQL 명령은 DML, DDL, DCL 등으로 나뉜다. DML은 데이터 조작어로서 SELECT, INSERT, UPDATE, DELETE가 데이터의 조회와 추가, 수정, 삭제를 담당한다. DDL은 데이터 정의어로서 CREATE, ALTER, DROP이 테이블이나 데이터베이스 구조의 생성과 변경, 삭제를 담당한다. DCL은 데이터 제어어로서 권한 부여와 취소를 통해 데이터 접근을 제어한다.

DML은 사용자나 응용 프로그램과 DBMS 사이에서 데이터를 처리할 수 있게 하는 인터페이스를 제공한다. DDL은 논리적·물리적 데이터 구조 정의에 해당하므로 DCL의 기능으로 보지 않는다. DCL은 보안, 무결성, 병행수행 제어와 관련되며 구조 정의와는 역할이 다르다.

HAVING 절은 GROUP BY로 그룹화된 집합 데이터에 조건을 적용할 때 사용한다. WHERE 절은 그룹화 전의 개별 행을 걸러내는 조건에 쓰이므로 HAVING과 적용 대상이 다르다. 따라서 그룹 집합에 대한 필터링에는 HAVING과 GROUP BY의 결합이 필요하다.

INSERT 문은 INSERT INTO 테이블명(컬럼) VALUES(값) 형식을 따른다. INTO와 VALUES의 위치가 바뀌거나 다른 키워드를 사용하면 문법 오류가 발생한다. 집계 함수에서는 합계에 SUM을 사용하며 TOT은 SQL 표준 함수로 존재하지 않는다.

예제

DML과 DDL의 범위를 뒤바꾸면 오류 판단이 흔들린다. CREATE를 데이터 조작어로 보거나 SELECT를 구조 정의어로 보면 분류가 틀린다. DCL의 기능에 구조 정의를 넣는 것도 범주를 혼동한 경우이다.

HAVING을 GROUP BY 없이 설명하거나 WHERE와 같은 행 단위 조건으로 설명하면 그룹화 필터링의 원리를 놓친다. INSERT 문에서는 INTO를 빼거나 VALUES 대신 다른 키워드를 넣는 형태가 문법 오류를 만든다. 합계 함수 자리에 TOT을 두는 것도 존재하지 않는 함수를 사용한 잘못된 연결이다.

대표 기출 3문항

사용자로 하여금 데이터를 처리할 수 있게 하는 도구로서 사용자(응용프로그램)와 DBMS간의 인터페이스를 제공하는 언어는?

  1. 데이터정의어(DDL)
  2. 데이터 조작어(DML)
  3. 데이터 부속어(DSL)
  4. 데이터 제어어(DCL)
정답과 해설 보기

정답 ② · 사용자와 DBMS 간의 인터페이스를 제공하며 데이터를 처리할 수 있게 하는 언어를 고르는 문제이다. 데이터 조작어(DML)는 SELECT, INSERT, UPDATE, DELETE 등을 통해 사용자나 응용 프로그램이 데이터베이스 내 데이터를 조회하고 조작할 수 있게 하는 언어이다.

사용자가 데이터를 조회하거나 수정하는 등 조작을 수행하는 데 사용하는 언어는 데이터 조작어(DML)이다.

SQL문에서 STUDENT(SNO, SNAME, YEAR, DEPT) 테이블에 "학번 600, 성명 홍길동, 학년 2학년"인 학생 튜플을 삽입하는 명령으로 옳은 것은? (단, SNO는 학번, SNAME은 성명, YEAR는 학년, DEPT는 학생, 교수 구분 필드임.)

  1. INSERT STUDENT INTO VALUES (600, '홍길동', 2);
  2. INSERT FROM STUDENT VALUES (600, '홍길동', 2);
  3. INSERT INTO STUDENT(SNO, SNAME, YEAR) VALUES (600, '홍길동', 2);
  4. INSERT TO STUDENT(SNO, SNAME, YEAR) VALUES (600, '홍길동', 2);
정답과 해설 보기

정답 ③ · STUDENT 테이블에 특정 튜플을 삽입하는 올바른 SQL문을 고르는 문제이다. SQL의 삽입 문법은 INSERT INTO 테이블명(컬럼 목록) VALUES (값 목록) 순서로 작성해야 한다.

SQL 삽입 문법은 'INSERT INTO 테이블명(컬럼) VALUES (값)' 형식을 정확히 따라야 한다.

데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술하는 언어는?

  1. DDL(data definition language)
  2. DML(data manipulation language)
  3. DCL(data control language)
  4. DUL(data user language)
정답과 해설 보기

정답 ③ · 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술하는 언어를 고르는 문제이다. SQL은 기능에 따라 DDL, DML, DCL로 구분되는데, DCL은 GRANT와 REVOKE 등을 통해 데이터에 대한 접근 권한을 부여하고 취소하는 제어 기능을 담당한다.

데이터베이스의 접근 권한과 제어를 담당하는 언어는 DCL(Data Control Language)이다.

자주 묻는 물음

DML과 DDL은 어떻게 구분하나?
DML은 데이터의 조회·삽입·수정·삭제를 담당하고, DDL은 테이블이나 데이터베이스 구조의 생성·변경·삭제를 담당한다. CREATE, ALTER, DROP은 DDL에 속한다.
HAVING 절은 어떤 구문과 함께 사용하나?
HAVING 절은 GROUP BY로 그룹화된 집합 데이터에 조건을 적용할 때 사용한다. WHERE 절은 그룹화 전의 개별 행을 걸러내는 조건에 쓰인다.
INSERT 문의 기본 형식은 무엇인가?
INSERT 문은 INSERT INTO 테이블명(컬럼) VALUES(값) 형식을 따른다. INTO와 VALUES의 위치가 틀리면 문법 오류가 발생한다.
이 개념 문제 10개 풀기 회원용

정보처리기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.