AngzavA
[SQLD] 2-2-4. SQL ํ์ฉ : PL/SQL ๋ณธ๋ฌธ
๐DBMS
- GRANT : USER์์ DBMS ROLE ๋ถ์ฌ
- REVOKE : ROLE ํ์
- ROLE : ์ฌ์ฉ์์ ๊ถํ ์ฌ์ด์์ ์ค๊ฐ ์ญํ ์ ์ํํ๋ ๊ฒ
GRANT SELECT,UPDATE ON A TO B;
๐PL/SQL ํน์ง
- BLOCK๊ตฌ์กฐ๋ก ๋์ด์์ด ๊ฐ ๊ธฐ๋ฅ๋ณ๋ก ๋ชจ๋ํ๊ฐ ๊ฐ๋ฅ
- ๋ณ์, ์์ ๋ฑ์ ์ ์ธํ์ฌ SQL ๋ฌธ์ฅ ๊ฐ ๊ฐ์ ๊ตํ -> WHERE์ ์กฐ๊ฑด ๋ฑ์ผ๋ก ๋์ ๊ฐ๋ฅ
- IF, LOOP ๋ฑ์ ์ ์ฐจ์ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฐจ์ ์ธ ํ๋ก๊ทธ๋จ
- DBMS ์ ์ ์๋ฌ๋ ์ฌ์ฉ์ ์ ์ ์๋ฌ๋ฅผ ์ ์ํ์ฌ ์ฌ์ฉํ ์ ์๋ค
- ์ค๋ผํด์ ๋ด์ฅ, ์ง์ํ๋ ์๋ฒ๋ก ํ๋ก๊ทธ๋จ ์ฎ๊ธฐ๊ธฐ ๊ฐ๋ฅ
- ์์ฉํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ ํฅ์
- ์ฌ๋ฌ SQL ๋ฌธ์ฅ์ ๋ธ๋ก์ผ๋ก ๋ฌถ๊ณ ํ ๋ฒ์ ๋ธ๋ก ์ ๋ถ๋ฅผ ์๋ฒ๋ก ๋ณด๋ด๊ธฐ ๋๋ฌธ์ ํต์ ๋์ ์ค์ผ ์ ์๋ค.
- PROCEDURE, USER DEFINED FUNCTION, TRIGGER ๊ฐ์ฒด๋ฅผ ์์ฑ ๊ฐ๋ฅ
- ํ๋ก์์ ๋ด๋ถ ์ ์ฐจ์ ์ฝ๋๋ PL/SQL ์์ง์ด ์ฒ๋ฆฌํ๊ณ ์ผ๋ฐ์ ์ธ SQL์ SQL์คํ๊ธฐ๊ฐ ์ฒ๋ฆฌ
- ํ๋ก์์ ๋ด์์ ๋ค๋ฅธ ํ๋ก์์ ๋ฅผ ํธ์ถํ ๊ฒฝ์ฐ ํธ์ถ ํ๋ก์์ ์ ํธ๋์ญ์ ๊ณผ๋ ๋ณ๋๋ก PRAGMA AUTONOMOUS_TRANSACTION์ ์ ์ธํ์ฌ ์์จ ํธ๋์ญ์ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค.
- ๋์ SQL ๋๋ DDL ๋ฌธ์ฅ์ ์คํํ ๋ EXECUTE IMMEDIATE ์ฌ์ฉํ์ฌ์ผ ํ๋ค -> DELETE ~ ๋ ๋กค๋ฐฑ์ด ๊ฐ
๐์ ์ฅ ๋ชจ๋(Stored Module)
- ์ ์ฅํ ํ๋ก์์ ๋ SQL์ ๋ก์ง๊ณผ ํจ๊ป DB ๋ด์ ์ ์ฅํด ๋์ ๋ช ๋ น๋ฌธ์ ์งํฉ ์๋ฏธ
- ์ ์ฅํ ํจ์(์ฌ์ฉ์ ์ ์ ํจ์)๋ ๋จ๋ ์ ์ผ๋ก ์คํ๋๊ธฐ ๋ณด๋ค๋ ๋ค๋ฅธ SQL๋ฌธ์ ํตํ์ฌ ํธ์ถ๋๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํดํ๋ SQL์ ๋ณด์กฐ์ ์ธ ์ญํ
- ํธ๋ฆฌ๊ฑฐ๋ ํน์ ํ ํ ์ด๋ธ์ INSERT, UPDATE, DELETE์ ๊ฐ์ DML๋ฌธ์ด ์ํ๋์์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์๋์ผ๋ก ๋์ํ๋๋ก ์์ฑ๋ ํ๋ก๊ทธ๋จ
- ํธ๋ฆฌ๊ฑฐ์ ์ฉ๋ : ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ํด์ ์ฌ์ฉ์ ์ ์ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ
- ํธ๋ฆฌ๊ฑฐ : DB์ ์ํด์ ์๋์ผ๋ก ํธ์ถ๋๊ณ ์ํ, TCL์ ์ด์ฉํ์ฌ ์ ์ด ๋ถ๊ฐ, DB ๋ก๊ทธ์ธ ์์ ์๋ ์ ์ ๊ฐ๋ฅ
๐ํ๋ก์์ ์ ํธ๋ฆฌ๊ฑฐ์ ์ฐจ์ด์
ํ๋ก์์ | ํธ๋ฆฌ๊ฑฐ |
CREATE Procedure ๋ฌธ๋ฒ ์ฌ์ฉ | CREATE Trigger ๋ฌธ๋ฒ ์ฌ์ฉ |
EXECUTE ๋ช ๋ น์ด๋ก ์คํ | ์์ฑ ํ ์๋ ์คํ |
COMMIT, ROLLBACK ์คํ ๊ฐ๋ฅ | COMMIT, ROLLBACK ์คํ ๋ถ๊ฐ |
'SQLD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] 2-2-3. SQL ํ์ฉ : ์๋์ฐ ํจ์ (0) | 2023.06.08 |
---|---|
[SQLD] 2-2-2. SQL ํ์ฉ : ๊ทธ๋ฃน ํจ์ (0) | 2023.06.08 |
[SQLD] 2-2. SQL ํ์ฉ (0) | 2023.06.08 |
[SQLD] 2-1. SQL ๊ธฐ๋ณธ (1) | 2023.06.07 |
[SQLD] 1-2.๋ฐ์ดํฐ ๋ชจ๋ธ๊ณผ ์ฑ๋ฅ (0) | 2023.06.07 |