πŸ”­SQL WHERE 쑰건 λΉŒλ”

쑰건을 ν•œ 쀄씩 적으면 WHERE μ ˆμ„ λ§Œλ“€κ³ , κ°’μ˜ λ”°μ˜΄ν‘œλ₯Ό κ·œκ²©λŒ€λ‘œ μ΄μŠ€μΌ€μ΄ν”„ν•©λ‹ˆλ‹€.

μ“Έ 수 μžˆλŠ” μ—°μ‚°μž: = Β· != Β· <> Β· > Β· >= Β· < Β· <= Β· LIKE Β· NOT LIKE Β· IN Β· NOT IN Β· BETWEEN Β· IS NULL Β· IS NOT NULL. 컬럼 이름은 μ˜λ¬ΈΒ·μˆ«μžΒ·λ°‘μ€„λ‘œ μ‹œμž‘ν•˜λŠ” ν˜•νƒœλ§Œ ν†΅κ³Όμ‹œν‚€κ³ , 점으둜 이은 ν…Œμ΄λΈ” 이름은 μ„Έ λ‹¨κ³„κΉŒμ§€ λ°›μŠ΅λ‹ˆλ‹€. κ·Έ λ°–μ˜ κΈ€μžκ°€ μ„žμ΄λ©΄ μƒμ„±ν•˜μ§€ μ•Šκ³  λͺ‡ 번째 쀄인지 μ•Œλ € μ€λ‹ˆλ‹€.

κ΄€λ ¨λœ 도ꡬ

도ꡬ μ„€λͺ…

μ»¬λŸΌΒ·μ—°μ‚°μžΒ·κ°’μ„ ν•œ 쀄에 ν•˜λ‚˜μ”© 적으면 WHERE μ ˆμ„ λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€. 쑰건을 AND 둜 묢을지 OR 둜 묢을지 κ³ λ₯΄κ³ , λ°μ΄ν„°λ² μ΄μŠ€μ— λ§žλŠ” μ‹λ³„μž 인용 방식을 골라 κ·ΈλŒ€λ‘œ λΆ™μ—¬ μ“Έ 수 μžˆλŠ” ν˜•νƒœλ‘œ λ°›μŠ΅λ‹ˆλ‹€. 값을 직접 넣은 절과 μžλ¦¬ν‘œμ‹œμžλ₯Ό μ“΄ 절 두 κ°€μ§€λ‘œ λ‚Ό 수 μžˆμ–΄, μ‹€μ œ μ½”λ“œμ— λ“€μ–΄κ°ˆ μͺ½μ€ 바인딩 ν˜•νƒœλ₯Ό κ³ λ₯΄λ©΄ λ©λ‹ˆλ‹€.

κ°’ μ•ˆμ˜ μž‘μ€λ”°μ˜΄ν‘œλŠ” ν‘œμ€€ SQL λ°©μ‹λŒ€λ‘œ 두 번 겹쳐 μ μŠ΅λ‹ˆλ‹€. λ°±μŠ¬λž˜μ‹œ μ΄μŠ€μΌ€μ΄ν”„λŠ” λ°μ΄ν„°λ² μ΄μŠ€λ§ˆλ‹€ λ™μž‘μ΄ 달라 μ“°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 컬럼 이름은 μ˜λ¬Έμ΄λ‚˜ λ°‘μ€„λ‘œ μ‹œμž‘ν•˜κ³  μ˜λ¬ΈΒ·μˆ«μžΒ·λ°‘μ€„λ§Œ μ“΄ ν˜•νƒœλ§Œ ν†΅κ³Όμ‹œν‚€κ³ , κ·Έ λ°–μ˜ κΈ€μžκ°€ μ„žμ΄λ©΄ μ ˆμ„ λ§Œλ“€μ§€ μ•Šκ³  λͺ‡ 번째 쀄이 κ±Έλ ΈλŠ”μ§€ μ•Œλ € μ€λ‹ˆλ‹€. NULL 을 λ“±ν˜Έλ‘œ λΉ„κ΅ν•œ 쀄은 IS NULL 둜 고쳐 적고 κ·Έ 사싀을 λ”°λ‘œ ν‘œμ‹œν•©λ‹ˆλ‹€.

이 λ„κ΅¬λŠ” WHERE 절만 λ§Œλ“­λ‹ˆλ‹€. ν…Œμ΄λΈ”μ„ λ§Œλ“œλŠ” λ¬Έμž₯μ΄λ‚˜ IN λͺ©λ‘λ§Œ λ”°λ‘œ λ½‘λŠ” 일, μ •λ ¬ μ ˆμ„ μ“°λŠ” 일은 닀루지 μ•ŠμŠ΅λ‹ˆλ‹€. ν•˜μœ„ μ§ˆμ˜μ™€ κ΄„ν˜Έλ‘œ 묢은 쀑첩 쑰건, ν•¨μˆ˜ ν˜ΈμΆœλ„ μ§€μ›ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ 그런 쑰건은 μ†μœΌλ‘œ 이어 λΆ™μ—¬μ•Ό ν•©λ‹ˆλ‹€.

자주 λ¬»λŠ” 질문

NULL 을 λ“±ν˜Έλ‘œ λΉ„κ΅ν•˜λ©΄ μ™œ μ•ˆ λ˜λ‚˜μš”?

SQL μ—μ„œ NULL 은 값이 μ—†λ‹€λŠ” ν‘œμ‹œλΌμ„œ λ“±ν˜Έ λΉ„κ΅μ˜ κ²°κ³Όκ°€ 참도 거짓도 μ•„λ‹Œ λ―Έμ§€κ°€ λ©λ‹ˆλ‹€. 쑰건이 참이 λ˜μ§€ μ•ŠμœΌλ―€λ‘œ 행이 ν•˜λ‚˜λ„ λ‚˜μ˜€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ λ“±ν˜Έ λŒ€μ‹  IS NULL 을 써야 ν•˜κ³ , 이 λ„κ΅¬λŠ” 그런 쀄을 μžλ™μœΌλ‘œ 고쳐 μ μŠ΅λ‹ˆλ‹€.

μ™œ μžλ¦¬ν‘œμ‹œμž ν˜•νƒœλ₯Ό ν•¨κ»˜ μ£Όλ‚˜μš”?

값을 λ¬Έμžμ—΄λ‘œ 이어 λΆ™μ΄λŠ” 방식은 λ”°μ˜΄ν‘œ 처리λ₯Ό ν•œ ꡰ데만 놓쳐도 μ£Όμž…μ— λš«λ¦½λ‹ˆλ‹€. μžλ¦¬ν‘œμ‹œμžλ₯Ό μ“°λ©΄ 값이 쿼리 λ¬Έμž₯κ³Ό μ„žμ΄μ§€ μ•ŠμœΌλ―€λ‘œ, μ‹€μ œ μ½”λ“œμ—λŠ” 바인딩 ν˜•νƒœλ₯Ό μ“°λŠ” μͺ½μ΄ μ•ˆμ „ν•©λ‹ˆλ‹€.

이 도ꡬ가 ν•˜μ§€ μ•ŠλŠ” 것은 λ¬΄μ—‡μΈκ°€μš”?

ν…Œμ΄λΈ” 생성 λ¬Έμž₯, IN λͺ©λ‘λ§Œ 뽑기, μ •λ ¬ 절 μž‘μ„±μ€ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν•˜μœ„ μ§ˆμ˜μ™€ κ΄„ν˜Έ 쀑첩, ν•¨μˆ˜ ν˜ΈμΆœλ„ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.