[Chapter 8] DML

๊น€์•„๋žŒยท2023๋…„ 7์›” 25์ผ

๐Ÿ“Œ 1. ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด(DML)

: Data Manipulation Language

  • ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ฐ ๋ณ€ํ˜•์„ ์œ„ํ•œ ๋ช…๋ น์–ด
  • select, update, insert, delete
  • insert into ํ…Œ์ด๋ธ”๋ช… values (๊ฐ’1, ๊ฐ’2, ...) ;
    insert into ํ…Œ์ด๋ธ”๋ช… (์ปฌ๋Ÿผ1, ์ปฌ๋Ÿผ2, ...)
    values (๊ฐ’1, ๊ฐ’2,...);
  • update ํ…Œ์ด๋ธ”๋ช… set ์ปฌ๋Ÿผ1 = ๊ฐ’1, ์ปฌ๋Ÿผ2 = ๊ฐ’2, ...
    where ์กฐ๊ฑด;
  • delete (from) ํ…Œ์ด๋ธ”๋ช… where ์กฐ๊ฑด;

๐Ÿด์˜ˆ
---------- ํ…Œ์ด๋ธ” ์ƒ์„ฑ ---------------

ํ…Œ์ด๋ธ” ์ด๋ฆ„ : sample
์ปฌ๋Ÿผ : deptNo number(20),
deptName varchar2(15),
deptLoc varchar2(15),
depManger varchar2(10)

CREATE TABLE sample (
			  deptNo number(20), 
  			  deptName varchar2(15)	, 
  			  deptLoc varchar2(15), 
 			  depManger varchar2(10)
 );

SELECT * FROM sample;

---------- insert ---------------
10, ๊ธฐํš์‹ค, ์„œ์šธ, ํ™๊ธธ๋™
20, ์ „์‚ฐ์‹ค, ๋ถ€์‚ฐ, ์ด์ˆœ์‹ 
30, ์˜์—…๋ถ€, ๊ด‘์ฃผ, null

 INSERT  INTO  SAMPLE s  VALUES (10, '๊ธฐํš์‹ค', '์„œ์šธ', 'ํ™๊ธธ๋™') ;
 INSERT  INTO  SAMPLE s  VALUES (20, '์ „์‚ฐ์‹ค', '๋ถ€์‚ฐ', '์ด์ˆœ์‹ ') ;
 INSERT  INTO  SAMPLE s  VALUES (30, '์˜์—…๋ถ€', '๊ด‘์ฃผ', null) ;

---------- update ---------------
๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 30๋ฒˆ ๋ถ€์„œ๋ฅผ 50๋ฒˆ์œผ๋กœ ๋ณ€๊ฒฝ

UPDATE SAMPLE SET  DEPTNO = 50
WHERE  DEPTNO = 30;

UPDATE SAMPLE SET DEPTLOC = '์ธ์ฒœ'
WHERE DEPTNAME = '์˜์—…๋ถ€'; 

---------- delete ---------------
์˜์—…๋ถ€ ์‚ญ์ œ

DELETE FROM SAMPLE WHERE DEPTNAME = '์˜์—…๋ถ€';

๐Ÿ“Œ 2. ์‚ญ์ œ ์ฐจ์ด(Drop/Truncate/Delete)

  • Drop : ํ…Œ์ด๋ธ” ์กด์žฌ ์ž์ฒด๊ฐ€ ์‚ญ์ œ
  • Truncate : ๋ฐ์ดํ„ฐ๋งŒ ํ†ต ์‚ญ์ œ (๋ณต๊ตฌ ๋ถˆ๊ฐ€)
    -> ํ…Œ์ด๋ธ”์ด ์‚ญ์ œ๋˜๋Š” ๋ช…๋ น์–ด๋Š” ์•„๋‹ˆ๊ณ  ํ…Œ์ด๋ธ” ์•ˆ ๋“ค์–ด์žˆ๋˜ ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋“ค์„ ์ œ๊ฑฐํ•˜๋Š” ๋ช…๋ น์–ด
    -> ํ…Œ์ด๋ธ”์„ Dropํ–ˆ๋‹ค๊ฐ€ Createํ•œ๋‹ค.
    -> ๋ชจ๋“  ํ–‰์„ ์‚ญ์ œํ•˜๋Š” ๊ฐ€์žฅ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•
  • Delete : ๋ฐ์ดํ„ฐ ๊ณจ๋ผ์„œ ์‚ญ์ œ
    -> delete๋Š” truncate์ฒ˜๋Ÿผ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‚จ๊ธฐ๊ณ  ์•ˆ์˜ ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œ
    -> delete๋Š” ๋ถ€๋ถ„์‚ญ์ œ ๊ฐ€๋Šฅ
    -> ๋‚ด๋ถ€๋ฐฉ์‹์ด ๋‹ค๋ฆ„!! ํ•œ์ค„ ํ•œ์ค„ ์‚ญ์ œ

๐Ÿ“Œ 3. Commit & Rollback

๐Ÿ“ commit

  • ๋ชจ๋“  ์ž‘์—…์„ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒ ๋‹ค๊ณ  ํ™•์ •ํ•˜๋Š” ๋ช…๋ น์–ด
  • ํŠธ๋žœ์ ์…˜์˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ, ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ๋ชจ๋‘ ์˜๊ตฌ ์ €์žฅ
  • Commit ์ˆ˜ํ–‰ํ•˜๋ฉด, ํ•˜๋‚˜์˜ ํŠธ๋žœ์ ์…˜ ๊ณผ์ •์„ ์ข…๋ฃŒ
  • Transaction(Insert, Update, ...) ์ž‘์—… ๋‚ด์šฉ์„ ์‹ค์ œ DB์— ์ €์žฅ
  • ์ด์ „ ๋ฐ์ดํ„ฐ๊ฐ€ ์™„์ „ํžˆ ์ ์šฉ
  • ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝํ•œ ๋ฐ์ดํ„ฐ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Rollback

  • ์ž‘์—… ์ค‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ํŠธ๋žœ์žญ์…˜์˜ ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ทจ์†Œํ•˜๊ณ ,
    ํŠธ๋žœ์žญ์…˜ ๊ณผ์ •์„ ์ข…๋ฃŒ์‹œํ‚จ๋‹ค.
  • ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ธํ•œ ํ•˜๋‚˜์˜ ๋ฌถ์Œ ์ฒ˜๋ฆฌ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ด์ „์˜ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฐ๋‹ค.
  • Transaction(Insert, Update, Delete) ์ž‘์—… ๋‚ด์šฉ์„ ์ทจ์†Œ
  • ์ด์ „ commit์„ ํ•œ ๊ณณ๊นŒ์ง€๋งŒ ๋ณต๊ตฌ
  • ํŠธ๋žœ์žญ์…˜ ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ชจ๋“  ์ž‘์—…์„ ์ทจ์†Œํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
    ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—… ๋‹จ์œ„๋กœ ๊ตฌ์„ฑํ•ด ๋†“์•„์•ผํ•œ๋‹ค.
  • ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—… ๋‹จ์œ„๋ฅผ ๋ชจ๋‘ ์ทจ์†Œํ•ด๋ฒ„๋ฆฌ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๐Ÿ“์ž๋™ commit ๋˜๋Š” ๊ฒฝ์šฐ

  • create, alter, drop, truncate -> DDL๋ฌธ
  • grant, revoke ๊ถŒํ•œ -> DCL๋ฌธ
  • insert, update, delete ์ž‘์—… ํ›„, commitํ•˜์ง€ ์•Š๊ณ , ์˜ค๋ผํด์„ ์ •์ƒ ์ข…๋ฃŒ์‹œ์— commit๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์ง€์•Š์•„๋„ ์ •์ƒ commit ํ›„ ์˜ค๋ผํด ์ข…๋ฃŒ
						COMMIT;
						SELECT * FROM SAMPLE s ;
						DELETE sample;
						ROLLBACK ;

0๊ฐœ์˜ ๋Œ“๊ธ€