데이터 제어어는 권한 부여와 권한 회수를 담당한다. 접근 권한을 주는 명령과 회수하는 명령이 제어어의 중심을 이룬다. 데이터의 검색과 삽입과 갱신은 조작어가 맡으므로 제어어와 구분한다.
데이터 언어는 사용 목적에 따라 세 갈래로 나뉜다. 테이블이나 뷰를 구축하거나 삭제하는 기능은 정의어의 몫이고, 데이터베이스의 정의와 변경과 삭제도 정의어가 처리한다. 데이터 조작은 조작어, 권한 제어는 제어어다.
SQL은 정의어와 조작어와 제어어의 기능을 아우른다. 질의어를 SQL의 공식 분류로 따로 세우지 않으며, 질의어 자체는 터미널에서 주로 쓰는 비절차적 언어다.
명령의 성격을 가르는 문항에서는 구조를 다루는 명령과 값을 다루는 명령을 나눈다. 테이블 구조를 만들고 바꾸고 없애는 명령이 한 묶음으로 나오고 그 사이에 검색 명령이 하나 끼어 있으면, 성격이 다른 것은 검색 명령이다. 반대로 구조 명령들 사이에 값만 다루는 명령이 끼어 있어도 같은 원리로 갈라낸다.
예제
선지 판단은 권한 부여와 회수를 제어어의 기능으로 읽는지, 데이터의 검색·삽입·갱신을 조작어로 돌리는지, 테이블과 뷰의 구축과 삭제를 정의어로 잡는지, 질의어를 비절차적 언어로 이해하는지, 구조 명령 사이에 섞인 검색 명령을 성격이 다른 하나로 골라내는지에서 갈린다.
대표 기출 3문항
데이터 언어는 사용 목적에 따라 세가지로 나누어지는데 그 중 테이블이나 뷰를 구축 또는 삭제하는 기능을 가진 것은?
절차적 데이터 조작어
비절차적 데이터 조작어
데이터 정의어(DDL)
데이터 제어어(DCL)
정답과 해설 보기
정답 ③ · 테이블이나 뷰의 구축 및 삭제 기능을 가진 데이터 언어를 묻는 문제이다. 데이터 언어는 정의어(DDL), 조작어(DML), 제어어(DCL)로 나뉜다.
테이블·뷰의 생성(CREATE)·삭제(DROP)는 데이터 정의어(DDL)의 기능이다.
데이터 언어에 대한 설명으로 옳지 않은 것은?
데이터 언어는 사용 목적에 따라 데이터 정의어, 데이터 조작어, 데이터 제어어로 나누어진다.
데이터 조작어(DML)에는 질의어가 있으며, 질의어는 터미널에서 주로 이용하는 절차적(procedural) 데이터 언어이다.
데이터 제어어(DCL)는 데이터를 보호하고 데이터를 관리하는 목적으로 사용된다.
데이터 정의어(DDL)는 데이터베이스를 정의하거나 수정할 목적으로 사용하는 언어이다.
정답과 해설 보기
정답 ② · 데이터 언어에 대한 설명 중 옳지 않은 것을 고르는 문제이다. 질의어는 터미널에서 주로 이용하는 언어이지만 어떻게가 아니라 무엇을 지정하는 비절차적 데이터 언어이다.
질의어(query language)는 터미널에서 주로 쓰는 '비절차적' 데이터 언어이므로 '절차적'이라는 설명은 틀리다.
SQL 언어의 데이터 제어어(DCL)에 해당하는 것은?
SELECT문
INSERT 문
UPDATE문
GRANT 문
정답과 해설 보기
정답 ④ · SQL 언어 중 데이터 제어어(DCL)에 해당하는 명령을 고르는 문제이다. DCL은 사용자에게 데이터에 대한 접근 권한을 부여하거나 회수하는 역할을 하며 대표적인 명령어가 GRANT와 REVOKE이다.