[DB]TIL(Today I Learned)_230808

Aspyn ChoiΒ·2023λ…„ 8μ›” 8일
0

TIL

λͺ©λ‘ 보기
19/37

☝🏻였늘 배운 것

1. DML(Data Manipulation Language)

- DMLμ΄λž€?

: 데이터 μ‘°μž‘ μ–Έμ–΄
: ν…Œμ΄λΈ”μ— 값을 μ‚½μž…(INSERT)ν•˜κ±°λ‚˜, μˆ˜μ •(UPDATE)ν•˜κ±°λ‚˜, μ‚­μ œ(DELETE)ν•˜λŠ” ꡬ문

- INSERT

: ν…Œμ΄λΈ”μ— μƒˆλ‘œμš΄ 행을 μΆ”κ°€ν•˜λŠ” ꡬ문
: μ‚¬μš©λ²• 1

  • 1) INSERT INTO ν…Œμ΄λΈ”λͺ… VALUES(데이터 λ‚˜μ—΄,,, ...)
  • ν…Œμ΄λΈ”μ— μžˆλŠ” λͺ¨λ“  μ»¬λŸΌμ— λŒ€ν•œ 값을 INSERTν•  λ•Œ μ‚¬μš©
  • INSERT ν•˜κ³ μž ν•˜λŠ” 컬럼과 μ‘΄μž¬ν•˜λŠ” λͺ¨λ“  컬럼이 같을 경우 컬럼λͺ… μƒλž΅ κ°€λŠ₯
  • 단, 컬럼의 μˆœμ„œλ₯Ό μ§€μΌœμ„œ VALUES에 값을 κΈ°μž…ν•΄μ•Όν•¨.

: μ‚¬μš©λ²• 2

  • 2) INSERT INTO ν…Œμ΄λΈ”λͺ…(컬럼λͺ…1, 컬럼λͺ…2,,, ...) VALUES(데이터1, 데이터2,,, ...)
  • ν…Œμ΄λΈ”μ— λ‚΄κ°€ μ„ νƒν•œ μ»¬λŸΌμ— λŒ€ν•œ κ°’λ§Œ INSERT ν•  λ•Œ μ‚¬μš©
  • μ„ νƒμ•ˆλœ μ»¬λŸΌμ€ 값이 NULL이 듀어감 (DEFAULT μ‘΄μž¬ν•˜λŠ” 경우 DEFAULT κ°’μœΌλ‘œ μ‚½μž…λ¨)

: μ„œλΈŒμΏΌλ¦¬ μ‚¬μš©

- UPDATE

: λ‚΄μš©μ„ λ°”κΎΈκ±°λ‚˜ μΆ”κ°€ν•΄μ„œ μ΅œμ‹ ν™”, μƒˆλ‘­κ²Œ λ§Œλ“œλŠ” 것
: ν…Œμ΄λΈ”μ— 기둝된 컬럼의 값을 μˆ˜μ •ν•˜λŠ” ꡬ문
: μž‘μ„±λ²•
-- UPDATE ν…Œμ΄λΈ”λͺ… SET 컬럼λͺ… = λ°”κΏ€κ°’
-- [WHERE 컬럼λͺ… λΉ„κ΅μ—°μ‚°μž 비ꡐ값]

: μ„œλΈŒμΏΌλ¦¬ μ‚¬μš©

- MERGE (μ°Έκ³ λ§Œν•˜κΈ°)

: ꡬ쑰가 같은 λ‘κ°œμ˜ ν…Œμ΄λΈ”μ„ ν•˜λ‚˜λ‘œ ν•©μΉ˜λŠ” κΈ°λŠ₯ (병합)
: ν…Œμ΄λΈ”μ—μ„œ μ§€μ •ν•˜λŠ” 쑰건의 값이 μ‘΄μž¬ν•˜λ©΄ UPDATE
: 쑰건의 값이 μ—†μœΌλ©΄ INSERT됨

- DELETE

: ν…Œμ΄λΈ”μ˜ 행을 μ‚­μ œν•˜λŠ” ꡬ문
: [μž‘μ„±λ²•]
-- DELETE FROM ν…Œμ΄λΈ”λͺ… WHERE 쑰건섀정
-- λ§Œμ•½, WHERE절 쑰건을 μ„€μ •ν•˜μ§€μ•ŠμœΌλ©΄ λͺ¨λ“  행이 λ‹€ μ‚­μ œλ¨

- TRUNCATE (DML은 μ•„λ‹˜, DDLμž„)

: ν…Œμ΄λΈ”μ˜ 전체 행을 μ‚­μ œν•˜λŠ” DDL
: DELETE 보닀 μˆ˜ν–‰ 속도가 더 λΉ λ₯΄λ‹€
: ROLLBACK을 톡해 볡ꡬ할 수 μ—†μŒ.

2. TCL(TRANSACTION CONTROL LANGUAGE)

TCL μ΄λž€?

: νŠΈλžœμž­μ…˜ μ œμ–΄ μ–Έμ–΄
: μ’…λ₯˜ ->COMMIT(νŠΈλžœμž­μ…˜ μ’…λ£Œ ν›„ μ €μž₯), ROLLBACK(νŠΈλžœμž­μ…˜ μ·¨μ†Œ), SAVEPOINT(μž„μ‹œμ €μž₯)
: DML : 데이터 μ‘°μž‘ μ–Έμ–΄λ‘œ λ°μ΄ν„°μ˜ μ‚½μž…, μˆ˜μ •, μ‚­μ œ --> νŠΈλžœμž­μ…˜μ€ DMLκ³Ό κ΄€λ ¨λ˜μ–΄ 있음.

- νŠΈλžœμž­μ…˜(TRANSACTION)μ΄λž€?

: λ°μ΄ν„°λ² μ΄μŠ€μ˜ 논리적 μ—°μ‚° λ‹¨μœ„(κ°œλ…μ  μš©μ–΄)
: 데이터 λ³€κ²½ 사항을 λ¬Άμ–΄ ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜μ— λ‹΄μ•„ μ²˜λ¦¬ν•¨.(λ°”κ΅¬λ‹ˆ μ—­ν• )

: νŠΈλžœμž­μ…˜μ˜ λŒ€μƒμ΄ λ˜λŠ” 데이터 λ³€κ²½ 사항 -> INSERT, UPDATE, DELETE (DML), MERGE

COMMIT

: λ©”λͺ¨λ¦¬ 버퍼(νŠΈλžœμž­μ…˜)에 μž„μ‹œ μ €μž₯된 데이터 λ³€κ²½ 사항을 DB에 반영

ROLLBACK

: λ©”λͺ¨λ¦¬ 버퍼(νŠΈλžœμž­μ…˜)에 μž„μ‹œ μ €μž₯된 데이터 λ³€κ²½ 사항을 μ‚­μ œ

ν•˜κ³  λ§ˆμ§€λ§‰ COMMIT μƒνƒœλ‘œ λŒμ•„κ°.(DB에 λ³€κ²½ λ‚΄μš© 반영 X)

SAVEPOINT

: λ©”λͺ¨λ¦¬ 버퍼(νŠΈλžœμž­μ…˜)에 μ €μž₯ 지점을 μ •μ˜ν•˜μ—¬ ROLLBACK μˆ˜ν–‰ μ‹œ 전체 μž‘μ—…μ„ μ‚­μ œν•˜λŠ” 것이 μ•„λ‹Œ μ €μž₯ μ§€μ κΉŒμ§€λ§Œ 일뢀 ROLLBACK

- ν™•μΈμ˜ˆμ œ

3. μ—°μŠ΅λ¬Έμ œ

1. μ•„λž˜μ™€ 같이 USER TEST ν…Œμ΄λΈ”μ„ λ§Œλ“€κ³  데이터λ₯Ό μ‚½μž…ν•˜μ‹œμ˜€


2. USER_TESTν…Œμ΄λΈ”μ„ UPDATE/DELETE ꡬ문을 μ‚¬μš©ν•˜μ—¬ μ•„λž˜μ™€ 같이 μˆ˜μ •ν•˜μ‹œμ˜€


3. USER_TEST ν…Œμ΄λΈ”μ„ UPDATE ꡬ문을 μ‚¬μš©ν•˜μ—¬ μ•„λž˜μ™€ 같이 μˆ˜μ •ν•˜μ‹œμ˜€.


4. EMPLOYEE5 ν…Œμ΄λΈ”μ„ EMPLOYEE ν…Œμ΄λΈ”κ³Ό 같이 μƒμ„±ν•˜κΈ°

5.EMPLOYEE5 ν…Œμ΄λΈ”μ—μ„œ 고용일이 2000λ…„λŒ€ 이전인 μ‚¬λžŒμ˜ 월급을 100λ§Œμ›μ”© μΈμƒν•΄μ£Όμž

6. EMPLOYEE5 ν…Œμ΄λΈ”μ—μ„œ ν•œκ΅­μ— κ·Όλ¬΄ν•˜λŠ” μ§μ›μ˜ BONUSλ₯Ό 0.5둜 λ³€κ²½

0개의 λŒ“κΈ€