๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Database/Oracle

[SQL-Oracle]DDL-CREATE(์„œ๋ธŒ์ฟผ๋ฆฌ ์‚ฌ์šฉ)

by sukii 2023. 12. 6.
๋ฐ˜์‘ํ˜•

๐Ÿ”˜CREATE

์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ํ…Œ์ด๋ธ”์„ ๊ฒ€์ƒ‰ํ•ด ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  ๊ฒ€์ƒ‰ํ–‰์„ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต
ํ˜•์‹) CREATE TABLE ํƒ€์ผ“ํ…Œ์ด๋ธ”๋ช…[(์ปฌ๋Ÿผ๋ช…,์ปฌ๋Ÿผ๋ช…,...)] AS SELECT ๊ฒ€์ƒ‰๋Œ€์ƒ, ... FROM ์›๋ณธํ…Œ์ด๋ธ”๋ช… [WHERE ์กฐ๊ฑด์‹]
--์›๋ณธํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰๋Œ€์ƒ์ด ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”์˜ ์†์„ฑ(์ปฌ๋Ÿผ๋ช… ๋ฐ ์ž๋ฃŒํ˜•)์œผ๋กœ ๊ตฌํ˜„๋˜์ง€๋งŒ ์›๋ณธ ํ…Œ์ด๋ธ”์˜ ์ œ์•ฝ์กฐ๊ฑด์€ ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”์— ๋ฏธ๋ถ€์—ฌ
--์›๋ณธ ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰๋Œ€์ƒ์˜ ์ด๋ฆ„์ด ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ๋ช…์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€๋งŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ (์ปฌ๋Ÿผ์˜ ์ž๋ฃŒํ˜•&ํฌ๊ธฐ๋Š” ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ)

์˜ˆ์ œ1

--EMP ํ…Œ์ด๋ธ”(์›๋ณธ ํ…Œ์ด๋ธ”)์˜ ์ €์žฅ๋œ ๋ชจ๋“  ์‚ฌ์›์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ EMP_COPY ํ…Œ์ด๋ธ”(ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”)์„ ์ƒ์„ฑํ•˜๊ณ  ๊ฒ€์ƒ‰ํ–‰์„ ์‚ฝ์ž…
CREATE TABLE EMP_COPY1 AS SELECT * FROM EMP;

--EMP ํ…Œ์ด๋ธ”๊ณผ EMP_COPY ํ…Œ์ด๋ธ”์˜ ์†์„ฑ ํ™•์ธ - ์›๋ณธ ํ…Œ์ด๋ธ”๊ณผ ํƒ€์ผ“ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ ๋™์ผ
DESC EMP;
DESC EMP_COPY1;

--EMPํ…Œ์ด๋ธ”์— EMP_COPY ํ…Œ์ด๋ธ”์— ๋ถ€์—ฌ๋œ ์ œ์•ฝ์กฐ๊ฑด ํ™•์ธ - ์›๋ณธ ํ…Œ์ด๋ธ”์— ์ œ์•ฝ์กฐ๊ฑด์ด ์กด์žฌํ•˜์ง€๋งŒ ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”์—๋Š” ์ œ์•ฝ์กฐ๊ฑด ๋ฏธ์กด์žฌ
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE TABLE_NAME='EMP';
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE TABLE_NAME='EMP_COPY1';

--EMP ํ…Œ์ด๋ธ”๊ณผ EMP_COPY ํ…Œ์ด๋ธ”์˜ ํ–‰ ํ™•์ธ - ์›๋ณธ ํ…Œ์ด๋ธ”์„ ์กฐ๊ฑด์‹์ด ์—†์ด ๊ฒ€์ƒ‰ํ•ด์„œ ์›๋ณธ ํ…Œ์ด๋ธ”๊ณผ ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”์˜ ํ–‰ ๋™์ผ
SELECT * FROM EMP;
SELECT * FROM EMP_COPY1;

 

โ–ถ๏ธEMP ํ…Œ์ด๋ธ” ์ œ์•ฝ์กฐ๊ฑด ํ™•์ธ ๊ฒฐ๊ณผ

 

โ–ถ๏ธ EMP_COPY1 ํ…Œ์ด๋ธ” ์ œ์•ฝ์กฐ๊ฑด ํ™•์ธ ๊ฒฐ๊ณผ

 => ๊ธฐ์กด ํ…Œ์ด๋ธ”์˜ ์†์„ฑ์€ ์นดํ”ผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ œ์•ฝ์กฐ๊ฑด์€ ์นดํ”ผ๊ฐ€ ์•ˆ๋˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Œ.

 

 

์˜ˆ์ œ2

--EMP ํ…Œ์ด๋ธ”(์›๋ณธ ํ…Œ์ด๋ธ”)์˜ ์ €์žฅ๋œ ๋ชจ๋“  ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ,์‚ฌ์›์ด๋ฆ„,๊ธ‰์—ฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ EMP_COPY2 ํ…Œ์ด๋ธ”(ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”)์„ ์ƒ์„ฑํ•˜๊ณ  ๊ฒ€์ƒ‰ํ–‰์„ ์‚ฝ์ž…
CREATE TABLE EMP_COPY2 AS SELECT EMPNO,ENAME,SAL FROM EMP;

--EMP_COPY2 ํ…Œ์ด๋ธ” ์†์„ฑ ๋ฐ ํ–‰ ํ™•์ธ
DESC EMP_COPY2;
SELECT * FROM EMP_COPY2;

--EMP ํ…Œ์ด๋ธ”(์›๋ณธ ํ…Œ์ด๋ธ”)์˜ ์ €์žฅ๋œ ๋ชจ๋“  ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ,์‚ฌ์›์ด๋ฆ„,๊ธ‰์—ฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ EMP_COPY3 ํ…Œ์ด๋ธ”(ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”)์„ ์ƒ์„ฑํ•˜๊ณ  ๊ฒ€์ƒ‰ํ–‰์„ ์‚ฝ์ž…
--EMP_COPY3 ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ๋ช…์„ NO,NAME,PAY๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ƒ์„ฑ
CREATE TABLE EMP_COPY3(NO,NAME,PAY) AS SELECT EMPNO,ENAME,SAL FROM EMP;

--EMP_COPY3 ํ…Œ์ด๋ธ” ์†์„ฑ ๋ฐ ํ–‰ ํ™•์ธ
DESC EMP_COPY3;
SELECT * FROM EMP_COPY3;

--EMP ํ…Œ์ด๋ธ”(์›๋ณธ ํ…Œ์ด๋ธ”)์—์„œ ๊ธ‰์—ฌ๊ฐ€ 2000 ์ด์ƒ์ธ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ,์‚ฌ์›์ด๋ฆ„,๊ธ‰์—ฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ EMP_COPY4 ํ…Œ์ด๋ธ”(ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”)์„ ์ƒ์„ฑํ•˜๊ณ  ๊ฒ€์ƒ‰ํ–‰์„ ์‚ฝ์ž…
CREATE TABLE EMP_COPY4 AS SELECT EMPNO,ENAME,SAL FROM EMP WHERE SAL>=2000;

--EMP_COPY4 ํ…Œ์ด๋ธ” ์†์„ฑ ๋ฐ ํ–‰ ํ™•์ธ
DESC EMP_COPY4;
SELECT * FROM EMP_COPY4;

--EMP ํ…Œ์ด๋ธ”(์›๋ณธ ํ…Œ์ด๋ธ”)๊ณผ ๊ฐ™์€ ์†์„ฑ์˜ EMP_COPY5 ํ…Œ์ด๋ธ”(ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”)์„ ์ƒ์„ฑํ•˜๊ณ  ํ–‰ ๋ฏธ์‚ฝ์ž… ์ฒ˜๋ฆฌ
CREATE TABLE EMP_COPY5 AS SELECT * FROM EMP WHERE 1=0;--์กฐ๊ฑด์‹์ด ๋ฌด์กฐ๊ฑด ๊ฑฐ์ง“์ด๋ฏ€๋กœ ํ–‰ ๋ฏธ๊ฒ€์ƒ‰

--EMP_COPY5 ํ…Œ์ด๋ธ” ์†์„ฑ ๋ฐ ํ–‰ ํ™•์ธ
DESC EMP_COPY5;
SELECT * FROM EMP_COPY5;

 

=> ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ๋ช…๊ณผ ํ–‰์˜ ๋‚ด์šฉ์€ ์›ํ•˜๋Š”๋Œ€๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ณต์‚ฌ ๊ฐ€๋Šฅ

๋ฐ˜์‘ํ˜•