SQL, 그리고 DDL, DML, DCL 이란 무엇인가를 짚고 넘어가보자.
1. SQL (Structured Query Language)
SQL 이란 데이터베이스에 Query를 요청하기 위한 구조화된(Structured) 언어(Language)이다.
Query란 질의어 라고하며, 데이터베이스 혹은 정보 시스템에 정보 요청을 할 수 있는 컴퓨터 언어이다.
쉽게 말하면,
Query란 DB 혹은 정보시스템에 질문하기위한 언어
SQL은 Query를 구조화 시킨 언어
원래는 각 정보시스템 마다, 데이터베이스마다 질의어가 달라서 시스템 구성을 변경하게 되면
질의어를 다시 배워야 했다고 한다.
하지만 각 데이터베이스 회사의 협업(?)을 통해 SQL을 어느정도 통일되어 SQL만 공부하면
왠만한 데이터베이스에서 추가적인 공부 없이 SQL을 사용할 수 있다.
2. DDL (Data Definition Language)
우리말로 데이터 정의어 라고 한다.
'정의어' 라고해서 정의만 한다고 생각할 수 있지만,
DDL을 통해서는 [ 생성, 삭제, 수정 ] 등을 할 수 있다.
주로
CREATE TABLE ~
DROP TABLE ~
ALTER TABLE ~
등의 명령어가 쓰인다.
이들을 보면 데이터를 집적 다루는 것이 아니라,
데이터를 담을 공간을 다룬다는 것을 알 수 있다.
3. DML(Data Manipulation Language)
우리말로 데이터 조작어 라고한다.
이전에 DDL을 통해 데이터를 담을 공간의 구조(틀)을 만들어 놓는다면,
이 언어는 데이터를 집적 다룬다.
SELECT ~
INSERT ~
UPDATE ~
DELETE ~
등의 명령어가 있고,
각각의 이는 이미 만들어진 테이블(데이터를 담을 공간)에 접근하여
조회( SELECT )
입력( INSERT )
수정( UPDATE )
삭제( DELETE )
등을 할 수 있다.
4. DCL(Data Control Language)
DCL이란 데이터 제어어 라고한다.
데이터에 접근할 수 있는 권한을 제어한다.
GRANT ~
REVOKE ~
등의 명령어를 통해 권한을 부여(GRANT)
그리고 권한 회수(REVOKE) 할 수 있다.