SQL์ ๋ฐ์ดํฐ ์ ์, ๋ฐ์ดํฐ ์กฐ์, ๋ฐ์ดํฐ ์ ์ด ๋ฑ์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ง์ํ๋ฉฐ, ๊ทธ ๊ธฐ๋ฅ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ฅํ๋ค.
- DDL(Data Definition Language) : ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ์ธ์ด์ด๋ค. (CREATE, ALTER, DROP, RENAME, TRUNCATE๋ฌธ์ด ์๋ค.)
- DML(Data Manipulation Language) : ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ, ์์ , ์ญ์ , ์กฐํํ๋ ์ธ์ด์ด๋ค. (INSERT, UPDATE, DELECT, SELECT๋ฌธ์ด ์๋ค.)
- DCL(Data Control Language) : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ๊ฑฐ๋ ํ์ํ๊ธฐ ์ํ ์ธ์ด์ด๋ค. (GRANT, REVOKE๋ฌธ์ด ์๋ค.)
- TCL(Transaction Control Language) : ํธ๋์ญ์ ์ ์ ์ดํ๋ ๋ช ๋ น์ด์ด๋ค. (COMMIT, ROLLBACK, SAVEPOINT๋ฌธ์ด ์๋ค.)
์ฌ๊ธฐ์ ํธ๋์ญ์ (Transaction)์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์ ์ฒ๋ฆฌํ๋ ๋จ์๋ฅผ ๋งํ๋ค.
SQL๋ฌธ์ ์คํ ์์๋ 3๋จ๊ณ๋ฅผ ๊ฑธ์ณ์ ์คํ๋๋ฉฐ ๊ทธ ๋จ๊ณ๋ก๋ ํ์ฑ(Parsing) โ ์คํ(Execution) โ ์ธ์ถ(Fetch) ์์ผ๋ก ์คํ๋๋ค.
-- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
CREATE DATABASE mydb;
-- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ
USE mydb;
-- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชฉ๋ก ๋ณด๊ธฐ
SHOW DATABASES;
-- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญ์ (if๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค.)
DROP DATABASE IF EXISTS mydb;
CREATE TABLE [ํ
์ด๋ธ๋ช
] (
[์ปฌ๋ผ๋ช
1] [๋ฐ์ดํฐ ํ์
] [์ ์ฝ์ฌํญ],
[์ปฌ๋ผ๋ช
2] [๋ฐ์ดํฐ ํ์
],
[์ปฌ๋ผ๋ช
3] [๋ฐ์ดํฐ ํ์
],
);
- NOT NULL : NOT NULL ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ๋ฉด, ํด๋น ํ๋๋ NULL ๊ฐ์ ์ ์ฅํ ์ ์๋ค.
- UNIQUE : UNIQUE ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ๋ฉด, ํด๋น ํ๋๋ ์๋ก ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ ธ์ผ ํ๋ค.
- PRIMARY KEY : PRIMARY KEY ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ๋ฉด, ํด๋น ํ๋๋ PRIMARY KEY๊ฐ ๋๋ค.
- FOREIGN KEY : FOREIGN KEY ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ๋ฉด, ํด๋น ํ๋๋ FOREIGN KEY๊ฐ ๋๋ค.
- DEFAULT : DEFAULT ์ ์ฝ ์กฐ๊ฑด์ ํด๋น ํ๋์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ์ ์๊ฒ ํด์ค๋ค.
-- ํ
์ด๋ธ ์์ฑ
CREATE TABLE test_table (
test_id INT UNSIGNED NOT NULL, -- UNSIGNED๋ก ์ค์ ํ๋ฉด ์์๊ฐ๋ง ํํ
test_name CHAR(30) NOT NULL, -- NOT NULL๋ก ์ค์ ํ๋ฉด NULL๊ฐ์ ์ง์ ํ ์ ์๋ค.
test_time DATE AUTO_INCREMENT, -- AUTO_INCREMENT ์๋์ผ๋ก 1์ฉ ์ฆ๊ฐํ์ฌ UNIQUEํ ๊ฐ์ ๋ง๋ค์ด์ค๋ค.
PRIMARY KEY (test_id)
);
-- ํ
์ด๋ธ ์ญ์
DROP TABLE [ํ
์ด๋ธ๋ช
];
ALTER TABLE [ํ
์ด๋ธ๋ช
] ADD COLUMN [์ถ๊ฐํ ์ปฌ๋ผ๋ช
][์ถ๊ฐํ ์ปฌ๋ผ ๋ฐ์ดํฐํ];
ALTER TABLE [ํ
์ด๋ธ๋ช
] MODIFY COLUMN [๋ณ๊ฒฝํ ์ปฌ๋ผ๋ช
][๋ณ๊ฒฝํ ์ปฌ๋ผ ํ์
];
ALTER TABLE [ํ
์ด๋ธ๋ช
] CHANGE COLUMN [๊ธฐ์กด ์ปฌ๋ผ ๋ช
][๋ณ๊ฒฝํ ์ปฌ๋ผ ๋ช
][๋ณ๊ฒฝํ ์ปฌ๋ผ ํ์
];
ALTER TABLE [ํ
์ด๋ธ๋ช
] DROP COLUMN [์ญ์ ํ ์ปฌ๋ผ ๋ช
];