πŸ“š 2024 04 25 SQL [κ°œλ°œμ‹œμž‘]

김필립·2024λ…„ 4μ›” 25일

SQL

λͺ©λ‘ 보기
3/10

πŸ‘ΆπŸ“—πŸ“˜πŸ“™πŸ“šπŸ“–πŸ“ƒπŸ“‚πŸ€”πŸŽ·βœπŸΌπŸ”’πŸ”“πŸ”πŸ”πŸ’ΎπŸ”‘πŸ“ƒπŸ“œπŸ“„πŸ“‘πŸ“°πŸ“‚πŸ“πŸΌπŸ”’


SQL

πŸ“ SQL의 기초

πŸ“š 1. SQLν•™μŠ΅μ— μ‚¬μš©ν•  λ§ˆλ‹Ήμ„œμ  κΈ°λ³Έ

πŸ“š1-1λ§ˆλ‹Ήμ„œμ  μš΄μ˜μ‹œμŠ€ν…œ ν™˜κ²½

πŸ“š1-2 λ§ˆλ‹Ήμ„œμ μ˜ 데이터 ꡬ성

πŸ“š1-3 μ‚¬μš©μž 별 μš”κ΅¬μ •λ³΄

  • 각각 μ‚¬μš©μž μœ ν˜•λ³„λ‘œ μ›ν•˜λŠ” μš”κ΅¬μ‘°κ±΄μ΄ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ—
    • μ‚¬μš©μžκ°€ 무엇을 μ›ν•˜λŠ”μ§€ νŒŒμ•… 및 κ΅¬ν˜„ μ§„ν–‰

πŸ“– SQL μ†Œκ°œ

  • SELECT [νŠΈλžœμ§€μ…˜,μ…€λ ‰μ…˜μ΄ ν•©μ³μ‘Œλ‹€ 생각]
  • FROM [νŠœν”ŒμΆ”μΆœ]
  • WHERE [쑰건식]

πŸ“š SQLκ³Ό 일반 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ 차이점

SQL κΈ°λŠ₯에 λ”°λ₯Έ λΆ„λ₯˜πŸ“Œ

πŸ“š SQL의 ꡬ쑰 μ„€λͺ…ν‘œ

  • ν…Œμ΄λΈ”μ˜ 이름과 속성을 μΆ”κ°€,μ‚­μ œμ˜ 의미둜 변경을 ν•˜κ³ μ‹ΆμœΌλ©΄
    + λͺ¨λ‘ ALTER(λ³€κ²½)을 μ‚¬μš©ν•œλ‹€.
    CREATE = 생성,DROP = μ‚­μ œλŠ” ν…Œμ΄λΈ”μ‘΄μž¬μ— 영ν–₯을 쀌

πŸ“ƒ κΉ€μ—°μ•„ 고객의 μ „ν™”λ²ˆν˜Έλ₯Ό μ°ΎμœΌμ‹œμ˜€

  • SELECT : Οƒ + Ο€
    • FROM : ν…Œμ΄λΈ”
    • WHERE : 쑰건
  • μ½λŠ” μˆœμ„œ FROM[ν…Œμ΄λΈ”] β†’ WHERE [쑰건] β†’ SELECT[λ°˜ν™˜]

πŸ“šSELECT문의 κ΅¬μ„±μš”μ†Œ

πŸ“– SELECT문의 κΈ°λ³Έ λ¬Έλ²•μš”μ†Œλ“€

  • πŸ“š [μ‹λ³„μž] DISTINCT [μ‹λ³„ν•˜λ‹€(μ€‘λ³΅ν—ˆμš© X)]
    + [GROUP BY+HAVING] γ…£ [ORDER BY] 이 μ„Έκ°œλŠ” μ¨λ„λ˜κ³  μ•ˆμ¨λ„λœλ‹€.
    πŸ“ƒGROUP BY 속성이름 [κ·Έλ£Ήν•‘ ν•˜λ‹€.]
    πŸ“ƒHAVING 검색쑰건 [GROUP BYλ₯Ό μœ„ν•œ 쑰건식]
    ORDER BY 속성이름 [ASC[μ˜€λ¦„μ°¨μˆœ] γ…£ DESC[λ‚΄λ¦Όμ°¨μˆœ]]

πŸ“šSELECT문의 κΈ°λ³Έ 문법 [심화]

πŸ“– ν…Œμ΄λΈ”μ—κ²Œ 별λͺ…을 μ§€μ–΄μ£ΌλŠ” 방법

  • μ™ λ§Œν•˜λ©΄ 속성λͺ…은 β†’ [μ˜μ–΄]
    • ν…Œμ΄λΈ”μ˜ 이름은 μ‚¬μš©μžμ—κ²Œ 보여지지 μ•ŠμœΌλ‹ˆ [book AS b]
      β†’ 쿼리문이 λλ‚˜κΈ° μ „κΉŒμ§€ book은 평생 B둜 지정됨
    • 가격이 λ§Œμ›μ΄λƒ~ 같은 ν…Œμ΄λΈ”μ˜ 쑰건을 κ±Έλ•Œ WHEREλ₯Ό μ‚¬μš©ν•œλ‹€.

πŸ“šSELECT λ¬Έ 예제

3-1πŸ“–ν…Œμ΄λΈ”μ€ μˆœμ„œκ°€ 쑴재 X λ¨Όμ €μ“°λŠ”λ†ˆμ΄ μž„μž


3-2πŸ“–SELECT문은 μ΄λ ‡κ²Œ ALL"*"μ‚¬μš©λ„ κ°€λŠ₯함


3-3 πŸ“–SELECTλ¬Έ λ„μ„œν…Œμ΄λΈ”μ— μžˆλŠ” λͺ¨λ“  μΆœνŒμ‚¬λ₯Ό 좜λ ₯


πŸ“š 쑰건검색_WHERE

πŸ€” [비ꡐ]<> λŠ” λ­”κ°€μš”? != λ‹€λ₯΄λ‹€ λΌλŠ” λœ»μž…λ‹ˆλ‹€.

  • πŸ€” [λ²”μœ„] BETWEENμ€μš”? 10000 AND 200000 [쑰건이 λ‘κ°œ &&을 μ“Έλ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. 이상 λ˜λŠ” μ΄ν•˜λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€. [ >= <=]
  • πŸ€” [μ§‘ν•©] "IN,NOT INμ€μš”?" [λ§Œμ›,μ΄λ§Œμ›,μ‚Όλ§Œμ› μ€‘μ—μ„œ~]λΌλŠ” λœ»μž…λ‹ˆλ‹€.
  • πŸ€” [νŒ¨ν„΄] "LIKEλŠ”μš”?" [String name.equal("μ•ˆλ…•") 같은 κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” μΉœκ΅¬μž…λ‹ˆλ‹€/]
  • πŸ€”[NULL] "IS NULL,IS NOT NULL" 은 λ­”κ°€μš”? [NULL을 λ°˜ν™˜ν•˜κ³ μ‹Άμ§€ μ•Šμ„λ•Œ μ”λ‹ˆλ‹€]
  • πŸ€” [볡합쑰건] "AND,OR,NOTμ€μš”?" [쑰건 λ˜λŠ” 볡합쑰건을 μ‚¬μš©ν• λ•Œ μ΄μš©ν•©λ‹ˆλ‹€.]

πŸ“– 쑰건검색-λ²”μœ„

πŸ“– 쑰건검색-μ§‘ν•©

  • πŸ€” " NOT IN은 λ­”κ°€μš”?"
    • μ΄μ•ˆμ— ν¬ν•¨λ˜μ–΄μžˆμ§€ μ•Šλ‹€λ©΄.을 μ „μ œλ‘œ μ“°λŠ” λͺ…λ Ήμ–΄ μž…λ‹ˆλ‹€.

πŸ“–μ‘°κ±΄κ²€μƒ‰ - νŒ¨ν„΄

  • πŸ€” " %(이름)% 은 λ„λŒ€μ²΄ λ­”κ°€μš”?"
    • μ•ž λ’€λ‘œ 0κΈ€μž 이상 μΌμΉ˜ν•˜λ©΄ λ‹€ λΆˆλŸ¬μ˜€λŠ” κ²λ‹ˆλ‹€. [이름]만 μΌμΉ˜ν•œλ‹€λ©΄μš”.

πŸ“– 쑰건검색 - νŒ¨ν„΄μ˜ μ •μ˜

  • πŸ€”" _ μ–Έλ”λ°”λŠ” μ™œ λΆ™νžˆλŠ”κ±΄κ°€μš”?"
    • λ‚΄ μ•žμ— _<-언더 λ°” λ‹Ή ν•œκΈ€μžλ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
      LIKE '_이버%; = μ•ˆλ…•ν•˜μ„Έμš” λ„€(이버) μž…λ‹ˆλ‹€.
      πŸ“– λ„μΆœκ°’ : 넀이버 μž…λ‹ˆλ‹€.
  • πŸ€”" []이 λ“€μ–΄κ°€λŠ” μΉœκ΅¬λŠ” μ™œμ“°λŠ”κ±΄κ°€μš”? "
    • 일치 λ˜λŠ” λΆˆμΌμΉ˜ν•˜λŠ” λ¬Έμžμ—΄μ„ λ°›μŠ΅λ‹ˆλ‹€.

πŸ“š 쑰건검색[WHERE]-볡합쑰건

πŸ“š 쑰건검색 - κ²€μƒ‰κ²°κ³Όμ˜ μ •λ ¬ [μ΄λ¦„μˆœ]

  • πŸ€” " FORM = 무엇을? ORDER BY μ •λ ¬ν•˜κ² λ‹€. SELECT λͺ¨λ“ κ±Έ."

πŸ“š μ •λ ¬ - λ„μ„œλ₯Ό κ°€κ²©μˆœμœΌλ‘œ κ²€μƒ‰ν•˜κ³  가격이 κ°™μœΌλ©΄ μ΄λ¦„μˆœμœΌλ‘œ 검색

πŸ“š μ •λ ¬ - κ°€κ²©μ˜ λ‚΄λ¦Όμ°¨μˆœ 가격이 κ°™λ‹€λ©΄ μΆœνŒμ‚¬μ˜ μ˜€λ¦„μ°¨μˆœ

πŸ“š μ§κ³„ν•¨μˆ˜ - 고객이 μ£Όλ¬Έν•œ λ„μ„œμ˜ 총 νŒλ§€μ•‘ κ΅¬ν•˜κΈ°

  • 0rdersμ—λŠ” μ–΄λ”œλ΄λ„ 이름이 μ—†λ‹€.
  • 기쑴에 μ—†λŠ” 이름에 λŒ€μ‹ λ‚˜μ˜€κ²Œ ν•  [별λͺ…]μ§€μ •κ°€λŠ₯

2번 κΉ€μ—°μ•„ 고객이 μ£Όλ¬Έν•œ λ„μ„œμ˜ 총 νŒλ§€μ•‘ κ΅¬ν•˜κΈ°

고객이 μ£Όλ¬Έν•œ λ„μ„œμ˜ 총 νŒλ§€μ•‘, 평균값, μ΅œμ €κ°€,μ΅œκ³ κ°€ κ΅¬ν•˜κΈ°

  • πŸ“– 기본적인 μ§κ³„ν•¨μˆ˜λŠ” κΈ°μ–΅ν•΄μ•Όν•œλ‹€πŸ“Œ
    • λŒ€λ¬Έμž : μ˜ˆμ•½μ–΄= SQLκΊΌ
    • μ†Œλ¬Έμž :λ‚΄κ°€λ§Œλ“ κ±°

πŸ“š μ§‘κ³„ν•¨μˆ˜ [row=ν–‰ column = μ—΄]


profile
기얡에 λ‚¨λŠ” μ‚¬λžŒμž…λ‹ˆλ‹€

0개의 λŒ“κΈ€