MapleStory Finger Point Cute Line Smiley Blinking Hello Kitty Angel MapleStory Finger Point

๐Ÿ’Ž DataBase/๐Ÿ“š ์˜ค๋ผํด SQL๊ณผ PL,SQ

หšโ‚Šโœฉโ€งโ‚Š DB Oracle ์ •๋ฆฌ 3ํƒ„ (์˜ค๋ผํด SQL๊ณผ PL/SQL ch5) หšโ‚Šโœฉโ€งโ‚Š

HYEJU01 2021. 11. 13. 18:09

DDL ๋ช…๋ น๊ณผ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋ฐฐ์šด๋‹ค.

๋ช…๋ น์–ด๋“ค์„ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

์˜ค๋ผํด์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ

 

์˜ค๋ธŒ์ ํŠธ : ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ถ€์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์ €์žฅ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ

์„ธ๊ทธ๋จผํŠธ : ์˜ค๋ธŒ์ ํŠธ ์ค‘ ํŠน๋ณ„ํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋Š” ๊ฒƒ

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (์ฐฝ๊ณ ) - ์˜ค๋ธŒ์ ํŠธ,์„ธ๊ทธ๋จผํŠธ(ํ†ต)

 

โ–ถDDL  : ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ,๋ณ€๊ฒฝ,๊ด€๋ฆฌ ํ•˜๋Š” ๋ช…๋ น์–ด 

 

1) CREATE ์ƒ์„ฑ : ์ƒˆ๋กœ์šด ์˜ค๋ธŒ์ ํŠธ, ์Šคํ‚ค๋งˆ๋ฅผ ์ƒ์„ฑ

โ–ถ์ผ๋ฐ˜ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

CREATE TABLE new_table
no NUMBER(3) //์ˆซ์ž 3๋ฐ”์ดํŠธ
name VARCHAR2(10) //๊ฐ€๋ณ€ํ˜•๋ฌธ์ž, 10๋ฐ”์ดํŠธ
birth DATE // ๋‚ ์งœ

โ–ถ๊ธฐ๋ณธ ์ž…๋ ฅ ๊ฐ’์„ ์„ค์ •ํ•˜๊ธฐ

no NUMBER(3) DEFAULT 0 //๊ฐ’ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ ๊ฐ’์„ ๋„ฃ์Œ

 

โ–ถ ํ•œ๊ธ€ ์ด๋ฆ„์œผ๋กœ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๊ฐ€๋Šฅ

=๋ถˆํŽธํ•จ์ด ์žˆ๋‹ค

 

โ–ถ ํ…Œ์ด๋ธ” ์ด๋ฆ„!! >>

=๋ฐ˜๋“œ์‹œ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผํ•จ,

=30๋ฐ”์ดํŠธ๊นŒ์ง€ ๊ฐ€๋Šฅ,

=ํ•œ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„๊ณผ ์ค‘๋ณต ์‚ฌ์šฉ ์•ˆ๋จ,

=ํ‚ค์›Œ๋“œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ

 

โ–ถ Global Temporary Table ์ž„์‹œ ํ…Œ์ด๋ธ” ์ƒ์„ฑ 

=ํ…Œ์ด๋ธ”์ƒ์„ฑ > ๋”•์…”๋„ˆ๋ฆฌ ์ €์žฅ > ์—‘์„ธ์Šคํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑ > ํŠธ๋žœ์žญ์…˜์ด ๋๋‚˜๋ฉด ์‚ฌ๋ผ์ง

=ํ…Œ์ŠคํŠธ๊ฐ€ ๋ชฉ์ ์ธ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

=์ผ๋ฐ˜ํ…Œ์ด๋ธ”์˜ ๊ฒฝ์šฐ ๋ฆฌ๋‘ ๋กœ๊ทธ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆผ (์ž„์‹œํ…Œ์ด๋ธ”์€ ๋น ๋ฆ„)

=์„ธ์…˜๋ณ„๋กœ ๋งŒ๋“ค์–ด์ ธ์„œ ๋‹ค๋ฅธ ์„ธ์…˜์—์„œ ํ…Œ์ด๋ธ” ๊ณต์œ  ๋ถˆ๊ฐ€๋Šฅ

ON COMMIT delete ROWS

 

โ–ถํ…Œ์ด๋ธ” ๋ณต์‚ฌํ•˜๊ธฐ (CATS)

//๋ชจ๋“  ์ปฌ๋Ÿผ ๋ณต์‚ฌ
CREATE TABLE dept3
AS


//ํŠน์ • ์ปฌ๋Ÿผ ๋ณต์‚ฌ
CREATE TABLE dept3
AS
SELECT decode, dname 
FROM dept2;

//ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ (๋ฐ์ดํ„ฐx)
CREATE TABLE dept3
AS SELECT * FROM dept2;
WHERE 1 = 2; // ํ‹€๋ฆฐ ์กฐ๊ฑด์„ ์ฃผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ•จ

 

 

 

2) ALTER ์ˆ˜์ • : ๋งŒ๋“ค์–ด์ ธ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น์–ด 

= ๋ถ€ํ•˜๊ฐ€ ๋งŽ์ด ๊ฑธ๋ฆฌ๋Š” ๋ช…๋ น์–ด์ด๋ฏ€๋กœ ์กฐ์‹ฌํžˆ ์‚ฌ์šฉ

 

โ–ถ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ ์ถ”๊ฐ€ํ•˜๊ธฐ

ALTER TABLE dept6
ADD ( LOC VARCHAR2(10) ); //์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ ์ถ”๊ฐ€๋จ 

ADD ( LOC VARCHAR2(10) DEFAULT 'SEOUL'); // ๊ธฐ๋ณธ๊ฐ’ ์ž…๋ ฅํ•˜๊ธฐ

 

โ–ถํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ์ด๋ฆ„ ๋ณ€๊ฒฝํ•˜๊ธฐ

ALTER TABLE DEPT6 RENAME COLUMN location2 TO loc;
RENAME dept6 TO dept7;

โ–ถ์ปฌ๋Ÿผ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ ๋ณ€๊ฒฝํ•˜๊ธฐ

DESC dept7
ALTHER TABLE dept7
MODIFY( loc VARCHAR2(20));

โ–ถ์ปฌ๋Ÿผ ์‚ญ์ œํ•˜๊ธฐ

ALTER TABLE dept7 DROP COLUMN loc;

 

 

3) TRUNCATE ์ž˜๋ผ๋‚ด๊ธฐ : ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋ถ€ ์‚ญ์ œ ํ›„ ๊ณต๊ฐ„์„ ๋ฐ˜๋‚ฉํ•œ๋‹ค.

** ํ…Œ์ด๋ธ” ์ž์ฒด๊ฐ€ ์ง€์›Œ์ง€๋Š” ๊ฒƒ์€ ์•„๋‹˜, ์ปฌ๋Ÿผ๊ฐ’๋งŒ ๋‘๊ณ  ๋ฐ์ดํ„ฐ๋งŒ ์ง€์›Œ์ง (์šฉ๋Ÿ‰ ์ค„์–ด๋“ฌ)

= ์ธ๋ฑ์Šค์˜ ๋‚ด์šฉ๋„ ํ•จ๊ป˜ TRUNCATE ๋จ

= ๋ชจ๋“ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋ถ€ ์‚ญ์ œ

 

 

 

4) DROP ์‚ญ์ œ : ํ…Œ์ด๋ธ” ์ž์ฒด๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด

** ํ…Œ์ด๋ธ” ์ž์ฒด์™€ ํ…Œ์ด๋ธ”์— ์ƒ์„ฑ๋œ ์ธ๋ฑ์Šค ๋ชจ๋‘ ์‚ญ์ œ๋จ (๊ณต๊ฐ„ ๋ชจ๋‘ ๋ฐ˜๋‚ฉ)

= ํœด์ง€ํ†ต๋Š๋‚Œ์œผ๋กœ ์‚ญ์ œ๋œ ํ…Œ์ด๋ธ”์ด BIN$... ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.

 

 

5) ์ถ”๊ฐ€๋œ ์‚ฌํ•ญ๋“ค

โ–ถ์ฝ๊ธฐ ์ „์šฉ ํ…Œ์ด๋ธ”๋กœ๋ณ€๊ฒฝ

ALTER TABLE t_readonly read only;

โ–ถ๊ฐ€์ƒ ์ปฌ๋Ÿผ ํ…Œ์ด๋ธ” ์‚ฌ์šฉํ•˜๊ธฐ 

CREATE TABLE vt1 ...(์ƒ๋žต) ; --col1, col2, col3(๊ฐ€์ƒ์ปฌ๋Ÿผ)
= ๊ฐ€์ƒ ์ปฌ๋Ÿผ์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์—†์Œ.
INSERT INTO vt1 (col1, col2) values(1,2);
SELECT * FROM vt1;
UPDATE vt1 SET col1 =5; // ๊ธฐ์กด ์ปฌ๋Ÿผ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๊ฐ€์ƒ์ปฌ๋Ÿผ์—๋„ ๋ฐ˜์˜๋จ
.
.
.

 

โ–ถData Dictionary ๋ฐ์ดํ„ฐ ๋”•์…”๋„ˆ๋ฆฌ :

= ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šด์˜์„ ์œ„ํ•œ ์ •๋ณด๋ฅผ ๋ชจ๋‘ ํŠน์ • ํ…Œ์ด๋ธ”์— ๋ชจ์•„๋‘๊ณ  ๊ด€๋ฆฌ

= ๋‘๋‡Œ์— ํ•ด๋‹นํ•˜๋Š” ์ •๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ์žฅ์• ๋‚˜ ์ž˜๋ชป ๊ด€๋ฆฌ์˜ ๊ฒฝ์šฐ ์œ„ํ—˜ํ•จ

= Base Table / Data Dictionary View ๋กœ ๋‚˜๋ˆ„์–ด ๋‘”๋‹ค. 

= Base Table ์ ‘๊ทผ ๋ง‰์Œ , DataBase ์ƒ์„ฑ ์‹œ์ ์— ์ž๋™ ์ƒ์„ฑ

= Data Dictionary View select ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ํ—ˆ์šฉ , Catalog, sql ์ด๋ผ๋Š” ํŒŒ์ผ ์ˆ˜ํ–‰ ์‹œ์—๋งŒ ์ƒ์„ฑ

= Data Dictionary View 2๊ฐ€์ง€

=> static Data Dictionary View ์ˆ˜๋™ ๋ณ€๊ฒฝ ์ž‘์—… 

=> Dynamic Data Dictionary View ์‹ค์‹œ๊ฐ„ ์กฐํšŒ 

 

 

โ–ถDML

1) INSERT ์ž…๋ ฅ : ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ

= ์ˆซ์ž ๊ฐ’ ์ด์™ธ์—๋Š” '' ๋กœ ๊ฐ์‹ธ์•ผํ•œ๋‹ค

= ๋ชจ๋“  ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์œผ๋ฉด ์ปฌ๋Ÿผ ์ด๋ฆ„ ์ƒ๋žต ๊ฐ€๋Šฅ / ํŠน์ • ์ปฌ๋Ÿผ์—๋งŒ ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•ด์•ผ๋  ๊ฒฝ์šฐ ์ปฌ๋Ÿผ ์ด๋ฆ„ ํ•„์ˆ˜ ๋ช…์‹œ

= INSERT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 1ํ–‰์”ฉ ์ž…๋ ฅํ•˜๊ธฐ

= INSERT ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ–‰ ์ž…๋ ฅํ•˜๊ธฐ

= INSERT ALL ์„ ์ด์šฉํ•œ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ ํ–‰ ์ž…๋ ฅํ•˜๊ธฐ

 

2) UPDATE ๋ณ€๊ฒฝ : ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝํ•˜๊ธฐ

= WHERE ์ ˆ์„ ๋ˆ„๋ฝ์‹œํ‚ค์ง€ ์•Š๋„๋ก ์ฃผ์˜

 

3) DELETE ์‚ญ์ œ : ๋ฐ์ดํ„ฐ ์‚ญ์ œ

=

 

** ๋ฐ์ดํ„ฐ๋งŒ ์ง€์›Œ์ง€๊ณ  ๋””์Šคํฌ ์ƒ์˜ ๊ณต๊ฐ„์€ ๊ฐ€์ง€๊ณ  ์žˆ์Œ (ํ…Œ์ด๋ธ” ์šฉ๋Ÿ‰ ๊ทธ๋Œ€๋กœ)

=๋ฐ์ดํ„ฐ๋ฅผ ๊ณจ๋ผ์„œ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•จ

 

 

4) MERGE ๋ณ‘ํ•ฉ : ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์น˜๋Š” ๋ณ‘ํ•ฉ

 

โ–ถDCL

GRANT ๊ถŒํ•œ ์ฃผ๊ธฐ

REVOKE ๊ถŒํ•œ ๋บ๊ธฐ

 

โ–ถTCL

COMMIT ํ™•์ • 

ROLLBACK ์ทจ์†Œ

 

โ–ถSELECT

DQL