๐[SQL] DDL์ด๋?
DDL(Data Definition Language) ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ SQL์ ํ์ ์ธ์ด ์ ๋๋ค.
DDL ๋ช ๋ น์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ, ์ธ๋ณ, ์คํค๋ง, ๋ทฐ ๋ฑ๊ณผ ๊ฐ์ ๊ฐ์ฒด๋ค์ ์์ฑ, ์์ , ์ญ์ ํ๋ ์์ ์ ์ํํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ตฌ์กฐ๋ฅผ ์ค์ ํ๊ณ , ๊ทธ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ญ์ ํ๋ ์ญํ ์ ํฉ๋๋ค.
1๏ธโฃ DDL์ ์ฃผ์ ๋ช ๋ น์ด.
1. CREATE
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด(ํ ์ด๋ธ, ์ธ๋ฑ์ค, ์คํค๋ง, ๋ทฐ ๋ฑ) ๋ฅผ ์์ฑํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ํ
์ด๋ธ์ ์์ฑํ ๋
CREATE TABLE
๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํฉ๋๋ค.
์์: ํ ์ด๋ธ ์์ฑ.
CREATE TABLE Users (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
2. ALTER
- ๊ธฐ์กด์ ์์ฑ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด์ ๊ตฌ์กฐ๋ฅผ ์์ ํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ํ ์ด๋ธ์ ์๋ก์ด ์ด์ ์ถ๊ฐํ๊ฑฐ๋, ์ด์ ๋ฐ์ดํฐ ํ์ ์ ๋ณ๊ฒฝํ๋ ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์์: ํ ์ด๋ธ ์ด ์ถ๊ฐ
ALTER TABLE Users
ADD COLUMN age INT;
3. DROP
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๋ฅผ ์ญ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ํ ์ด๋ธ, ์ธ๋ฑ์ค, ๋ทฐ ๋ฑ์ ๊ฐ์ฒด๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
-
DROP
๋ช ๋ น์ด๋ ๋งค์ฐ ๊ฐ๋ ฅํ๋ฉฐ, ํ๋ฒ ๊ฐ์ฒด๊ฐ ์ญ์ ๋๋ฉด ๊ทธ ์์ ๋ชจ๋ ๋ฐ์ดํฐ๋ ํจ๊ป ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
์์: ํ ์ด๋ธ ์ญ์
DROP TABLE Users;
4. TRUNCATE
- ํ
์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ง๋ง, ํ
์ด๋ธ์ ๊ตฌ์กฐ๋ ์ ์งํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ง ์ญ์ ๋๊ณ , ํ ์ด๋ธ ์์ฒด๋ ๋จ์ ์์ผ๋ฏ๋ก ํ ์ด๋ธ์ ๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
-
DELETE
๋ช ๋ น์ด์๋ ๋ฌ๋ฆฌ, ๊ฐ๋ณ ํธ๋์ญ์ ์ ๊ธฐ๋กํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด์ ์ผ๋ก ์ญ์ ํ๋ฏ๋ก ๋ ๋น ๋ฅด๊ฒ ์ํ๋ฉ๋๋ค.
์์: ํ ์ด๋ธ ๋ฐ์ดํฐ ๋ชจ๋ ์ญ์ .
TRUNCATE TABLE Users;
2๏ธโฃ DDL์ ์ฃผ์ ํน์ง.
๋ฐ์ดํฐ ๊ตฌ์กฐ ์ ์.
- DDL ๋ช ๋ น์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ ์ด๋ธ๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ์ญํ ์ ํฉ๋๋ค.
- ํ ์ด๋ธ ์์ฑ, ์์ , ์ญ์ ๊ฐ์ ์์ ์ด ์ฌ๊ธฐ์ ํฌํจ๋ฉ๋๋ค.
์๋ ์ปค๋ฐ.
- DDL ๋ช ๋ น์ด๋ ์คํ ์ฆ์ ์๋์ผ๋ก ์ปค๋ฐ(Commit) ๋ฉ๋๋ค.
- ์ฆ,
CREATE
,ALTER
,DROP
๊ฐ์ ๋ช ๋ น์ด๋ ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ด์ง ์๊ณ , ์คํ๊ณผ ๋์์ ์ฆ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์๋ฉ๋๋ค.
๋น๊ต์ ๋จ์ํ ์์ .
- DDL ๋ช ๋ น์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์กฐ์ํ์ง ์๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ตฌ์กฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ์ด์ ์ ๋ง์ถฅ๋๋ค.
3๏ธโฃ DDL๊ณผ DML์ ์ฐจ์ด์ .
DDL(Data Definition Language)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ์ธ์ด์
๋๋ค.
- ์ฃผ๋ก ํ ์ด๋ธ ์ธ๋ฑ์ค ๋ฑ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
DML(Data Manipulation Language)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ์ธ์ด์
๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ฝ์
(
INSERT
), ์กฐํ(SELECT
), ์์ (UPDATE
), ์ญ์ (DELETE
)ํ๋ ์์ ์ด DML์ ํด๋นํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ฝ์
(
4๏ธโฃ DDL ์ฌ์ฉ ์์.
-- ํ
์ด๋ธ ์์ฑ
CREATE TABLE Employees (
emp_id INT PRIMARY KEY,
emp_name VARCHAR(100),
emp_salary DECIMAL(10, 2)
);
-- ํ
์ด๋ธ ์์ (์๋ก์ด ์ด ์ถ๊ฐ)
ALTER TABLE Employees
ADD COLUMN emp_department VARCHAR(50);
-- ํ
์ด๋ธ ๋ฐ์ดํฐ ์ผ๊ด ์ญ์ (ํ
์ด๋ธ ๊ตฌ์กฐ๋ ์ ์ง)
TRUNCATE TABLE Employees;
-- ํ
์ด๋ธ ์ญ์
DROP TABLE Employees;
5๏ธโฃ ์์ฝ.
DDL(Data Definition Language)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ ์ด๋ธ, ์ธ๋ฑ์ค, ์คํค๋ง์ ๊ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ SQL ์ธ์ด์ ๋๋ค.
DDL์ ๋ฐ์ดํฐ์ ์ ์ฅ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ฉฐ, ์ฃผ์ ๋ช
๋ น์ด๋ก๋ CREATE
, ALTER
, DROP
, TRUNCATE
๊ฐ ์์ต๋๋ค.
DDL ๋ช ๋ น์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉ๋๋ฉฐ, ๋ฐ์ดํฐ ์์ฒด๋ฅผ ๋ค๋ฃจ์ง ์๊ณ , ํ ์ด๋ธ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ์ ์ฅ์์ ํ์์ ์ ์ํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค.