πŸ—‚οΈ 2024.07.23 TIL

DonghyunΒ·2024λ…„ 7μ›” 23일
0

TIL (Today I Learned)

λͺ©λ‘ 보기
22/53
post-thumbnail

SQL

μ˜€λŠ˜μ€ ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 문제λ₯Ό ν’€λ©΄μ„œ 처음으둜 SELF JOIN 을 ν•΄λ΄€λ‹€.

SELF JOIN 의 κ°œλ…:

SELF JOIN μ΄λž€ 말 κ·ΈλŒ€λ‘œ 동일 ν…Œμ΄λΈ” μ‚¬μ΄μ˜ 쑰인을 λ§ν•œλ‹€. FROM μ ˆμ—μ„œ 동일 ν…Œμ΄λΈ”μ΄ 두 번 이상 λ‚˜νƒ€λ‚˜λŠ”λ°, 이 λ•Œμ˜ μ£Όμ˜μ‚¬ν•­μ€ 동일 ν…Œμ΄λΈ” μ‚¬μ΄μ˜ 쑰인을 μˆ˜ν–‰ν•˜λ©΄ ν…Œμ΄λΈ”κ³Ό 칼럼 이름이 λͺ¨λ‘ λ™μΌν•˜κΈ° λ•Œλ¬Έμ— 식별을 μœ„ν•΄ λ°˜λ“œμ‹œ 별칭을 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€λŠ” 것이닀.

μ‚¬μš© μ˜ˆμ‹œ:

SELECT *
FROM ν…Œμ΄λΈ” a
	INNER JOIN ν…Œμ΄λΈ” b
	ON a.PK = b.PK

SELF JOIN μ‚¬μš©ν•˜λŠ” 이유:

κ·Έλ ‡λ‹€λ©΄ SELF JOIN 을 μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” 뭘까? λ°μ΄ν„°λ² μ΄μŠ€ μ„€κ³„μ˜ κ΄€μ μ—μ„œ 보면 잘λͺ» μ„€κ³„ν•˜λ©΄ λΆˆν•„μš”ν•œ 데이터 μ€‘λ³΅μœΌλ‘œ λ°œμƒν•˜λŠ” 곡간 λ‚­λΉ„ 및 λΆ€μž‘μš©μ„ μ΄ˆλž˜ν•˜ 수 있기 λ•Œλ¬Έμ— ν…Œμ΄λΈ” 내에 λ‹€μˆ˜μ˜ 관련성이 μ‘΄μž¬ν•˜λŠ” 것은 λ°”λžŒμ§ν•˜μ§€ μ•Šλ‹€κ³  λ³Ό μˆ˜λ„ μžˆλ‹€. κ·Έλž˜μ„œ μ •κ·œν™”λ₯Ό 톡해 데이터 쀑볡을 μ΅œμ†Œν™”ν•˜κ³  데이터 무결성을 μœ μ§€ν•˜κ³€ ν•œλ‹€. ν•˜μ§€λ§Œ λͺ¨λ“  κ²½μš°μ— μžˆμ–΄μ„œ 무쑰건 μ •κ·œν™”λ₯Ό μ μš©ν•˜λŠ” 것이 μ΅œμ„ μ˜ 방법은 μ•„λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€ μ„€κ³„μ—μ„œλŠ” μ„±λŠ₯κ³Ό μœ μ—°μ„±λ„ μ€‘μš”ν•œ κ³ λ € 사항이기 λ•Œλ¬Έμ—, μ •κ·œν™”μ™€ μ„±λŠ₯ κ°„μ˜ κ· ν˜•μ„ μœ μ§€ν•˜λŠ” 것이 ν•„μš”ν•˜λ‹€.

μ΄λŸ¬ν•œ κ΄€μ μ—μ„œ SELF JOIN 은 λ‹€μŒμ˜ μƒν™©λ“€μ—μ„œ μœ μš©ν•˜λ‹€:

  • 계측적 데이터 ν‘œν˜„
    • μ…€ν”„ 쑰인은 계측적 데이터λ₯Ό ν‘œν˜„ν•˜λŠ” 데 μœ μš©ν•˜λ‹€. 예λ₯Ό λ“€μ–΄, 직원과 κ·Έλ“€μ˜ κ΄€λ¦¬μžλ₯Ό μ €μž₯ν•˜λŠ” ν…Œμ΄λΈ”μ—μ„œ, ν•œ 직원이 λ‹€λ₯Έ 직원을 관리할 λ•Œ μ…€ν”„ 쑰인을 μ‚¬μš©ν•˜μ—¬ 직원과 κ΄€λ¦¬μž 관계λ₯Ό ν‘œν˜„ν•  수 μžˆλ‹€.
  • 비ꡐ μ—°μ‚°
    • μ…€ν”„ 쑰인은 동일 ν…Œμ΄λΈ”μ˜ 행듀을 비ꡐ할 λ•Œ μœ μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • 쑰건을 λ§Œμ‘±ν•˜λŠ” ν–‰λ“€μ˜ 값을 λΉ„κ΅ν•˜μ—¬ 찾고자 ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.
  • λ°μ΄ν„°μ˜ νŠΉμ • 관계 μ°ΎκΈ°
    • νŠΉμ • 관계λ₯Ό μ°Ύκ±°λ‚˜ νŒ¨ν„΄μ„ ν™•μΈν•˜λŠ” 데 μ…€ν”„ 쑰인을 μ‚¬μš©ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄, μ—°μ†λœ λ‚ μ§œ λ°μ΄ν„°μ—μ„œ 결츑값을 μ°ΎλŠ” 경우 λ“±
  • 데이터 무결성 검사
    • ν…Œμ΄λΈ” λ‚΄ λ°μ΄ν„°μ˜ 무결성을 κ²€μ‚¬ν•˜κΈ° μœ„ν•΄ μ…€ν”„ 쑰인을 μ‚¬μš©ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄, μ€‘λ³΅λœ λ ˆμ½”λ“œλ₯Ό μ°ΎλŠ” 경우 μ…€ν”„ 쑰인을 톡해 쀑볡 데이터λ₯Ό 확인 κ°€λŠ₯.

셀프쑰인 κ΄€λ ¨ ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 문제: https://velog.io/@ehdtkd98/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€-μš°μœ μ™€-μš”κ±°νŠΈκ°€-λ‹΄κΈ΄-μž₯λ°”κ΅¬λ‹ˆ-SQL

profile
데이터뢄석 곡뢀 일기~!

0개의 λŒ“κΈ€