๊ฐœ์ธ๊ณต๋ถ€/SQL

01. DDL : ๋ฐ์ดํ„ฐ ์ •์˜์–ด (DBA, USER)

LEE_BOMB 2021. 9. 13. 21:36

1. DDL : ๋ฐ์ดํ„ฐ ์ •์˜์–ด (DBA, USER)
CREATE  ํ…Œ์ด๋ธ”์ƒ์„ฑ, ALTER ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ๋ณ€๊ฒฝ, DROP ํ…Œ์ด๋ธ” ์‚ญ์ œ


[CREATE ํ…Œ์ด๋ธ” ์ƒ์„ฑ]
โ‘  ๊ธฐ๋ณธ๊ณต์‹
CREATE TABLE ํ…Œ์ด๋ธ”๋ช…(
์นผ๋Ÿผ๋ช… ๋ฐ์ดํ„ฐํ˜• ์ œ์•ฝ์กฐ๊ฑด
);

[DATA TYPE]
NUMBER(N) n๋งŒํผ์˜ ์ˆซ์ž(์‹ค์ˆ˜)๋ฅผ ์ €์žฅ
INT 4byte ํฌ๊ธฐ์˜ ์ •์ˆ˜
VARCHAR(2)(n) n๋งŒํผ์˜ ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž
CHAR(n) n๋งŒํผ์˜ ๊ณ ์ •๊ธธ์ด ๋ฌธ์ž
DATE ๋‚ ์งœ/์‹œ๊ฐ„


[ํ…Œ์ด๋ธ” ์ œ์•ฝ์กฐ๊ฑด]
- ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•œ ์ œ์•ฝ์กฐ๊ฑด
- ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ, ๋ฌด์กฐ๊ฑด์ด ์•„๋‹Œ ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ–ˆ์„ ๋•Œ์—๋งŒ ์ž…๋ ฅ๋˜๋„๋ก ์ œํ•œํ•˜๋Š” ๊ฒƒ

PRIMARY KEY ๊ธฐ๋ณธํ‚ค. ์ค‘๋ณต๋ถˆ๊ฐ€, ์ƒ๋žต๋ถˆ๊ฐ€
FOREIGN KEY ์™ธ๋ž˜ํ‚ค. ์™ธ๋ž˜ํ‚ค ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜๋ฉด, ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ด ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ์˜์กด
UNIQUE ์œ ์ผํ‚ค. ์ค‘๋ณต๋ถˆ๊ฐ€, NULL๊ฐ’์„ 1๊ฐœ ํ—ˆ์šฉ
CEHCK ๋ฐ์ดํ„ฐ ์ ๊ฒ€. ์ œ์•ฝ์กฐ๊ฑด์— ์œ„๋ฐฐ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ž…๋ ฅ๋˜์ง€ ์•Š์Œ
NOT NULL ์ƒ๋žต๋ถˆ๊ฐ€


โ‘ก ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ํ…Œ์ด๋ธ” ๋ณต์‚ฌ์ƒ์„ฑ
- ๋ฉ”์ธ์ฟผ๋ฆฌ AS ์„œ๋ธŒ์ฟผ๋ฆฌ;
CREATE TABLE ํ…Œ์ด๋ธ”๋ช…
AS
SELECT * FROM ์ฐธ์กฐํ•  ํ…Œ์ด๋ธ”๋ช…;
ํ…Œ์ด๋ธ” ์ƒ์„ฑ

- CREATE TABLE ํ…Œ์ด๋ธ”๋ช…
AS
SELECT ์นผ๋Ÿผ๋ช…
FROM ์ฐธ์กฐํ•  ํ…Œ์ด๋ธ”๋ช…
WHERE 1=0;
ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋งŒ ๋ณต์‚ฌํ•˜์—ฌ ์ƒ์„ฑ


[๋‹จ์ผํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ : ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ’์ด 1๊ฑด ์ดํ•˜]
๋ฉ”์ธ์ฟผ๋ฆฌ ๋น„๊ต์—ฐ์‚ฐ์ž (์„œ๋ธŒ์ฟผ๋ฆฌ);
SELECT ์นผ๋Ÿผ๋ช…
FROM ํ…Œ์ด๋ธ”๋ช…
WHERE deptno =
(SELECT deptno FROM emp WHERE ename='SCOTT');
* ๋น„๊ต์—ฐ์‚ฐ์ž : =, <=, =>, <>
* AVG


[๋‹ค์ค‘ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ : ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ’์ด 2๊ฑด ์ด์ƒ]
๋ฉ”์ธ์ฟผ๋ฆฌ ๋น„๊ต์—ฐ์‚ฐ์ž (์„œ๋ธŒ์ฟผ๋ฆฌ);

* ๋‹ค์ค‘ํ–‰ ๋น„๊ต์—ฐ์‚ฐ์ž 
IN : ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์™€ ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋ฉด ์ฐธ
ALL ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์™€ ๋ชจ๋“  ๊ฐ’์ด ์ผ์น˜ํ•˜๋ฉด ์ฐธ
ANY ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์™€ ํ•˜๋‚˜ ์ด์ƒ ์ผ์น˜ํ•˜๋ฉด ์ฐธ




[ALTER ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ณ€๊ฒฝ]
โ‘  ํ…Œ์ด๋ธ”๋ช… ๋ณ€๊ฒฝ
ALTER TABLE ํ…Œ์ด๋ธ”๋ช…
RENAME TO ์นผ๋Ÿผ๋ช…;

โ‘ก ์นผ๋Ÿผ ์ถ”๊ฐ€
ALTER TABLE ํ…Œ์ด๋ธ”๋ช… (
ADD (์นผ๋Ÿผ๋ช… ์ž๋ฃŒํ˜•(n)
);

โ‘ข ์นผ๋Ÿผ ์ˆ˜์ •
ALTER TABLE ํ…Œ์ด๋ธ”๋ช…
MODIFY (์นผ๋Ÿผ๋ช… ์ž๋ฃŒํ˜•(n) ์ œ์•ฝ์กฐ๊ฑด);
* ์ œ์•ฝ์กฐ๊ฑด ์ˆ˜์ •๋ถˆ๊ฐ€

โ‘ฃ ์นผ๋Ÿผ ์‚ญ์ œ
ALTER TABLE ํ…Œ์ด๋ธ”๋ช…
DROP COLUMN ์นผ๋Ÿผ๋ช…;




[ํ…Œ์ด๋ธ”/๋ ˆ์ฝ”๋“œ/์ž„์‹œํŒŒ์ผ ์ œ๊ฑฐ]
โ‘  ํ…Œ์ด๋ธ” ์ œ๊ฑฐ
DROP TABLE ํ…Œ์ด๋ธ”๋ช…;
DROP TABLE ํ…Œ์ด๋ธ”๋ช… PURGE;

โ‘ก ์ „์ฒด ๋ ˆ์ฝ”๋“œ ์ œ๊ฑฐ
TRUNCATE TABLE ํ…Œ์ด๋ธ”๋ช…;

โ‘ข ์ž„์‹œํŒŒ์ผ ์ œ๊ฑฐ
PURGE RECYCLEBIN;




[๋ฐ์ดํ„ฐ ์‚ฌ์ „/๋ทฐ]
โ‘  ํ…Œ์ด๋ธ” ๋ชฉ๋ก ์กฐํšŒ
 SELECT ํ…Œ์ด๋ธ”๋ช… FROM USER_TABLES;

โ‘ก ์ž„์‹œํŒŒ์ผ ์กฐํšŒ ๋ทฐ : USER_RECYCLEBIN
SELECT * FROM USER_RECYCLEBIN;
* OBJECT_NAME : ์ž„์‹œํŒŒ์ผ๋ช…
* ORIGINAL_NAME : ์›๋ณธํŒŒ์ผ๋ช…

โ‘ข ํ…Œ์ด๋ธ” ๋ณต์›
FLASHBACK TABLE "์ž„์‹œํŒŒ์ผ๋ช…" TO BEFORE DROP;