๋ชฉ๋ก๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (7)

๐˜š๐˜ญ๐˜ฐ๐˜ธ ๐˜ฃ๐˜ถ๐˜ต ๐˜ด๐˜ต๐˜ฆ๐˜ข๐˜ฅ๐˜บ

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/DB] Stored Procedure vs Trigger?

๋‘์œ ๋…ธ ํ”„๋กœ์‹œ์ ธ ? ๐Ÿ“˜ Stored Procedure(์ €์žฅ ํ”„๋กœ์‹œ์ €)์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” SQL๋ฌธ์„ ํ•˜๋‚˜์˜ ์ด๋ฆ„์œผ๋กœ ๋ฌถ์–ด์„œ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ํ•„์š”ํ•  ๋•Œ ๋งˆ๋‹ค ํ˜ธ์ถœํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฃผ๋กœ ๋ฐ˜๋ณต๋˜๋Š” ๋กœ์ง์„ '์žฌ์‚ฌ์šฉ' ํ•˜๊ฑฐ๋‚˜, ๋ณต์žกํ•œ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋งํ•˜๋ฉด ์–ด๋ ค์šด๋ฐ ๋‚˜๋ฆ„ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ๋…๋„ ์žˆ๊ณ , ์žฌ์‚ฌ์šฉ์„ฑ์„ ์œ„ํ•ด ํ™œ์šฉ๋œ๋‹ค๋Š” ์ ์—์„œ ์ผ์ข…์˜ method/ํ•จ์ˆ˜์™€ ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๋กœ ์ž‘๋™ํ•œ๋‹ค. ํŠน์ง•์œผ๋กœ๋Š” ์ž…๋ ฅ(IN), ์ถœ๋ ฅ(OUT), ์ž…์ถœ๋ ฅ(INOUT)์˜ ๊ฐœ๋…์ด ์กด์žฌํ•˜๊ณ , IF/WHILE/LOOP/CASE ๋“ฑ์˜ ์ œ์–ด๋ฌธ ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. ํ”„๋กœ์‹œ์ €๋Š” ๊ตฌํ˜„ ๋ฐ ๋””๋ฒ„๊น…์ด ์–ด๋ ต๋‹ค๋Š” ํ•œ๊ณ„์ ๋„ ์žˆ์œผ๋‚˜, ๋กœ์ง ์บก์Šํ™”, ์ค‘๋ณต ์ œ๊ฑฐ, ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋“ฑ ์œ ์ง€๋ณด์ˆ˜ ๋ฉด์—์„œ ๋ช…ํ™•ํ•œ ์žฅ์ ์ด ์กด์žฌํ•œ๋‹ค.  ์ฝ”..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/DB] SQL - CASE; ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ตฌ๋ฌธ ๋ถ„๊ธฐํ•˜๊ธฐ

๊ต์ˆ˜๋‹˜ ์ €ํฌํ•œํ…Œ ์ด๋Ÿฐ๊ฑฐ ์•ˆ์•Œ๋ ค์ฃผ์…จ์—ˆ์ž–์•„์š” ์˜ˆ์ œSELECT ID, QuantityCASE WHEN Quantity > 5 THEN "BRONZE" WHEN Quantity > 10 THEN "SILVER" WHEN Quantity > 50 THEN "GOLD" ELSE "VIP"END AS GRADEFROM CUSTOMERORDER BY ID; ๊ณ ๊ฐ ID, ๊ตฌ๋งค ์ˆ˜๋Ÿ‰์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ณ ๊ฐ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค ํ•  ๋•Œ,๊ณ ๊ฐ์˜ ๊ตฌ๋งค ์ˆ˜๋Ÿ‰ ๋ณ„ ํšŒ์› ๋“ฑ๊ธ‰์„ ๋‚˜๋ˆ ์„œ ์ถœ๋ ฅํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ์ด ๋•Œ, 5๊ฐœ๋ฅผ ์ดˆ๊ณผํ•˜์—ฌ ๊ตฌ๋งคํ•œ ๊ฒฝ์šฐ ๋ธŒ๋ก ์ฆˆ, 10๊ฐœ ๋„˜๊ฒŒ ๊ตฌ๋งคํ•œ ๊ฒฝ์šฐ ์‹ค๋ฒ„, 50๊ฐœ ๋„˜๊ฒŒ ๊ตฌ๋งคํ•œ ๊ฒฝ์šฐ ๊ณจ๋“œ, ๊ทธ ์ด์ƒ์— ๋Œ€ํ•ด VIP๋กœ ํšŒ์› ๋“ฑ๊ธ‰์„ ์„ค์ •ํ•˜๊ณ , column ๋ช…์€ 'GRADE'๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค. CASE๐Ÿ”— https://www.w3..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/DB] SQL - 3. ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด(DCL) ์ •๋ฆฌ - 1

3. ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด(DCL) ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด : ๋ณด์•ˆ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐ ์‚ฌ์šฉ ๊ถŒํ•œ์„ ์‚ฌ์šฉ์ž๋ณ„๋กœ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ์ทจ์†Œ ๊ธฐ๋Šฅ ์ œ๊ณต. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉ 3.1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณด์•ˆ 3.2 SQL ๋ฐ์ดํ„ฐ ์ œ์–ด 3.2.1 ๊ถŒํ•œ๋ถ€์—ฌ ; GRANT ๊ถŒํ•œ ๋ถ€์—ฌ GRANT ๊ถŒํ•œ ON ๊ฐ์ฒด TO ์‚ฌ์šฉ์ž [ WITH GRANT OPTION ]; - ํ…Œ์ด๋ธ”๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ฃผ์š” ๊ถŒํ•œ : INSERT, DELETE, UPDATE, SELECT, REFERENCES .. - ์—ฌ๋Ÿฌ ๊ถŒํ•œ ํ•œ ๋ฒˆ์— ๋™์‹œ์— ๋ถ€์—ฌ ๊ฐ€๋Šฅ - GRANT ๋ช…๋ น์–ด๋กœ ๋ถ€์—ฌ๋ฐ›์€ ๊ถŒํ•œ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌ ๋ถˆ๊ฐ€ + WITH GRANT OPTION : ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์ด ๋ถ€์—ฌ๋ฐ›์€ ๊ถŒํ•œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/DB] SQL - 2. ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด(DML) ์ •๋ฆฌ

2. ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด(DML) ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด : ํ…Œ์ด๋ธ”์— ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜, ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •, ์‚ญ์ œ, ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต 2.1 SQL ๋ฐ์ดํ„ฐ ์กฐ์ž‘ 2.1.1 ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ; INSERT ๋ฐ์ดํ„ฐ ์ง์ ‘ ์‚ฝ์ž… INSERT INTO ํ…Œ์ด๋ธ”_์ด๋ฆ„(์†์„ฑ_๋ฆฌ์ŠคํŠธ) VALUES (์†์„ฑ๊ฐ’_๋ฆฌ์ŠคํŠธ); - INTO ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ํˆฌํ”Œ์„ ์‚ฝ์ž…ํ•  ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„ ์ œ์‹œ ํ›„ ์†์„ฑ์˜ ์ด๋ฆ„ ๋‚˜์—ด โžก๏ธ ๋‚˜์—ด ์ˆœ์„œ๋Œ€๋กœ VALUE ํ‚ค์›Œ๋“œ ๋‹ค์Œ์˜ ์†์„ฑ๊ฐ’๋“ค ์ฐจ๋ก€๋กœ ์‚ฝ์ž… - INTO ์ ˆ์˜ ์†์„ฑ ์ด๋ฆ„ & VALUE ์ ˆ์˜ ์†์„ฑ๊ฐ’ ์ˆœ์„œ๋Œ€๋กœ ์ผ๋Œ€์ผ ๋Œ€์‘, ๊ฐœ์ˆ˜๋„ ๊ฐ™์•„์•ผ ํ•จ - INTO ์ ˆ์—์„œ [์†์„ฑ_๋ฆฌ์ŠคํŠธ] ์ƒ๋žต ๊ฐ€๋Šฅ(ํ…Œ์ด๋ธ” ์ •์˜ํ•  ๋•Œ ์ง€์ •ํ•œ ์†์„ฑ์˜ ์ˆœ์„œ๋Œ€๋กœ VALUE ์ ˆ์˜ ์†์„ฑ ๊ฐ’ ์‚ฝ์ž…) ๋ถ€์†์งˆ์˜๋ฌธ ์ด์šฉ INSERT INTO ํ…Œ์ด๋ธ”..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/DB] SQL - 1. ๋ฐ์ดํ„ฐ ์ •์˜์–ด(DDL) ์ •๋ฆฌ

๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋‚ด์šฉ ๋ฐœ๊ฒฌ์‹œ ์ง€์ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ๋ฐ์ดํ„ฐ ์ •์˜์–ด(DDL) ๋ฐ์ดํ„ฐ ์ •์˜์–ด : ํ…Œ์ด๋ธ” ์ƒ์„ฑ, ๋ณ€๊ฒฝ, ์ œ๊ฑฐ ๊ธฐ๋Šฅ ์ œ๊ณต 1.1 SQL ๋ฐ์ดํ„ฐ ์ •์˜ 1.1.1 ํ…Œ์ด๋ธ” ์ƒ์„ฑ ; CREATE TABLE ์ƒ์„ฑํ•  ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ๋“ค์˜ ์ด๋ฆ„, ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ฐ ์ œ์•ฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ •์˜. ํ…Œ์ด๋ธ” ์ƒ์„ฑ CREATE TABLE ํ…Œ์ด๋ธ”_์ด๋ฆ„ ( ์†์„ฑ_์ด๋ฆ„1 INT NOT NULL, ์†์„ฑ_์ด๋ฆ„2 VARCHAR(20), ์†์„ฑ_์ด๋ฆ„3 INTDEFAULT 0, PRIMARY KEY(์†์„ฑ_์ด๋ฆ„1, ...), UNIQUE(์†์„ฑ_์ด๋ฆ„2), FOREIGN KEY (์†์„ฑ_์ด๋ฆ„3) REFERENCES ํ…Œ์ด๋ธ”_์ด๋ฆ„2(์†์„ฑ) [ON DELETE ์˜ต์…˜][ON UPDATE ์˜ต์…˜] [CONSTRAINT ์ด๋ฆ„]..