λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • Welcome.
:: DBMS 🚩/OracleDB

[DBMS] SQL - κ°œλ… - 3 - [SQL - TCL / SQL - DCL]

by EunBird 2021. 3. 23.

 

1. SQL - TCL
2. SQL - DCL
3. ν•¨μˆ˜ ( NULL μ²˜λ¦¬ ν•¨μˆ˜, λ‹¨μΌ ν•¨μˆ˜ )
=================================================================================

1. TCL ( Transaction Control Language )
- νŠΈλžœμž­μ…˜ μ œμ–΄ μ–Έμ–΄.
- νŠΈλžœμž­μ…˜μ€ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ…Όλ¦¬μ  μ—°μ‚° λ‹¨μœ„이닀.
- νŠΈλžœμž­μ…˜μ˜ λŒ€μƒμ΄ λ˜λŠ” SQL문은 UPDATE, INSERT, DELETE λ“± λ°μ΄ν„°λ₯Ό μˆ˜μ •ν•˜λŠ” DML문이닀.
- ν•˜λ‚˜μ˜ νŠΈλžœμž­μ Όμ—λŠ” ν•˜λ‚˜ μ΄μƒμ˜ SQLλ¬Έμž₯이 ν¬ν•¨λ˜λ©° λΆ„ν• ν•  μˆ˜ μ—†λŠ” μ΅œμ†Œμ˜ λ‹¨μœ„이닀. μ¦‰ ALL OR NOTHING μ΄λ‹€.
- νŠΈλžœμž­μ…˜μ˜ νŠΉμ§•
1. μ›μžμ„± : νŠΈλžœμž­μ…˜μ—μ„œ μ •μ˜λœ μ—°μ‚°λ“€μ€ λͺ¨λ‘ μ„±κ³΅μ μœΌλ‘œ μ‹€ν–‰λ˜λ˜μ§€ μ•„λ‹ˆλ©΄ μ „ν˜€ μ‹€ν–‰λ˜μ§€ μ•Šμ€ μƒνƒœλ‘œ λ‚¨μ•„μžˆλ‹€.
2. μΌκ΄€μ„± : νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰λ˜κΈ° μ „μ˜ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ‚΄μš©μ΄ μž˜λͺ»λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄
   νŠΈλžœμž­μ…˜ μ΄ν›„에도 λ‚΄μš©μ— μž˜λͺ»μ΄ μžˆμœΌλ©΄ μ•ˆλœλ‹€.
3. κ³ λ¦½μ„± : νŠΈλžœμž­μ…˜μ΄ μ‹€ν–‰λ˜λŠ” λ„쀑에 λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ˜ μ˜ν–₯을 λ°›μ•„ μž˜λͺ»λœ κ²°κ³Όλ₯Ό λ§Œλ“€μ–΄μ„œλŠ” μ•ˆλœλ‹€.
4. μ§€μ†μ„± : νŠΈλžœμž­μ…˜μ΄ μ„±κ³΅μ μœΌλ‘œ μˆ˜ν–‰λœλ‹€λ©΄ κ·Έ νŠΈλžœμž­μ…˜μ΄ κ°±μ‹ ν•œ ν…Œμ΄λΈ”μ˜ λ‚΄μš©μ€ μ˜κ΅¬μ μœΌλ‘œ μ €μž₯λœλ‹€.
- νŠΈλžœμž­μ…˜μ˜ μ’…λ₯˜λ‘œλŠ” COMMIT, ROLLBACK, SAVEPOINTκ°€ μžˆλ‹€.
1) COMMIT
- μž…λ ₯ν•œ μžλ£Œλ‚˜ μˆ˜μ •ν•œ μžλ£Œμ— λŒ€ν•΄μ„œ λ˜λŠ” μ‚­μ œν•œ μžλ£Œμ— λŒ€ν•΄μ„œ μ „ν˜€ λ¬Έμ œκ°€ μ—†λ‹€κ³  νŒλ‹¨λ˜μ—ˆμ„ κ²½μš°,
  COMMIT λͺ…λ Ήμ–΄λ₯Ό ν†΅ν•΄μ„œ νŠΈλžœμž­μ…˜μ„ μ™„λ£Œν•œλ‹€.
2) ROLLBACK
- COMMIT μ΄μ „μ—λŠ” λ³€κ²½ μ‚¬ν•­μ„ μ·¨μ†Œ ν•  μˆ˜ μžˆλŠ”데, μ΄ λ•Œ ROLLBACKμ΄λΌλŠ” κΈ°λŠ₯을 μ‚¬μš©ν•œλ‹€.
3) SAVEPOINT
- μ €μž₯점을 μ •μ˜ν•˜λ©΄ ROLLBACK λ‘€λ°±ν•  λ•Œ νŠΈλžœμž­μ…˜μ— ν¬ν•¨λœ μ „체 μž‘업을 λ‘€λ°±ν•˜λŠ” κ²ƒμ΄ μ•„λ‹Œ,
  ν˜„ μ§€μ μ—μ„œ SAVEPOINTκΉŒμ§€ νŠΈλžœμž­μ…˜μ˜ μΌλΆ€λ§Œ λ‘€λ°±ν•  μˆ˜ μžˆλ‹€.

=================================================================================

2. DCL ( Data Control Language )
- λ°μ΄ν„° μ œμ–΄ μ–Έμ–΄
- λ°μ΄ν„° λ² μ΄μŠ€μ— κΆŒν•œ λΆ€μ—¬
- μ§μ ‘ λ°μ΄ν„° λ² μ΄μŠ€μ˜ ν…Œμ΄λΈ”에 μ˜ν–₯을 λ―ΈμΉ˜κΈ° λ•Œλ¬Έμ— DCL λ˜ν•œ Auto Commit이닀.
- DCL의 μ’…λ₯˜λ‘œλŠ” GRANT, REVOKEκ°€ μžˆλ‹€.
1) GRANT : λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ μ‚¬μš©μžμ˜ μ—‘μ„ΈμŠ€ κΆŒν•œμ„ μ œκ³΅
   ( νŠΉμ • μ‚¬μš©μžλ§Œ νŠΉμ • μž‘업을 ν•  μˆ˜ μžˆλ„둝 μ§€μ • κ°€λŠ₯ )
2) REVOKE : GRANT λͺ…λ ΉμœΌλ‘œ μ£Όμ–΄μ§„ μ•‘μ„ΈμŠ€ κΆŒν•œμ„ μ² νšŒ ( μ‰½κ²Œλ§ν•΄, μ£Όκ³  λ‹€μ‹œ κ°€μ Έκ°. )
- λ¬Έλ²•
- GRANT
GRANT < κΆŒν•œ1, κΆŒν•œ2 .. > TO < κΆŒν•œμ„ λΆ€μ—¬λ°›μ„ κ³„μ • >; ν˜Ήμ€
GRANT < κΆŒν•œ1, κΆŒν•œ2 .. > ON < κ°μ²΄λͺ… ( ν…Œμ΄λΈ”λͺ… ) > TO < κΆŒν•œμ„ λΆ€μ—¬λ°›μ„ κ³„μ • >;
- REVOKE
REVOKE < κΆŒν•œ1, κΆŒν•œ2 .. > FROM < κΆŒν•œμ„ λΊμ„ κ³„μ • >; ν˜Ήμ€
REVOKE < κΆŒν•œ1, κΆŒν•œ2 .. > ON < κ°μ²΄λͺ… ( ν…Œμ΄λΈ”λͺ… ) > FROM < κΆŒν•œμ„ λΊμ„ κ³„μ • >;

2-1) λ‘€ ( ROLE )
- λ‘€ ( ROLE )μ΄λž€ μ‚¬μš©μžμ—κ²Œ ν—ˆκ°€ ν•  μˆ˜ μžˆλŠ” κΆŒν•œλ“€μ˜ μ§‘합이라고 ν•  μˆ˜ μžˆλ‹€.
- λ¬Όλ‘ , λ‘€μ„ μ‚¬μš©ν•˜μ§€ μ•Šκ³  μΌμΌμ΄ ν•˜λ‚˜ν•˜λ‚˜ κΆŒν•œμ„ κ³„정에 λΆ€μ—¬ν•΄λ„ μ’‹μœΌλ‚˜,
   λΆ€μ—¬ν•΄μ•Ό ν•˜λŠ” κ³„정이 ν•œλ‘κ°œκ°€ μ•„λ‹ˆλΌλ©΄?
- μ΄λŸ΄ λ•Œ κ³„μ •λ³„λ‘œ λΆ€μ—¬λ°›μ•„μ•Ό ν•  κΆŒν•œμ„ ν•œκ³³μ— λͺ¨μ•„두고 ( λ‘€ ) λΆ€μ—¬ν•˜λ©΄ λœλ‹€.
- ROLE λΆ€μ—¬ μˆœμ„œ
ROLE의 μƒμ„± : CREATE ROLE < λ‘€ μ΄λ¦„ >;
ROLE에 κΆŒν•œ λΆ€μ—¬ : GRANT < κΆŒν•œ1, κΆŒν•œ2 .. > TO < κΆŒν•œμ„ λΆ€μ—¬λ°›μ„ λ‘€ >;
ROLE을 μ‚¬μš©μž λ˜λŠ” ROLEμ—κ²Œ λΆ€μ—¬ : GRANT < λΆ€μ—¬ν•  κΆŒν•œ > TO < λΆ€μ—¬λ°›μ„ κ³„μ • >;

 

 

 

 

 

728x90

λŒ“κΈ€