SQL
๊ตญ์ ํ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด์ด๋ฉฐ ์ง์ ๊ธฐ๋ฅ๊ณผ ์ ์ด ๊ธฐ๋ฅ์ ๋ชจ๋ ๊ฐ์ถ๊ณ ์๋ค.
1. DDL(Data Define Language)
๋ฐ์ดํฐ ์ ์์ด๋ก SCHEMA, DOMAIN, TABLE, VIEW, INDEX๋ฅผ ์ ์ํ๊ฑฐ๋ ๋ณ๊ฒฝ, ์ญ์ ํ ๋ ์ฌ์ฉํ๋ค.
1) CREATE
SCHEMA, DOMAIN, TABLE, VIEW, INDEX๋ฅผ ์ ์ํ๋ค.
2) ALTER
TABLE์ ๋ํ ์ ์๋ฅผ ๋ณ๊ฒฝํ๋ค.
ALTER TABLE ํ
์ด๋ธ๋ช
ADD ์์ฑ๋ช
๋ฐ์ดํฐํ์
[DEFAULT '๊ธฐ๋ณธ๊ฐ']; // ์๋ก์ด ์์ฑ ์ถ๊ฐ
ALTER TABLE ํ
์ด๋ธ๋ช
ALTER ์์ฑ๋ช
[SET DEFAULT '๊ธฐ๋ณธ๊ฐ']; // ์์ฑ์ ๊ธฐ๋ณธ๊ฐ ๋ณ๊ฒฝ
ALTER TABLE ํ
์ด๋ธ๋ช
DROP ์์ฑ๋ช
[CASCADE]; // ์์ฑ ์ ๊ฑฐ
3) DROP
SCHEMA, DOMAIN, TABLE, VIEW, INDEX๋ฅผ ์ญ์ ํ๋ค.
DROP SCHEMA + ์คํค๋ง๋ช
[ CASCADE | RESTRICE ];
DROP DOMAIN + ๋๋ฉ์ธ๋ช
[ CASCADE | RESTRICE ];
DROP TABLE + ํ
์ด๋ธ๋ช
[ CASCADE | RESTRICE ];
DROP VIEW + ๋ทฐ๋ช
[ CASCADE | RESTRICE ];
DROP INDEX + ์ธ๋ฑ์ค๋ช
[ CASCADE | RESTRICE ];
DROP TRIGGER + ํธ๋ฆฌ๊ฑฐ๋ช
[ CASCADE | RESTRICE ];
DROP CONSTRAINT ์ ์ฝ์กฐ๊ฑด๋ช
;
// CASCADE: ์ ๊ฑฐํ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ํจ๊ป ์ ๊ฑฐ
// RESTRICE: ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ์ฐธ์กฐ ์ค์ผ ๊ฒฝ์ฐ ์ ๊ฑฐ ์ทจ์
2. DML(Data Manipulation Language)
๋ฐ์ดํฐ ์กฐ์์ด๋ก ์ฌ์ฉ์๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ ์ง์์ด๋ฅผ ํตํด ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ง์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ๋ค.
1) SELECT
ํ ์ด๋ธ์์ ์กฐ๊ฑด์ ๋ง๋ ํํ์ ๊ฒ์ํ๋ค.
2) INSERT
ํ ์ด๋ธ์ ์๋ก์ด ํํ์ ์ฝ์ ํ๋ค.
INSERT INTO ํ
์ด๋ธ๋ช
[(์์ฑ๋ช
1, ์์ฑ๋ช
2)] VALUES (๋ฐ์ดํฐ1, ๋ฐ์ดํฐ2);
INSERT INTO ํ
์ด๋ธ๋ช
VALUES (๋ฐ์ดํฐ1, ๋ฐ์ดํฐ2, ...); // ๋ชจ๋ ์์ฑ ์ฝ์
3) DELETE
ํ ์ด๋ธ์์ ์กฐ๊ฑด์ ๋ง๋ ํํ์ ์ญ์ ํ๋ค.
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด;
DELETE FROM ํ
์ด๋ธ๋ช
; // ๋ชจ๋ ํํ ์ญ์
4) UPDATE
ํ ์ด๋ธ์์ ์กฐ๊ฑด์ ๋ง๋ ํํ์ ๋ด์ฉ์ ๋ณ๊ฒฝํ๋ค.
UPDATE ํ
์ด๋ธ๋ช
SET ์์ฑ๋ช
= ๋ฐ์ดํฐ WHERE ์กฐ๊ฑด;
3. DCL(Data Control Language)
๋ฐ์ดํฐ ์ ์ด์ด๋ก ๋ฐ์ดํฐ์ ๋ณด์, ๋ฌด๊ฒฐ์ฑ, ํ๋ณต, ๋ณํ ์ํ ์ ์ด ๋ฑ์ ์ ์ํ๋ค.
1) COMMIT
๋ช ๋ น์ ์ํด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ค์ ๋ฌผ๋ฆฌ์ ๋์คํฌ์ ์ ์ฅํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์ ์์ ์ด ์ ์์ ์ผ๋ก ์๋ฃ๋์์์ ๊ด๋ฆฌ์์๊ฒ ์๋ ค์ค๋ค.
2) ROLLBACK
๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์ ์์ ์ด ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋์์ ๋ ์๋์ ์ํ๋ก ๋ณต๊ตฌํ๋ค.
3) GRANT/REVOKE
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ ์ฌ์ฉ ๊ถํ์ ๋ถ์ฌ/์ทจ์ํ๋ค.
GRANT ์ฌ์ฉ์๋ฑ๊ธ TO ์ฌ์ฉ์_ID_๋ฆฌ์คํธ;
REVOKE ์ฌ์ฉ์๋ฑ๊ธ FROM ์ฌ์ฉ์_ID_๋ฆฌ์คํธ;