SQL 명령은 사용 용도에 따라 DDL, DML, DCL로 나뉜다. DDL(데이터 정의어)은 구조를 정의하는 명령으로 CREATE, ALTER가 여기에 속한다. DML(데이터 조작어)은 데이터를 조작하는 명령으로 INSERT, DELETE, UPDATE, SELECT가 해당하며, 응용 프로그램과 DBMS 사이의 인터페이스 역할을 한다. DCL(데이터 제어어)은 권한 부여와 롤백 등 데이터 접근 제어와 트랜잭션 관리를 담당한다. GRANT는 DCL이므로 INSERT·UPDATE·SELECT 같은 조작어와 성격이 다르고, CREATE도 DDL이라 조작어 묶음에서 빠진다.
UPDATE 문은 기존 튜플의 내용을 변경할 때 쓴다. 새로운 행을 넣는 것은 INSERT이고, 모든 행을 갱신할 때는 WHERE 절이 반드시 필요한 것은 아니다.
그룹(집계) 함수는 여러 행의 값을 모아 하나의 결과를 낸다. 여러 행의 값을 더해 합계를 구하는 함수는 SUM이다. '합계를 구하는 함수 — TOT'처럼 표준에 없는 이름을 붙인 보기는 틀린 연결이 된다. HAVING 절은 GROUP BY로 그룹화된 집합 데이터에 대한 필터링 조건으로 쓰이므로 GROUP BY와 함께 사용해야 한다.
예제
선지 판단은 CREATE를 DDL로, INSERT·UPDATE·DELETE·SELECT를 DML로, GRANT를 DCL로 갈라 놓는지, DML을 응용 프로그램과 DBMS 사이의 인터페이스로 읽는지, UPDATE를 기존 튜플의 내용 변경으로 보는지, 합계 함수를 SUM으로 짝지어 TOT 같은 가짜 이름을 걸러 내는지, HAVING 절을 GROUP BY와 묶는지에서 갈린다.
대표 기출 3문항
데이터 제어 언어(DCL)의 기능으로 볼 수 있는 것은?
데이터 정의 및 변경
데이터 검색
데이터 복구 및 병행제어
데이터 사용자와 DBMS 간의 인터페이스 제공
정답과 해설 보기
정답 ③ · 데이터 제어 언어(DCL)의 기능을 묻는 문제이다. DCL은 GRANT, REVOKE 같은 보안과 권한 부여 및 회수 기능과 COMMIT, ROLLBACK 같은 트랜잭션 제어 기능을 담당하므로 데이터 복구와 병행 제어가 DCL의 기능에 해당한다.
DCL은 데이터 제어 언어로, 권한 부여와 롤백 등 데이터 접근 제어 및 트랜잭션 관리를 담당하는 언어이다.
SQL의 UPDATE 문에 대한 설명으로 옳은 것은?
새로운 튜플을 삽입할 때 사용한다.
테이블 전체를 UPDATE 하기 위해서는 반드시 WHERE 절을 사용하여야 한다.
UPDATE 될 속성의 순서는 CREATE TABLE 에 명시되었던 순서이어야 한다.
튜플의 내용을 변경하는데 사용한다.
정답과 해설 보기
정답 ④ · SQL의 UPDATE 문의 용도와 특성을 묻는 문제이다. UPDATE 문은 이미 존재하는 튜플의 속성값을 수정하는 DML 명령어이므로 튜플의 내용을 변경하는 데 사용한다는 설명이 옳다.
SQL의 UPDATE 문은 기존 튜플의 내용을 변경할 때 사용하며, 새로운 삽입은 INSERT, 전체 업데이트 시 WHERE 절 필수 아님으로 정답입니다.
데이터 처리를 위하여 응용 프로그램과 DBMS 사이의 인터페이스 제공의 역할을 하는 데이터 언어는?
DCL
DUL
DML
DDL
정답과 해설 보기
정답 ③ · 이 문제는 응용 프로그램과 DBMS 사이의 인터페이스 역할을 하는 데이터 언어를 묻는다. DML(Data Manipulation Language)은 데이터의 검색, 삽입, 삭제, 갱신 등을 수행하는 데이터 조작 언어로, 응용 프로그램이 DBMS의 데이터를 실질적으로 접근하고 조작할 수 있는 인터페이스를 제공한다.
응용 프로그램과 DBMS 간 데이터 조작을 위한 인터페이스는 DML(데이터 조작 언어)이다.