๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

RDB๐Ÿ—‚๏ธ/์ธํ”„๋Ÿฐ : SQLD ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ

SQL ๊ฐœ๋ฐœ์ž (SQLD) ์ž๊ฒฉ์ฆ ๋”ฐ๊ธฐ Part.2 ์„น์…˜ 0.

728x90

SQL ๊ธฐ๋ณธ ๋ฐ ํ™œ์šฉ : SQL์˜ ์ข…๋ฅ˜์™€ WHERE๋ฌธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•, GROUP ์—ฐ์‚ฐ, ๋‚ด์žฅํ˜• ํ•จ์ˆ˜ ๋“ฑ์„ ํ•™์Šตํ•œ๋‹ค

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

1) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋“ฑ์žฅ

- 1970๋…„๋Œ€ ์ฒซ ๋“ฑ์žฅ

- ๋ฆด๋ ˆ์ด์…˜๊ณผ ๋ฆด๋ ˆ์ด์…˜์˜ ์กฐ์ธ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ํ•ฉ์ง‘ํ•ฉ, ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ ๋“ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค

2) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ์˜ ์ฐจ์ด์ 

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉํ•  ์ง€์— ๋”ฐ๋ผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณ„์ธตํ˜•, ๋„คํŠธ์›Œํฌํ˜•, ๊ด€๊ณ„ํ˜• ๋“ฑ์ด ์žˆ๊ณ , ๊ณ„์ธตํ˜•์€ ํŠธ๋ฆฌ, ๋„คํŠธ์›Œํฌํ˜•์€ ์˜ค๋„ˆ์™€ ๋ฉค๋ฒ„ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค(๊ณ„์ธต, ๋„คํŠธ์›Œํฌ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค ~ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐํŒŒ์•…์— ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—)

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ์€ ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ ํ˜•์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค, DBMS

 

3) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ๊ณผ ๊ด€๊ณ„ ์—ฐ์‚ฐ

- ์ง‘ํ•ฉ ์—ฐ์‚ฐ

ํ•ฉ์ง‘ํ•ฉ Union : ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์„ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋Š” ๊ฒƒ์ด๋‹ค. ์ค‘๋ณต ๊ฐ’์€ ํ•˜๋‚˜๋งŒ ํ‘œ์‹œ(*Union All : ๋ชจ๋‘ ํ‘œ์‹œ)

์ฐจ์ง‘ํ•ฉ Difference : ๋ณธ๋ž˜ ๋ฆด๋ ˆ์ด์…˜์—๋Š” ์กด์žฌํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์กฐํšŒ

๊ต์ง‘ํ•ฉ Intersection : ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„ ๊ณตํ†ต ๊ฐ’ ์กฐํšŒ

๊ณฑ์ง‘ํ•ฉ Cartesian Product : ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์—ฐ์‚ฐ

- ๊ด€๊ณ„ ์—ฐ์‚ฐ

์„ ํƒ ์—ฐ์‚ฐ Selection : ๋ฆด๋ ˆ์ด์…˜์—์„œ ์กฐ๊ฑด์— ๋งž๋Š” ํ–‰๋งŒ์„ ์กฐํšŒ

ํˆฌ์˜ ์—ฐ์‚ฐ Projection : ๋ฆด๋ ˆ์ด์…˜์—์„œ ์กฐ๊ฑด์— ๋งž๋Š” ์†์„ฑ๋งŒ ์กฐํšŒ

๊ฒฐํ•ฉ ์—ฐ์‚ฐ Join : ์—ฌ๋Ÿฌ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ณตํ†ต๋œ ์†์„ฑ์„ ์‚ฌ์šฉํ•ด ์ƒˆ๋กœ์šด ๋ฆด๋ ˆ์ด์…˜์„ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.

๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ Division : ๊ธฐ์ค€ ๋ฆด๋ ˆ์ด์…˜์—์„œ ๋‚˜๋ˆ„๋Š” ๋ฆด๋ ˆ์ด์…˜์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ๊ณผ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ–‰์„ ์ถ”์ถœํ•˜๊ณ  ๋‚˜๋ˆ„๋Š” ๋ฆด๋ ˆ์ด์…˜์˜ ์†์„ฑ์„ ์‚ญ์ œํ•œ ํ›„ ์ค‘๋ณต๋˜๋Š” ํ–‰์„ ์ œ๊ฑฐ

 

- ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฆด๋ ˆ์ด์…˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ฆด๋ ˆ์ด์…˜์„ ์‚ฌ์šฉํ•ด ์ง‘ํ•ฉ ์—ฐ์‚ฐ ๋ฐ ๊ด€๊ณ„ ์—ฐ์‚ฐ์„ ์ง€์›ํ•ด ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค

- ๋ฆด๋ ˆ์ด์…˜์€ ์ตœ์ข…์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค

๊ธฐ๋ณธ ํ‚ค๋Š” ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์—์„œ ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ, Not Null์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ํ•ด๋‹น ํ…Œ์ด๋ธ”์„ ๋Œ€ํ‘œํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํ…Œ์ด๋ธ”์€ ํ–‰๊ณผ ์นผ๋Ÿผ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์นผ๋Ÿผ์€ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋“œ๋กœ ์†์„ฑ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. ์™ธ๋ž˜ ํ‚ค๋Š” ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์ฐธ์กฐ(์กฐ์ธ)ํ•˜๋Š” ์นผ๋Ÿผ์ด๋‹ค. ์™ธ๋ž˜ ํ‚ค๋Š” ๊ด€๊ณ„ ์—ฐ์‚ฐ ์ค‘ Join ํ•˜๊ธฐ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค

 

+ sql developer ์‹ค์Šต

 

SQL ์ข…๋ฅ˜

1) SQL : ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜, ๋ฐ์ดํ„ฐ ์กฐ์ž‘, ๋ฐ์ดํ„ฐ ์ œ์–ด ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์ ˆ์ฐจํ˜• ์–ธ์–ด์ด๋‹ค.

์ข…๋ฅ˜

- DDL : ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ ์ •์˜, CREATE, ALTER, DROP, RENAME, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ, ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ์–ธ์–ด์ด๋‹ค.

- DML : ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ, ์ˆ˜์ •, ์‚ญ์ œ, ์กฐํšŒํ•œ๋‹ค. INSERT, UPDATE, DELETE, SELECT, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ DDL๋กœ ์ •์˜๋˜๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ, ์ˆ˜์ •, ์‚ญ์ œ, ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด

- DCL : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ํšŒ์ˆ˜, GRANT, REVOKE, TRUMCATE, DCL์€ DDL๋กœ ์ •์˜๋œ ๊ตฌ์กฐ์— ์–ด๋–ค ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ.

- TCL : ํŠธ๋žœ์ ์…˜ ์ œ์–ด, COMMIT, ROLLBACK, SAVEPOINT

 

ํŠธ๋žœ์ ์…˜ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ์œ„

- ํŠน์„ฑ(ACID)

1) ์›์ž์„ฑ

- ํŠธ๋žœ์ ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ์‚ฐ์˜ ์ „๋ถ€๊ฐ€ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค(ALL OR NOTTHING)

- ์ฆ‰, ํŠธ๋žœ์ ์…˜์˜ ์ฒ˜๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ๋๋‚˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ์™€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค

2) ์ผ๊ด€์„ฑ

- ํŠธ๋žœ์ ์…˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๊ฐ€ ๋ชจ์ˆœ๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค

- ํŠธ๋žœ์ ์…˜ ์‹คํ–‰ ํ›„์—๋„ ์ผ๊ด€์„ฑ์ด ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค

3) ๊ณ ๋ฆฝ์„ฑ

- ํŠธ๋žœ์ ์…˜ ์‹คํ–‰ ์ค‘์— ์ƒ์„ฑํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋Š” ๋‹ค๋ฅธ ํŠธ๋žœ์ ์…˜์ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค

- ์ฆ‰, ๋ถ€๋ถ„์ ์ธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ํŠธ๋žœ์ ์…˜์ด ๋ณผ ์ˆ˜ ์—†๋‹ค

4) ์˜์†์„ฑ

- ํŠธ๋žœ์ ์…˜์ด ๊ทธ ์‹คํ–‰์„ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌ์  ๋ณด์žฅ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค

 

SQL๋ฌธ์˜ ์‹คํ–‰ ์ˆœ์„œ : 3๋‹จ๊ณ„

1) Parsing : SQL๋ฌธ์˜ ๋ฌธ๋ฒ•์„ ๊ฒ€์‚ฌํ•˜๊ณ  ๊ตฌ๋ฌธ๋ถ„์„์„ ํ•œ๋‹ค

2) Execution : ๊ตฌ๋ฌธ๋ถ„์„ ์ดํ›„ SQL๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค

3) Fetch : SQL๋ฌธ์ด ์‹คํ–‰๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•œ๋‹ค

 

DDL

1) ํ…Œ์ด๋ธ” ์ƒ์„ฑ

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค. ํ…Œ์ด๋ธ” ์ƒ์„ฑ์€ Create Table๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ  ํ…Œ์ด๋ธ” ๋ณ€๊ฒฝ์€ Alter Table๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” Drop Table๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค

cf) Varchar vs Char : Varchar๋Š” ๊ฐ€๋ณ€ํ˜• ~ ๋ฐ์ดํ„ฐ์˜ ์šฉ๋Ÿ‰์ด ๋‚จ๊ฒŒ ๋˜๋ฉด ๋‚จ๋Š” ์šฉ๋Ÿ‰์€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Char๋Š” ๊ณ ์ •ํ˜•์ด๋ฏ€๋กœ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค

2) ๊ธฐ๋ณธ์ ์ธ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

- ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, SQL ์ค‘์— DESC๋ฌธ์ด ์žˆ๋‹ค. DESC๋ฌธ์€ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ์ฆ‰, create table๋กœ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ๋ณด๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

3) ์ œ์•ฝ ์กฐ๊ฑด ์‚ฌ์šฉ

- ๊ธฐ๋ณธ ํ‚ค, ์™ธ๋ž˜ ํ‚ค, ๊ธฐ๋ณธ ๊ฐ’, not null ๋“ฑ์€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค

- ์™ธ๋ž˜ ํ‚ค๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด, ๋จผ์ € ๋งˆ์Šคํ„ฐ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ์‚ฌ์›๊ณผ ๋ถ€์„œ ํ…Œ์ด๋ธ”์—์„œ๋Š” ๋ถ€์„œ๊ฐ€ ๋งˆ์Šคํ„ฐ ํ…Œ์ด๋ธ”์ด ๋œ๋‹ค. ์‚ฌ์› ํ…Œ์ด๋ธ”์ด ๋ถ€์„œ ํ…Œ์ด๋ธ”์˜ depno๋ฅผ ์ฐธ์กฐํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  EMP ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ constraint๋ฅผ ์‚ฌ์šฉํ•ด ์™ธ๋ž˜ ํ‚ค์ด๋ฆ„์ธ "deptfk"๋ฅผ ์ž…๋ ฅ ํ›„ ์™ธ๋ž˜ ํ‚ค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค

4) ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ CASCADE ์‚ฌ์šฉ

- ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ CASCADE ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. CASCADE ์˜ต์…˜์€ ์ฐธ์กฐ๊ด€๊ณ„๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ์ฐธ์กฐ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๋จผ์ € ๋งˆ์Šคํ„ฐ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค. ์ฆ‰, DEPT ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค

ON DELETE CASCADE ์˜ต์…˜์€ ์ž์‹ ์ด ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜๋ฉด ์ž๋™์œผ๋กœ ์ž์‹ ๋„ ์‚ญ์ œ๋˜๋Š” ์˜ต์…˜์ด๋‹ค. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ค€์ˆ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ์ด๋ž€, ๋งˆ์Šคํ„ฐ ํ…Œ์ด๋ธ”์—๋Š” ํ•ด๋‹น ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ ์—†๋Š”๋ฐ, ์Šฌ๋ ˆ์ด๋ธŒ(์„œ๋ธŒ) ํ…Œ์ด๋ธ”์—๋Š” ํ•ด๋‹น ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฌด๊ฒฐ์„ฑ์ด ์œ„๋ฐฐ๋œ ๊ฒฝ์šฐ์ด๋‹ค

(1) ํ…Œ์ด๋ธ”๋ช… ๋ณ€๊ฒฝ์€ ALTER TABLE ~ RENAME TO๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค

(2) ์นผ๋Ÿผ ์ถ”๊ฐ€ : ADD

(3) ์นผ๋Ÿผ ๋ณ€๊ฒฝ : ์นผ๋Ÿผ์˜ ๋ณ€๊ฒฝ์€ ALTER TABLE ~ MODIFY๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์ œ์•ฝ ์กฐ๊ฑด์„ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋‹ค๋งŒ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์นผ๋Ÿผ์— ๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค

(4) ์นผ๋Ÿผ ์‚ญ์ œ : ALTER TABLE ~ DROP COLUMN

(5) ์นผ๋Ÿผ๋ช… ๋ณ€๊ฒฝ : ALTER TABLE RENAME COLUMN ~ TO

5) ํ…Œ์ด๋ธ” ์‚ญ์ œ

DROP TABLE : ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์‚ญ์ œ, "CASCADE CONSTRAINT" ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ž˜ํ‚ค๋กœ ์ฐธ์กฐํ•œ ์Šฌ๋ ˆ์ด๋ธŒ ํ…Œ์ด๋ธ”๊ณผ ๊ด€๋ จ ์ œ์•ฝ์‚ฌํ•ญ๋„ ํ•จ๊ป˜ ์‚ญ์ œํ•œ๋‹ค

6) VIEW ์ƒ์„ฑ๊ณผ ์‚ญ์ œ

- ๋ทฐ๋ž€ ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ์œ ๋„๋œ ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”์ด๋‹ค. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ณ  ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•ด์„œ ์›ํ•˜๋Š” ์นผ๋Ÿผ๋งŒ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

ํŠน์ง•

- ์ฐธ์กฐํ•œ ํ…Œ์ด๋ธ”์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋ทฐ๋„ ๋ณ€๊ฒฝ๋œ๋‹ค

- ๋ทฐ์˜ ๊ฒ€์ƒ‰์€ ์ฐธ์กฐํ•œ ํ…Œ์ด๋ธ”๊ณผ ๋™์ผํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ทฐ์— ๋Œ€ํ•œ ์ž…๋ ฅ, ์ˆ˜์ •, ์‚ญ์ œ์—” ์ œ์•ฝ์ด ์žˆ๋‹ค. ํŠน์ • ์นผ๋Ÿผ๋งŒ ์กฐํšŒํ•ด ๋ณด์•ˆ์„ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค

- ํ•œ๋ฒˆ ์ƒ์„ฑ๋œ ๋ทฐ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ณ  ๋ณ€๊ฒฝ์„ ์›ํ•˜๋ฉด ์‚ญ์ œ ํ›„ ์žฌ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค

- ALTER๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ทฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค

- ๋ทฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ CREATE VIEW๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์ฐธ์กฐ ํ…Œ์ด๋ธ”์€ SELECT๋ฌธ์œผ๋กœ ์ง€์ •ํ•œ๋‹ค

~ ๋ทฐ๋Š” SELECT๋ฌธ์„ ์‚ฌ์šฉํ•ด ์ผ๋ฐ˜ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ณ , ์‚ญ์ œ๋Š” DROP VIEW๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ , ์‚ญ์ œํ•ด๋„ ์‹ค์ œ ํ…Œ์ด๋ธ”์ด ์‚ญ์ œ๋˜์ง€ ์•Š๋Š”๋‹ค

7) ๋ทฐ์˜ ์žฅ์ ๊ณผ ๋‹จ์ 

- ์žฅ์ 

ํŠน์ • ์นผ๋Ÿผ๋งŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค

๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ„๋‹จํ•˜๋‹ค

SELECT๋ฌธ์ด ๊ฐ„๋‹จํ•ด์ง„๋‹ค

ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ทฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค

-๋‹จ์ 

๋ทฐ๋Š” ๋…์ž์ ์ธ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค

์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ ์—ฐ์‚ฐ์ด ์ œ์•ฝ๋œ๋‹ค -> ์‚ฝ์ž… X, ๋ฐ์ดํ„ฐ ์‚ญ์ œ O (๋น„๊ถŒ์žฅ)

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค

 

DML

1) INSERT๋ฌธ

- ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ๋ฌธ์ž์—ญ์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ํŠน์ • ํ…Œ์ด๋ธ”์— ๋ชจ๋“  ์นผ๋Ÿผ์— ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒฝ์šฐ ์ปฌ๋Ÿผ๋ช…์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค ex) INSERT INTO EMP VALUES(1000, '์ž„๋ฒ ์ŠคํŠธ'); ~ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ์ผ์น˜ํ•ด์•ผํ•จ

์ตœ์ข…์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด TCL๋ฌธ์ธ Commit์„ ์‹คํ–‰ํ•ด์•ผ ํ•œ๋‹ค

2) SELECT๋ฌธ

- SELECT๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด ํ•ด๋‹น ํ…Œ์ด๋ธ”์— ๋ฐ”๋กœ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ, ์ž…๋ ฅ๋˜๋Š” ํ…Œ์ด๋ธ”์€ ์‚ฌ์ „์— ์ƒ์„ฑ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค

3) NOLOGGING๋ฌธ

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Check Point ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๋กœ๊ทธ ํŒŒ์ผ์— ๊ทธ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋Š”๋ฐ, NOLOGGING ์˜ต์…˜์€ ๋กœ๊ทธ ํŒŒ์ผ์˜ ๊ธฐ๋ก์„ ์ตœ์†Œํ™”ํ•ด ์ž…๋ ฅ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ~ Buffer Cache๋ผ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์ƒ๋žตํ•˜๊ณ  ๊ธฐ๋กํ•œ๋‹ค

4) UPDATE๋ฌธ

- ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๋ ค๋ฉด, UPDATE๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค

- UPDATE๋ฌธ์„ ์‚ฌ์šฉํ•ด ์›ํ•˜๋Š” ์กฐ๊ฑด์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ, UPDATE๋ฌธ์— ์กฐ๊ฑด๋ฌธ์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์ •๋˜๋ฏ€๋กœ ์œ ์˜ํ•ด์•ผํ•œ๋‹ค.

5) DELETE๋ฌธ

- DELETE๋ฌธ์€ ์›ํ•˜๋Š” ์กฐ๊ฑด์„ ๊ฒ€์ƒ‰ํ•ด ํ•ด๋‹น ํ–‰์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์กฐ๊ฑด๋ฌธ์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋œ๋‹ค. DELETE๋ฌธ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค๊ณ  ํ•ด์„œ ํ…Œ์ด๋ธ”์˜ ์šฉ๋Ÿ‰์ด ์ดˆ๊ธฐํ™”๋˜์ง€๋Š” ์•Š๋Š”๋‹ค.(๋กค๋ฐฑ ๊ฐ€๋Šฅ) vs TRUNCATE

6) ORDER BY๋ฌธ

- SELECT๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ ORDER BY๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ, ORDER BY๋ฌธ์€ ๋งจ ๋งˆ์ง€๋ง‰์— ์‹คํ–‰๋œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ๋˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๋ฉฐ ๋ชจ๋“  ์‹คํ–‰์ด ๋๋‚œ ํ›„ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ ์ง์ „์— ์ •๋ ฌํ•œ๋‹ค. ์ด ๋•Œ๋ฌธ์— ์ •๋ ฌ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์œ ๋ฐœํ•œ๋‹ค. ํŠน๋ณ„ํ•œ ์ง€์ •์ด ์—†์œผ๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ง€์ •ํ•œ๋‹ค

7) DISTINCT์™€ ALIAS

- DISTINCT : DISTINCT๋Š” ์นผ๋Ÿผ ์•ž์— ์ง€์ •ํ•˜๋ฉฐ ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์กฐํšŒํ•˜๊ฒŒ ํ•œ๋‹ค

- ALIAS : ๋ณ„์นญ, ํ…Œ์ด๋ธ”๋ช…์ด๋‚˜ ์นผ๋Ÿผ๋ช…์„ ๊ฐ„๋žตํ•˜๊ฒŒ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค

8) WHERE๋ฌธ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž

WHERE๋ฌธ์ด ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž, SQL ์—ฐ์‚ฐ์ž, ๋ถ€์ • SQL ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ๋‹ค

- ๋น„๊ต ์—ฐ์‚ฐ์ž : =, <, <=, >, >=

- ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž : AND, OR, NOT

- SQL ์—ฐ์‚ฐ์ž : LIKE '%๋น„๊ต ๋ฌธ์ž์—ด%', BETWEEN A AND B, IN (list), IS NULL

- ๋ถ€์ • SQL ์—ฐ์‚ฐ์ž : NOT BETWEEN A AND B, NOT IN (list), IS NOT NULL

9) LIKE : ์™€์ผ๋“œ ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค

% : ์–ด๋–ค ๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์กฐํšŒํ•œ๋‹ค. ex) '์กฐ%' : ์กฐ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž ์กฐํšŒ

_(underscore) : ํ•œ ๊ฐœ์ธ ๋‹จ์ผ ๋ฌธ์ž ex) 'test_' : test๋กœ ์‹œ์ž‘ํ•˜๊ณ  ํ•˜๋‚˜์˜ ๊ธ€์ž๋งŒ ๋” ์žˆ๋Š” ๊ฒƒ์„ ์กฐํšŒ

10) BETWEEN๋ฌธ : ์ง€์ •๋œ ๋ฒ”์œ„์— ์žˆ๋Š” ๊ฐ’์„ ์กฐํšŒ

11) IN๋ฌธ : OR์˜ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ํ•˜๋‚˜์˜ ์กฐ๊ฑด๋งŒ ๋งŒ์กฑํ•ด๋„ ์กฐํšŒ๊ฐ€ ๋œ๋‹ค. 

 

 

728x90