728x90
SQL(Structured Query Language)의 주요한 문법을 카테고리화하면 DDL, DML, DCL로 표현할 수 있다.
DBMS에서 DB를 정의하고 조작하며 관리하는데 사용되는 세가지 언어의 종류에 대해서 알아보았다.
개인적으로는 각각의 이니셜의 풀네임만 기억해도 어느정도 카테고리를 파악할 수 있었다.
DDL (Data Definition Language)
DDL은 말 그대로 데이터베이스 구조를 정의하는데 사용되는 언어를 의미한다.
대표적으로 CREATE, ALTER, DROP이 있다.
table, view, index 등 DB 개체를 생성, 수정, 삭제하는 명령어를 가리킨다.
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
ALTER TABLE users ADD COLUMN email VARCHAR(100);
DROP TABLE users;
DML (Data Manipulation Language)
DML은 말 그대로 데이터를 가공하기 위해서 사용하는 언어를 의미한다.
대표적으로 SELECT, INSERT, DELETE, UPDATE가 있다.
⛈ SELECT는 직접적으로 데이터를 가공하지는 않기 때문에 헷갈리기 쉬운 부분같다.
DB의 Table의 레코드를 조작하는 언어들이다.
SELECT * FROM users;
INSERT INTO users (id, name, age) VALUES (1, 'John', 30);
UPDATE users SET age = 31 WHERE name = 'John';
DELETE FROM users WHERE age > 30;
DCL(Data Control Language)
DCL은 가장 덜 사용하고 생소하다고 느껴지는(물론, 굉장히 중요하지만) 권한과 보안에 관한 SQL문을 의미한다.
대표적인 명령어로 GRANT와 REVOKE가 있다.
각각 DB 개체에 대한 권한을 부여하고 박탈하는 것을 의미한다.
GRANT SELECT, INSERT ON users TO user1;
REVOKE INSERT ON users FROM user2;
그 외에도 COMMIT, ROLLBACK, SAVEPOINT 등 트랜잭션을 관리하는 명령어들인 TCL(Transaction Control Language)이 있다.
또한, SELECT문을 따로 DQL(Data Query Language)로 구분하기도 한다.
728x90
'기타' 카테고리의 다른 글
Headless UI란? (0) | 2023.09.03 |
---|---|
선언적 프로그래밍이란? (0) | 2023.08.30 |
SSH(Secure Shell)에 대해서 (0) | 2023.08.16 |
nvm 대신 asdf 사용하기 (0) | 2023.08.11 |
SemVer에 대해서 알아보기 (0) | 2023.08.06 |