ํ๋ก๊ทธ๋๋ฐ ๊ณต๋ถ/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. ๊ธฐ์กด ํ ์ด๋ธ ๋ฐ์ดํฐ๊ฐ ์์์ ๊ฒฝ์ฐ > ๋ฏธ๋ฆฌ ๋ฐ์ดํฐ ๋ฐฑ์ > ํ ์ด๋ธ ์ญ์ > ์์ ํ ์์ฑ > ๋ฐ์ดํฐ ๋ณต๊ตฌ - ๊ณต๋ถํ ๋ ์ฌ์ฉ - ๊ฐ๋ฐ ์ค์ ์ฌ์ฉ - ์๋น์ค ์ด์ ์ค > ๊ฑฐ์ ๋ถ๊ฐ๋ฅ!.. ์ด์ 1 2 3 ๋ค์