- SQL ๋ฌธ์ฅ๋ค์ ์ข ๋ฅ
๋ช ๋ น์ด์ ์ข ๋ฅ | ๋ช ๋ น์ด | ์ค๋ช |
๋ฐ์ดํฐ ์กฐ์์ด (DML: Data Manipulation Langauge) |
SELECT | ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ค์ด์๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ฑฐ๋, ๊ฒ์ํ๊ธฐ ์ํ ๋ช ๋ น์ด๋ฅผ ๋งํ๋ ๊ฒ์ผ๋ก, RETRIEVE ๋ผ๊ณ ๋ ํ๋ค. |
INSERT UPDATE DELETE |
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ์ ๋ค์ด์๋ ๋ฐ์ดํฐ์ ๋ณํ์ ๊ฐํ๋ ์ข ๋ฅ์ ๋ช ๋ น์ด๋ฅผ ๋งํ๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ์ ์๋ก์ด ํ์ ์ง์ด๋ฃ๊ฑฐ๋, ์ํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ฑฐ๋ ์์ ํ๋ ๊ฒ๋ค์ ๋ช ๋ น์ด๋ค์ DML์ด๋ผ๊ณ ํ๋ค. | |
๋ฐ์ดํฐ ์ ์์ด (DDL: Data Definition Language) |
CREATE ALTER DROP RENAME |
ํ ์ด๋ธ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋๋ฐ ์ฌ์ฉ๋๋ ๋ช ๋ น์ด๋ค๋ก, ๊ทธ๋ฌํ ๊ตฌ์กฐ๋ฅผ ์์ฑํ๊ฑฐ๋ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ญ์ ํ๊ฑฐ๋ ์ด๋ฆ์ ๋ฐ๊พธ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ด๋ จ๋ ๋ช ๋ น์ด๋ค์ DDL์ด๋ผ๊ณ ํ๋ค. |
๋ฐ์ดํฐ ์ ์ด์ด (DCL: Data Control Language) |
GRANT REVOKE |
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ณ ๊ฐ์ฒด๋ค์ ์ฌ์ฉํ๋๋ก ๊ถํ์ ์ฃผ๊ณ , ํ์ํ๋ ๋ช ๋ น์ด๋ฅผ DCL์ด๋ผ๊ณ ํ๋ค. |
ํธ๋์ญ์
์ ์ด์ด (TCL: Transaction Control Language) |
COMMIT ROLLBACK |
๋ ผ๋ฆฌ์ ์ธ ์์ ์ ๋จ์๋ฅผ ๋ฌถ์ด์ DML์ ์ํด ์กฐ์๋ ๊ฒฐ๊ณผ๋ฅผ ์์ ๋จ์(ํธ๋์ญ์ ) ๋ณ๋ก ์ ์ดํ๋ ๋ช ๋ น์ด๋ฅผ ๋งํ๋ค. |
- Oracle์์์ alter ์ฌ์ฉ
ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID)
- Oracle์์ ์ ์ฝ ์กฐ๊ฑด ์ถ๊ฐํ ๋
CREATE TABLE PRODUCT
( ...
, ...
, ...
,CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID));
- MSSQL(SQL Server)์์๋ ALTER๋ก ์นผ๋ผ ๋์ ๋ณํ ๋ถ๊ฐ๋ฅ, ์นผ๋ผ๋ช ์ ์ ๋ ๊ดํธ๋ ์ฐ์ง ์์
-- ํ๋ฆฐ ์์
ALTER TABLE ๊ธฐ๊ด๋ถ๋ฅ ALTER COLUMN (๋ถ๋ฅ๋ช
, VARCHER(30), ๋ฑ๋ก์ผ์ IS NOT NULL);
-- ์๋ง์ ์์
ALTER TABLE ๊ธฐ๊ด๋ถ๋ฅ ALTER COLUMN ๋ถ๋ฅ๋ช
VARCHAR(30) NOT NULL;
ALTER TABLE ๊ธฐ๊ด๋ถ๋ฅ ALTER COLUMN ๋ฑ๋ก์ผ์ DATE NOT NULL;
- PK(Primary Key) ์ง์ ์ ํ ๊ณณ์์๋ง
- ์๋์ ๊ฒฝ์ฐ ํ ์ด๋ธ ์์ฑ ๋ฌธ์ฅ์์ ์ด๋ฏธ PRIMARY KEY๋ฅผ ์ง์ ํ์์ผ๋ฏ๋ก ALTER TABLE ๋ฌธ์ฅ์์ ์ค๋ฅ ๋ฐ์
-- ํ๋ฆฐ ์์
CREATE TABLE EMP
(EMP_NO VARCHAR20(10) NOT NULL PRIMARY KEY,
...
...
...);
ALTER TABLE EMP ADD CONSTRAINT EMP_PK PRIMARY KEY (EMP_NO);
- ๊ฐ๋จํ OX ๋ฌธ์ฅ
- FK(์ธ๋ํค) ๊ฐ์ null์ผ ์ ์๋ค. (O)
- ํ ํ ์ด๋ธ์ ์ฌ๋ฌ๊ฐ์ผ ์ ์๋ค. (O)
- ์ธ๋ํค ๊ฐ์ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์ ๋ฐ์ ์ ์๋ค. (O) > FK๋ PK์ ์๋ ๊ฐ์ ์ฐธ์กฐํ ์๋ ์๋ค.
- Unique Key๋ก ์ง์ ๋๋ ๋ชจ๋ ์ปฌ๋ผ์ null๊ฐ์ ๊ฐ์ง ์ ์๋ค. (X)
- ํ ์ด๋ธ์ ๋ถํ์ํ ์ปฌ๋ผ ์ญ์
ALTER TABLE ํ
์ด๋ธ๋ช
DROP COLUMN ์นผ๋ผ๋ช
;
- ์ฐธ์กฐ๋์(Referential Action)
์ก์ | ์ฐธ์กฐ๋์ | ์ค๋ช |
DELETE / MODIFY | CASCADE | master ์ญ์ ์ child ๊ฐ์ด ์ญ์ |
SET NULL | master ์ญ์ ์ child์ ํด๋น ํ๋ null | |
SET DEFAULT | master ์ญ์ ์ child์ ํด๋น ํ๋ default ๊ฐ์ผ๋ก ์ค์ | |
RESTRICT | child ํ ์ด๋ธ์ PK๊ฐ์ด ์๋ ๊ฒฝ์ฐ๋ง master ์ญ์ ํ์ฉ | |
NO ACTION | ์ฐธ์กฐ๋ฌด๊ฒฐ์ฑ์ ์๋ฐํ๋ ์ญ์ /์์ ์ก์ ์ ์ทจํ์ง ์์ | |
INSERT | AUTOMATIC | master ํ ์ด๋ธ์ PK๊ฐ ์๋ ๊ฒฝ์ฐ, master์ PK ์์ฑ ํ child ์ ๋ ฅ |
SET NULL | master ํ ์ด๋ธ์ PK๊ฐ ์๋ ๊ฒฝ์ฐ child FK๋ฅผ null ๊ฐ์ผ๋ก ์ฒ๋ฆฌ | |
SET DEFAULT | master ํ ์ด๋ธ์ PK๊ฐ ์๋ ๊ฒฝ์ฐ child FK๋ฅผ ์ง์ ๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ ๋ ฅ | |
DEPENDENT | master ํ ์ด๋ธ์ PK๊ฐ ์กด์ฌํ ๋๋ง child ์ ๋ ฅ ํ์ฉ | |
NO ACTION | ์ฐธ์กฐ๋ฌด๊ฒฐ์ฑ์ ์๋ฐํ๋ ์ ๋ ฅ ์ก์ ์ ์ทจํ์ง ์์ |