๐Ÿ’พ SQL_

[SQLD] SQL - Structured Query Language

CodeLoge 2025. 3. 5. 22:38

โœด๏ธŽ SQL

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

: ๊ด€๊ณ„ํ˜• DB๋Š” DB๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  SQL๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ DB๋ฅผ ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ

: SQL์€ ANSI/ISO ํ‘œ์ค€์„ ์ค€์ˆ˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— DBMS๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

โœด๏ธŽ SQL ์ข…๋ฅ˜

SQL ์ข…๋ฅ˜
DDL (Data Definition Language) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ์–ธ์–ด
CREATE, ALTER, DROP, RENAME
DML (DataManipulation Language) ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ, ์ˆ˜์ •, ์‚ญ์ œ, ์กฐํšŒ
INSERT, UPDATE, DELETE, SELECT
DCL (Data Control Language) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ํšŒ์ˆ˜
GRANT, REVOKE, TRUNCATE
TCL (Transaction Control Language) ํŠธ๋žœ์ ์…˜์„ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์–ด
COMMIT, ROLLBACK, SAVEPOINT

 

• DDL : DB ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ, ์‚ญ์ œํ•˜๋Š” ๊ฒƒ

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

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

// ์ž‘์—…์˜ ์ˆœ์„œ
1. DB์˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌ
2. ๊ถŒํ•œ์ด ๋ถ€์—ฌ๋˜๋ฉด DDL๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ •์˜
3. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์ •์˜๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ
4. ๊ฐœ๋ฐœ์ž ๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ

 

โœด๏ธŽ ํŠธ๋žœ์ ์…˜ (Transaction)

: DB์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ์œ„

: DB์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—…์˜ ๋‹จ์œ„ ๋˜๋Š” ํ•œ๋ฒˆ์— ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  ์ผ๋ จ์˜ ์—ฐ์‚ฐ๋“ค์„ ์˜๋ฏธ

ํŠน์„ฑ
์›์ž์„ฑ (Atomicity) ํŠธ๋žœ์ ์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ์‚ฐ์˜ ์ „๋ถ€๊ฐ€ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผํ•จ (All or Nothing)
์ฒ˜๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ๋๋‚˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ์™€ ๊ฐ™์•„์•ผ ํ•จ
์ผ๊ด€์„ฑ (Consistency) ์‹คํ–‰ ๊ฒฐ๊ณผ๋กœ DB์˜ ์ƒํƒœ๊ฐ€ ๋ชจ์ˆœ๋˜์ง€ ์•Š์•„์•ผ ํ•จ
์‹คํ–‰ ํ›„์—๋„ ์ผ๊ด€์„ฑ์ด ์œ ์ง€๋˜์–ด์•ผ ํ•จ
๊ณ ๋ฆฝ์„ฑ (Isolation)
== ๋…๋ฆฝ์„ฑ, ๊ฒฉ๋ฆฌ์„ฑ
์‹คํ–‰ ์ค‘์— ์ƒ์„ฑํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋Š” ๋‹ค๋ฅธ ํŠธ๋žœ์ ์…˜์ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ
๋ถ€๋ถ„์ ์ธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ํŠธ๋žœ์ ์…˜์ด ๋ณผ ์ˆ˜ ์—†์Œ
์˜์†์„ฑ (Durability)
== ์ง€์†์„ฑ
์‹คํ–‰์„ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌ์  ๋ณด์žฅ์ด ๋˜์–ด์•ผํ•จ

 

โœด๏ธŽ SQL๋ฌธ์˜ ์‹คํ–‰ ์ˆœ์„œ

: ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ SQL๋ฌธ์€ 3๋‹จ๊ณ„๋ฅผ ๊ฑธ์ณ์„œ ์‹คํ–‰

: SQL๋ฌธ์˜ ๋ฌธ๋ฒ•์„ ๊ฒ€์‚ฌํ•˜๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„

: ๊ตฌ๋ฌธ ๋ถ„์„ ์ดํ›„์— SQL์„ ์‹คํ–‰, ์‹คํ–‰๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ฒŒ ๋จ

SQL ์‹คํ–‰ ์ˆœ์„œ
ํŒŒ์‹ฑ (Parsing) SQL๋ฌธ์˜ ๋ฌธ๋ฒ•์„ ํ™•์ธํ•˜๊ณ  ๊ตฌ๋ฌธ ๋ถ„์„
๊ตฌ๋ฌธ ๋ถ„์„ํ•œ SQL๋ฌธ์€ Library Cache์— ์ €์žฅ
์‹คํ–‰ (Execution) Optimizer๊ฐ€ ์ˆ˜๋ฆฝํ•œ ์‹คํ–‰ ๊ณ„ํš์— ๋”ฐ๋ผ SQL์„ ์‹คํ–‰
์ธ์ถœ (Fetch) ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์„œ ์ „์†ก
ํ…Œ์ด๋ธ”์—์„œ ๋ ˆ์ฝ”๋“œ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ

์ธ์ถœ์˜ Fetch๋Š” ๊ฒŒ์ž„์˜ Patch์™€ ๋‹ค๋ฆ„ → ๊ฒŒ์ž„์˜ Patch๋Š” ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋Š” ๊ฒƒ!