SQL 명령어(정의어, 조작어, 제어어) 확실히 알고 계신가요? 이번 글에서는 데이터 정의어, 데이터 조작어, 데이터 제어어가 각각 언제 사용되고 어떤 명령어 들이 있는 지 알아보겠습니다. 주요 명령어는 반드시 암기하세요.
데이터 정의어 (DDL: Data Definition Language)
데이터 정의어는 말 그대로 데이터베이스의 구조를 정의하는 명령어입니다. 데이터베이스를 처음 설계하거나, 테이블을 새로 만들 때 사용합니다.
DDL 주요 특징
-
데이터베이스 객체(테이블, 뷰 등)를 생성하거나 수정, 삭제할 때 사용합니다.
-
실행 즉시 데이터베이스에 반영됩니다.
-
데이터를 다루기보다는 구조를 다룹니다.
DDL 주요 명령어
-
CREATE: 새로운 데이터베이스 객체를 생성합니다.
-
예: 학생 정보를 저장하는 테이블을 만들기
CREATE TABLE students ( id INT, name VARCHAR(50), age INT );
-
-
ALTER: 기존의 테이블 구조를 수정합니다.
-
예: 학생 테이블에 성별(gender) 컬럼 추가하기
ALTER TABLE students ADD COLUMN gender CHAR(1);
-
-
DROP: 데이터베이스 객체를 삭제합니다.
-
예: 학생 테이블 삭제하기
DROP TABLE students;
-
-
TRUNCATE: 테이블의 모든 데이터를 삭제하지만, 테이블 구조는 유지합니다.
-
예: 학생 테이블의 모든 데이터 삭제하기
TRUNCATE TABLE students;
-
데이터 조작어 (DML: Data Manipulation Language)
데이터 조작어는 테이블에 저장된 데이터를 실제로 삽입, 수정, 삭제, 조회할 때 사용합니다. 쉽게 말해, 데이터를 다루는 데 사용되는 명령어입니다.
DML 주요 특징
-
데이터를 추가하거나 수정, 삭제, 조회할 때 사용합니다.
-
트랜잭션 처리가 가능합니다. (
COMMIT
또는ROLLBACK
필요)
DML 주요 명령어
-
SELECT: 테이블의 데이터를 조회합니다.
-
예: 나이가 20살 이상인 학생 조회하기
SELECT * FROM students WHERE age >= 20;
-
-
INSERT: 데이터를 테이블에 삽입합니다.
-
예: 새로운 학생 정보 추가하기
INSERT INTO students (id, name, age, gender) VALUES (1, 'John', 21, 'M');
-
-
UPDATE: 기존 데이터를 수정합니다.
-
예: 학생의 나이를 22살로 수정하기
UPDATE students SET age = 22 WHERE id = 1;
-
-
DELETE: 데이터를 삭제합니다.
-
예: ID가 1번인 학생 정보 삭제하기
DELETE FROM students WHERE id = 1;
-
데이터 제어어 (DCL: Data Control Language)
데이터 제어어는 데이터베이스의 보안과 권한을 관리하거나, 트랜잭션을 제어할 때 사용됩니다.
DCL 주요 특징
-
사용자에게 권한을 부여하거나 제거할 때 사용합니다.
-
데이터베이스의 보안을 담당합니다.
DCL 주요 명령어
-
GRANT: 특정 사용자에게 데이터베이스 접근 권한을 부여합니다.
-
예: user1에게
SELECT
와INSERT
권한 부여하기GRANT SELECT, INSERT ON students TO user1;
-
-
REVOKE: 특정 사용자에게 부여된 권한을 제거합니다.
-
예: user1에게서
INSERT
권한 제거하기REVOKE INSERT ON students FROM user1;
-
-
트랜잭션 제어 명령어
-
COMMIT: 트랜잭션을 완료하고 변경 사항을 저장합니다.
COMMIT;
-
ROLLBACK: 트랜잭션을 취소하고 변경 사항을 되돌립니다.
ROLLBACK;
-
SAVEPOINT: 트랜잭션 내 복구 지점을 설정합니다.
SAVEPOINT savepoint_name;
-
DDL, DML, DCL의 차이점
분류 | 설명 | 주요 명령어 |
---|---|---|
데이터 정의어 (DDL) | 데이터베이스 구조 정의 및 수정 | CREATE , ALTER , DROP , TRUNCATE |
데이터 조작어 (DML) | 테이블의 데이터 추가, 수정, 삭제, 조회 | SELECT , INSERT , UPDATE , DELETE |
데이터 제어어 (DCL) | 권한 관리 및 트랜잭션 제어 | GRANT , REVOKE , COMMIT , ROLLBACK |
마무리
SQL 명령어는 크게 세 가지로 나뉘며 각각의 역할이 다릅니다. 데이터베이스의 구조를 다룰 때는 DDL을, 데이터를 다룰 때는 DML을, 보안 및 트랜잭션 관리는 DCL을 사용합니다. 각각의 명령어를 잘 이해하고 상황에 맞게 사용하는 것이 SQL을 효과적으로 다루는 첫걸음입니다.
[…] SQL 명령어(정의어, 조작어, 제어어) […]
[…] SQL 명령어(정의어, 조작어, 제어어) […]