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

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€/Oracle

(21)
[ex29] PL/SQL PL/SQL - Oracle's Procedural Language Extension to SQL - ANSI-SQL์— ์ ˆ์ฐจ ์ง€ํ–ฅ ์–ธ์–ด์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ SQL - ANSI-SQL + ์ž๋ฐ”๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ธฐ๋Šฅ = PL/SQL ANSI-SQL - ๋น„์ ˆ์ฐจ ์ง€ํ–ฅ ์–ธ์–ด - ์ˆœ์„œ๊ฐ€ ์—†๊ณ  ๋ฌธ์žฅ๊ฐ„์˜ ํ–‰๋™์ด ์„œ๋กœ ๋…๋ฆฝ์ ์ด๋‹ค. - ๋ฌธ์žฅ ๋‹จ์œ„ ๊ตฌ์กฐ ํ”„๋กœ์‹œ์ €, Procedure - ๋ฉ”์†Œ๋“œ, ํ•จ์ˆ˜ ๋“ฑ.. - ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ช…๋ น์–ด(ANSI-SQL + PL/SQL)์˜ ์ง‘ํ•ฉ 1. ์ต๋ช… ํ”„๋กœ์‹œ์ € - 1ํšŒ์šฉ ์ฝ”๋“œ ์ž‘์„ฑ์šฉ 2. ์‹ค๋ช… ํ”„๋กœ์‹œ์ € - ์ €์žฅ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค) > DB Object - ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ - ๊ณ„์ •๊ฐ„ ๊ณต์œ  ๊ฐ€๋Šฅ PL/SQL ํ”„๋กœ์‹œ์ € ๋ธ”๋Ÿญ ๊ตฌ์กฐ - 4๊ฐœ์˜ ํ‚ค์›Œ๋“œ(๋ธ”๋Ÿญ)์œผ๋กœ ๊ตฌ์„ฑ a. declare b. begin c. ex..
[ex28] modeling ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ 1. ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„ 2. ๊ฐœ๋… ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง 3. ๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง 4. ๋ฌผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง 5. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง - ์š”๊ตฌ ๋ถ„์„ ๊ธฐ๋ฐ˜ > ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ > ๋ถ„์„ > ์ €์žฅ ๊ตฌ์กฐ ์ƒ์„ฑ > ๋„์‹ํ™” > ERD(์‚ฐ์ถœ๋ฌผ) - ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ์ž‘์—… - DBMS ์ข…๋ฅ˜๋ฅผ ๊ฒฐ์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค. - ๊ฐœ๋… ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง > ๊ฐ„๋‹จํ•˜๊ฒŒ ํ‘œํ˜„ํ•œ ์„ค๊ณ„๋„ > ํ…Œ์ด๋ธ” + ์ปฌ๋Ÿผ + ๊ด€๊ณ„ - ๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง > ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ์งˆ ๋ฐ˜์˜ > ์†์„ฑ + ๋„๋ฉ”์ธ + ํ‚ค > ์ œ๋Œ€๋กœ ๋œ ์„ค๊ณ„๋„ - ๋ฌผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง > ํŠน์ • DBMS ๊ฒฐ์ • > ์˜ค๋ผํด ์„ ์ • + ๋ฐ˜์˜ > ๋ฌผ๋ฆฌ์  ์„ค์ •.. 1. ERD, Entity Relationship Diagram - ์—”ํ‹ฐํ‹ฐ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„..
[ex27] transaction ex27_transaction.sql ํŠธ๋žœ์žญ์…˜, Transaction - ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์—…๋ฌด์˜ ์‹œ๊ฐ„์  ๋‹จ์œ„ - ์ผ๋ จ์˜ ์‚ฌ๊ฑด์˜ ์ง‘ํ•ฉ. ex) ์€ํ–‰์—์„œ ๋ˆ์„ ์ธ์ถœํ•˜๋Š” ํ–‰๋™(1 ~ 8๋ฒˆ ํ–‰๋™) - 1๊ฐœ ์ด์ƒ์˜ ๋ช…๋ น์–ด๋กœ ๊ตฌ์„ฑ๋œ ์ž‘์—… ๋‹จ์œ„ ํŠธ๋žœ์žญ์…˜ ๋ช…๋ น์–ด - DCL, TCL 1. commit 2. rollback 3. savepoint commit; -- ์ด ์‹œ๊ฐ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ํŠธ๋žœ์žญ์…˜์ด ์‹œ์ž‘๋œ๋‹ค!! > insert, update, delete๋งŒ ํŠธ๋žœ์žญ์…˜์— ํฌํ•จ๋œ๋‹ค. -- ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋Š” ๋ชจ๋“  insert, update, delete๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. -- > ์ž„์‹œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์šฉ๋œ๋‹ค. > ์‹ค์ œ DB์—๋Š” ์ ์šฉ์ด ์•ˆ๋œ๋‹ค. commit; -- ํ˜„์žฌ ํŠธ๋žœ์žญ์…˜์—์„œ ํ–ˆ๋˜ ๋ชจ๋“  ๋ช…๋ น์–ด๋ฅผ ์žˆ์—ˆ๋˜ ์ผ๋กœ ๋งŒ๋“ค์–ด๋ผ r..
[ex26] Hierarchical Query ex26_hierarchical ๊ณ„์ธตํ˜• ์ฟผ๋ฆฌ, Hierarchical Query - ์˜ค๋ผํด ์ „์šฉ - ๋ ˆ์ฝ”๋“œ ๊ด€๊ณ„๊ฐ€ ์„œ๋กœ ์ƒํ•˜ ์ˆ˜์ง ๊ตฌ์กฐ์ผ๋•Œ ์‚ฌ์šฉ - ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ฐ„์˜ ๊ด€๊ณ„๊ฐ€ ์ˆ˜์ง ๊ตฌ์กฐ์ผ๋•Œ ์‚ฌ์šฉ - ์ž๊ธฐ ์ฐธ์กฐ๋ฅผ ํ•˜๋Š” ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์šฉ - ex) ์นดํ…Œ๊ณ ๋ฆฌ, ๋‹ต๋ณ€ํ˜• ๊ฒŒ์‹œํŒ, ์กฐ์ง๋„ ๋“ฑ.. ํŠธ๋ฆฌ ๊ตฌ์กฐ์— ์‚ฌ์šฉ ์ปดํ“จํ„ฐ - ๋ณธ์ฒด - ๋ฉ”์ธ๋ณด๋“œ - ๊ทธ๋ž˜ํ”ฝ์นด๋“œ - CPU - ๋ฉ”๋ชจ๋ฆฌ - ๋ชจ๋‹ˆํ„ฐ - ๋ชจ๋‹ˆํ„ฐ์•” - ๋ณดํ˜ธํ•„๋ฆ„ -- Case 1. create table tblComputer ( seq number primary key, --์‹๋ณ„์ž(PK) name varchar2(50) not null, --๋ถ€ํ’ˆ๋ช… qty number not null, --์ˆ˜๋Ÿ‰ pseq number null references tblComputer(..
[ex25] with ex25.with [WITH ] - with ์ ˆ SELECT column_list - select ์ ˆ FROM table_name - from ์ ˆ [WHERE search_condition] - where ์ ˆ [GROUP BY group_by_expression] - group by์ ˆ [HAVING search_condition] - having ์ ˆ [ORDER BY order_expresstion [ASC|DESC]]; - order by์ ˆ with์ ˆ - ์ธ๋ผ์ธ๋ทฐ(from์ ˆ ์„œ๋ธŒ์ฟผ๋ฆฌ)์— ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ๊ธฐ์ˆ  - ๋‹จ๋…์œผ๋กœ๋Š” ๋ชป ์”€. (select๋ฌธ ์•ž์—) with ์ž„์‹œํ…Œ์ด๋ธ”๋ช… as ( ๊ฒฐ๊ณผ์…‹ select ) select ๋ฌธ; with์ ˆ ์‹คํ–‰ ๋ฐฉ์‹ 1. Materialize ๋ฐฉ์‹ > ์ž„์‹œ ํ…Œ์ด๋ธ”์ด 2๋ฒˆ ์ด์ƒ..
[ex24] rank ex24.rank ์ˆœ์œ„ํ•จ์ˆ˜ - rownum์˜ ์‚ฌ์šฉ์„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์šฉ๋„๋กœ ๊ตฌํ˜„ํ•ด๋†“์€ ํ•จ์ˆ˜ 1. rank() over() - rank() over(order by ์ปฌ๋Ÿผ๋ช… [asc|desc]) - ์ˆœ์œ„ ๋ถ€์—ฌ์‹œ, ์ค‘๋ณต๊ฐ’์ด ๋ฐœ์ƒํ•˜๋ฉด ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ์ค‘๋ณต๊ฐ’์˜ ๊ฐœ์ˆ˜๋งŒํผ ๊ฑด๋„ˆ๋›ฐ๊ธฐ ํ•œ๋‹ค. - 1 1 > 3 2. dense_rank() over() - dense_rank() over(order by ์ปฌ๋Ÿผ๋ช… [asc|desc]) - ์ˆœ์œ„ ๋ถ€์—ฌ์‹œ, ์ค‘๋ณต๊ฐ’์ด ๋ฐœ์ƒํ•˜๋ฉด ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ๊ทธ ๋’ค์˜ ์ˆœ์œ„๋Š” ๊ฑด๋„ˆ๋›ฐ๊ธฐ ์—†์ด ์ˆœ์ฐจ์ ์œผ๋กœ ๋ถ€์—ฌํ•œ๋‹ค. - 1 1 > 2 3. row_number() over() - row_number() over(order by ์ปฌ๋Ÿผ๋ช… [asc|desc]) - ์ˆœ์œ„ ๋ถ€์—ฌ์‹œ, ์ค‘๋ณต๊ฐ’๊ณผ ์ƒ๊ด€์—†์ด ์ˆœ์ฐจ์ ..
[ex23] pseudo, rownum ex23_pseudo ์˜์‚ฌ์ปฌ๋Ÿผ, Pseudo Column - ์‹ค์ œ ์ปฌ๋Ÿผ์ด ์•„๋‹Œ๋ฐ ์ปฌ๋Ÿผ์ฒ˜๋Ÿผ ํ–‰๋™ํ•˜๋Š” ์š”์†Œ rownum - ์˜ค๋ผํด ์ „์šฉ - row num > ํ–‰๋ฒˆํ˜ธ > ๋ ˆ์ฝ”๋“œ์˜ ์ผ๋ จ๋ฒˆํ˜ธ - from์ ˆ์ด ์‹คํ–‰๋  ๋•Œ ๊ฐ ๋ ˆ์ฝ”๋“œ์— ์ผ๋ จ๋ฒˆํ˜ธ๋ฅผ ํ• ๋‹นํžŒ๋‹ค.(*****) - where์ ˆ์˜ ์˜ํ–ฅ์„ ๋ฐ›์œผ๋ฉด ์ผ๋ จ๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œ ์ •๋น„ํ•œ๋‹ค.(reindexing) (*****) - rownum์„ ์‚ฌ์šฉ > ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค. select name, buseo, --์ปฌ๋Ÿผ(์†์„ฑ) > output > ๊ฐ์ฒด์˜ ํŠน์„ฑ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.(๊ฐœ์ธ ๋ฐ์ดํ„ฐ) sysdate, --ํ•จ์ˆ˜ > output > ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.(์ •์  ๋ฐ์ดํ„ฐ) substr(name, 2), --ํ•จ์ˆ˜ > input + output > ๊ฐ์ฒด๋งˆ๋‹ค ๋‹ค๋ฅธ..
[ex22] alter DDL > Object - ๊ฐ์ฒด ์ƒ์„ฑ: create - ๊ฐ์ฒด ์‚ญ์ œ: drop - ๊ฐ์ฒด ์ˆ˜์ •: alter DML > Data(Record) - ๋ฐ์ดํ„ฐ ์ƒ์„ฑ: insert - ๋ฐ์ดํ„ฐ ์‚ญ์ œ: delete - ๋ฐ์ดํ„ฐ ์ˆ˜์ •: update ํ…Œ์ด๋ธ” ์ˆ˜์ •ํ•˜๊ธฐ - ํ…Œ์ด๋ธ” ์ •์˜ ์ˆ˜์ • > ์ปฌ๋Ÿผ ์ˆ˜์ • > ์ปฌ๋Ÿผ๋ช… or ์ž๋ฃŒํ˜•(๊ธธ์ด) or ์ œ์•ฝ์‚ฌํ•ญ ํ…Œ์ด๋ธ” ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ ๋ฐœ์ƒ!! 1. ํ…Œ์ด๋ธ” ์‚ญ์ œ(drop) > ํ…Œ์ด๋ธ” DDL(create) ์ˆ˜์ • > ์ˆ˜์ •๋œ DDL๋กœ ์ƒˆ๋กญ๊ฒŒ ํ…Œ์ด๋ธ” ์ƒ์„ฑ a. ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์—ˆ์„ ๊ฒฝ์šฐ > ์•„๋ฌด ๋ฌธ์ œ ์—†์Œ b. ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์—ˆ์„ ๊ฒฝ์šฐ > ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ฐฑ์—… > ํ…Œ์ด๋ธ” ์‚ญ์ œ > ์ˆ˜์ • ํ›„ ์ƒ์„ฑ > ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ - ๊ณต๋ถ€ํ•  ๋•Œ ์‚ฌ์šฉ - ๊ฐœ๋ฐœ ์ค‘์— ์‚ฌ์šฉ - ์„œ๋น„์Šค ์šด์˜ ์ค‘ > ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅ!..