다른 언어도 명령어가 있듯이, DB에도 명령어가 있다. 오늘은 관계형 데이터베이스(DBMS)에서 쓰이는 SQL의 구조와 명령어에 대해서 알아보려고 한다.
SQL 이란(Structured Query Language)의 약자로 구조화된 쿼리 언어이다.
관계형 데이터베이스에 저장된 데이터를 관리하고 처리하기 위한 프로그래밍 언어라고도 한다.
이 SQL의 구조를 보면 크게 DML, DDL, DCL, TCL 4가지로 볼 수 있다.

오늘은 그 중에서 DML, DDL, DCL 3가지에 대해서 알아보려고 한다.
DDL이란(DDL: Data Definition Language)의 약자로 데이터베이스의 구조를 정의하는 명령어이다.
데이터베이스의 뼈대를 만드는 명령어로, 테이블을 생성, 수정, 삭제 할 수 있다.
CREATE
CREATE TABLE 학생 ( -- 말 그대로 '학생'이라는 테이블을 생성해준다.
학생ID INT PRIMARY KEY,
이름 VARCHAR(50),
나이 INT,
전공 VARCHAR(50) -- 총 4가지로 학생, 이름, 나이, 전공 순으로 타입에 맞게 생성 해줄수있다.
);
ALTER
ALTER TABLE 학생 ADD COLUMN 주소 VARCHAR(100);
--'학생' 테이블에 주소라는 열을 추가해줄 수 있다. 타입은 VARCHAR 타입이고 길이는 100이다.
여기서 VARCHAR는
가변 길이 문자열을 뜻함. 문자와 숫자를 저장할 수 있는 데이터 타입이다.
DROP
DROP TABLE 학생;
-- 학생이라는 테이블을 삭제한다. 테이블을 삭제하는 것이기에 안에 있는 데이터도 같이 삭제된다.
DML은(DML: Data Manipulation Language)의 약자로 데이터를 조작하는 명령어 이다.
데이터를 조회, 추가, 수정, 삭제 할 수 있다.
SELECT
SELECT * FROM 학생; --학생 테이블의 전체 데이터를 조회 할 수 있다.
INSERT
INSERT INTO 학생 (학생ID, 이름, 나이, 전공) VALUES (4, '박지민', 23, '화학공학');
--학생 테이블에 학생ID, 이름, 나이, 전공 순으로 4, '박지민', 23, '화학공학' 값이 추가됨.
UPDATE
UPDATE 학생 SET 나이 = 22 WHERE 학생ID = 1;
--학생 테이블에 학생ID가 1인 데이터 중 나이를 22로 수정한다.
DELETE
DELETE FROM 학생 WHERE 학생ID = 2;
--학생 테이블에 학생ID가 2인 데이터를 전체 삭제한다.
--DROP과는 다르게 WHERE 조건을 걸어 테이블 안에 있는 일정 데이터 삭제가 가능하다.
DCL이란(DCL: Data Contral Language)의 약자로 데이터를 제어하는 명령어이다.
데이터베이스에 대한 접근 권한을 제어할 수 있다.
GRANT
GRANT SELECT, INSERT ON 학생 TO 사용자1;
--사용자1에게 학생테이블의 SELECT, INSERT 권한을 부여한다.
REVOKE
REVOKE INSERT ON 학생 FROM 사용자1;
--사용자1에게 학생테이블의 INSERT 권한을 취소한다.
<출처>