πŸ“š 였라클의 λ‚΄μž₯ν•¨μˆ˜

yoondguΒ·2022λ…„ 5μ›” 1일
0

Oracle

λͺ©λ‘ 보기
4/9

κ°•μ˜ μˆ˜κ°• 쀑 μž‘μ„±ν•œ λ…ΈνŠΈμ—μ„œ λ‚΄μš©μ„ 발췌, μ΄μ‘μˆ˜ κ°•μ‚¬λ‹˜ κ°•μ˜ 의 λ…ΈνŠΈμ™€ 이미지λ₯Ό μ°Έμ‘°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

였라클의 λ‚΄μž₯ν•¨μˆ˜


  • SQL μž‘μ„±μ— μ‚¬μš©ν•  수 μžˆλŠ” μœ μš©ν•œ κΈ°λŠ₯이 μ œκ³΅λ˜λŠ” ν•¨μˆ˜
  • DBMS μ œν’ˆλ§ˆλ‹€ μ‘°κΈˆμ”© 차이가 μžˆλ‹€.
    β‡’ λ‚΄μž₯ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œ SQL문은 λ‹€λ₯Έ DBMSμ—μ„œ λ°”λ‘œ λ˜‘κ°™μ΄ μ‚¬μš©ν•  수 μ—†λ‹€.

πŸ“Œ DUAL ν…Œμ΄λΈ”

  • 였라클 μžμ²΄μ—μ„œ μ œκ³΅λ˜λŠ” ν…Œμ΄λΈ”
  • 였직 ν•œ ν–‰, ν•œ μ»¬λŸΌμ„ λ‹΄κ³  μžˆλŠ” dummy ν…Œμ΄λΈ”
  • κ°„λ‹¨ν•˜κ²Œ ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄μ„œ 계산 결과값을 확인할 λ•Œ νŠΉμ • ν…Œμ΄λΈ”μ„ 생성할 ν•„μš” 없이 μž„μ‹œλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€.

였라클의 λ‚΄μž₯ν•¨μˆ˜μ˜ μ’…λ₯˜


였라클의 ν•¨μˆ˜λ“€μ€ λͺ¨λ‘ 값을 λ°˜ν™˜ν•œλ‹€.

πŸ’‘ WHERE절 μ‘°κ±΄μ‹μ˜ μ’Œν•­μ—μ„œ ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜λŠ” λ“± λ°μ΄ν„°μ˜ 가곡을 ν•˜λŠ” 것은 지양해야 ν•œλ‹€. 쿼리의 싀행속도가 많이 떨어진닀.
κ·Έλ³΄λ‹€λŠ” κ°’ κ·ΈλŒ€λ‘œ 필터링 ν•  수 μžˆλŠ” 쑰건식을 μ“°κ³ , 색인을 ν™œμš©ν•œλ‹€.

πŸ“Œ 단일행 ν•¨μˆ˜

  • 쑰회된 ν–‰λ§ˆλ‹€ ν•˜λ‚˜μ˜ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•œλ‹€.
  • 단일행 ν•¨μˆ˜λŠ” μ€‘μ²©ν•΄μ„œ μ‚¬μš©ν•  수 μžˆλ‹€. (ν•¨μˆ˜ μ•ˆμ˜ ν•¨μˆ˜ ... 쀑첩 νšŸμˆ˜μ— μ œν•œμ΄ μ—†λ‹€.)
  • ν•¨μˆ˜μ˜ μ’…λ₯˜λ‘œ λ¬Έμžν•¨μˆ˜, μˆ«μžν•¨μˆ˜, λ‚ μ§œν•¨μˆ˜, λ³€ν™˜ν•¨μˆ˜, κΈ°νƒ€ν•¨μˆ˜κ°€ μžˆλ‹€.

πŸ“Œ 닀쀑행 ν•¨μˆ˜ (κ·Έλ£Ή ν•¨μˆ˜)

  • 쑰회된 행을 그룹으둜 λ¬Άκ³ , ν–‰ κ·Έλ£Ή λ‹Ή ν•˜λ‚˜μ˜ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•œλ‹€.
  • group by μ ˆμ„ μ‚¬μš©ν•΄μ„œ 쑰회된 행을 그룹으둜 λ¬Άκ³ , 닀쀑행 ν•¨μˆ˜λ‘œ 각 κ·Έλ£Ή λ‹Ή ν•˜λ‚˜μ˜ κ²°κ³Ό(합계, 평균, λΆ„μ‚°, ν‘œμ€€νŽΈμ°¨, μ΅œκ³ κ°’, μ΅œμ €κ°’ λ“±)을 계산해낸닀.
  • 닀쀑행 ν•¨μˆ˜μ˜ 쀑첩은 selectμ ˆμ—μ„œλ§Œ ν—ˆμš©λ˜κ³ , ν•œλ²ˆλ§ŒμœΌλ‘œ 쀑첩 νšŸμˆ˜κ°€ μ œν•œλœλ‹€.
  • μ§‘κ³„ν•¨μˆ˜(agrregate function)라고도 ν•œλ‹€.

πŸ“Œ SELECT κ΅¬λ¬Έμ—μ„œ κ·Έλ£Ήν•¨μˆ˜μ˜ μ‹€ν–‰

SELECT 속성λͺ… λ˜λŠ” ν‘œν˜„μ‹, κ·Έλ£Ήν•¨μˆ˜() -- κ·Έλ£Ήν•¨μˆ˜μ™€ GROUP BY에 μ°Έμ—¬ν•œ 속성λͺ… λ˜λŠ” ν‘œν˜„μ‹λ§Œ 올 수 μžˆλ‹€.
FROM ν…Œμ΄λΈ”λͺ…
WHERE 쑰건식 -- (1) WHEREμ ˆμ—μ„œ κ·Έλ£Ήν•‘ λŒ€μƒμ΄ μ•„λ‹Œ 행을 μ œμ™Έμ‹œν‚¨λ‹€.
             -- WHEREμ ˆμ—λŠ” κ·Έλ£Ήν•¨μˆ˜κ°€ 올 수 μ—†λ‹€.
GROUP BY 속성λͺ… λ˜λŠ” ν‘œν˜„μ‹ -- (2) GROUP BY μ ˆμ—μ„œ **κ·Έλ£Ήν•‘ 방식을 지정**ν•œλ‹€.
                           -- 속성λͺ… λ˜λŠ” ν‘œν˜„μ‹μ˜ 값이 같은 행끼리 같은 그룹으둜 λ¬ΆλŠ”λ‹€.
                           -- GROUP BY 절이 μ—†μœΌλ©΄ 쑰회된 ν–‰ 전체가 ν•˜λ‚˜μ˜ 행그룹이닀.
HAVING 쑰건식 -- (3) HAVING μ ˆμ—μ„œλŠ” 쑰건식에 κ·Έλ£Ήν•¨μˆ˜λ₯Ό μ‚¬μš©ν•  수 있기 λ•Œλ¬Έμ—
							-- κ·Έλ£Ήν•¨μˆ˜ 적용결과λ₯Ό μ‚¬μš©ν•΄μ„œ 쑰건식을 μ •μ˜ν•  수 μžˆλ‹€.
							-- GROUP BY에 μ˜ν•œ SELECT 싀행결과에 λŒ€ν•œ 쑰건식이닀.
							-- HAVING 쑰건식을 λ§Œμ‘±ν•˜λŠ” ν–‰κ·Έλ£Ήλ§Œ μ‘°νšŒν•˜κ²Œ ν•œλ‹€.

SELECTκ΅¬λ¬Έμ—μ„œ κ·Έλ£Ήν•¨μˆ˜μ˜ 싀행은

WHERE(κ·Έλ£Ήν•‘λŒ€μƒ 필터링) - GROUP BY(κ·Έλ£Ήν•‘) - HAVING(κ·Έλ£Ήν•‘ κ²°κ³Ό 필터링) 순으둜 이루어진닀.

0개의 λŒ“κΈ€