🦭 DISTINCT & LIMIT

λ‚˜λ‚˜'s BrainΒ·2024λ…„ 7μ›” 7일

MariaDB

λͺ©λ‘ 보기
4/15
post-thumbnail

πŸ“ DISTINCT

DISTINCTλŠ” SQLμ—μ„œ μ€‘λ³΅λœ 값을 μ œκ±°ν•˜λŠ” 데 μ‚¬μš©λ˜λ©°, νŠΉμ • μ»¬λŸΌμ΄λ‚˜ μ»¬λŸΌλ“€μ˜ μ‘°ν•©μ—μ„œ μ€‘λ³΅λœ 값을 μ œκ±°ν•˜μ—¬ κ³ μœ ν•œ κ°’λ§Œμ„ λ°˜ν™˜ν•œλ‹€.

πŸ”– 단일 μ—΄μ—μ„œ DISTINCT μ‚¬μš©

μ€‘λ³΅λœ μΉ΄ν…Œκ³ λ¦¬ μ½”λ“œλ₯Ό μ œκ±°ν•˜κ³  κ³ μœ ν•œ μΉ΄ν…Œκ³ λ¦¬ μ½”λ“œλ₯Ό κ°€μ Έμ˜΄

SELECT DISTINCT category_code
  FROM tbl_menu
 ORDER BY category_code;

κ²°κ³Ό: 쀑볡이 제거된 κ³ μœ ν•œ category_code λͺ©λ‘μ΄ λ°˜ν™˜

πŸ”– NULL 값을 ν¬ν•¨ν•œ μ—΄μ—μ„œ DISTINCT μ‚¬μš©

NULL 값을 ν¬ν•¨ν•œ μ—΄μ—μ„œ μ€‘λ³΅λœ ref_category_code 값을 μ œκ±°ν•˜κ³  κ³ μœ ν•œ 값을 κ°€μ Έμ˜΄

SELECT DISTINCT ref_category_code
  FROM tbl_category;

κ²°κ³Ό: NULL 값을 ν¬ν•¨ν•œ κ³ μœ ν•œ ref_category_code λͺ©λ‘μ΄ λ°˜ν™˜

πŸ”– 닀쀑 μ—΄μ—μ„œ DISTINCT μ‚¬μš©

μ—¬λŸ¬ μ—΄μ—μ„œ μ€‘λ³΅λœ 행을 μ œκ±°ν•˜κ³  κ³ μœ ν•œ 행을 κ°€μ Έμ˜΅λ‹ˆλ‹€.

SELECT DISTINCT category_code, orderable_status
  FROM tbl_menu;

κ²°κ³Ό: category_code와 orderable_statusκ°€ λͺ¨λ‘ λ™μΌν•œ 행이 μ€‘λ³΅μœΌλ‘œ κ°„μ£Όλ˜μ–΄ 제거된 κ³ μœ ν•œ ν–‰ λͺ©λ‘μ΄ λ°˜ν™˜

➑️ μš”μ•½

DISTINCTλŠ” μ€‘λ³΅λœ 값을 μ œκ±°ν•˜μ—¬ κ³ μœ ν•œ 값을 λ°˜ν™˜ν•˜λŠ” 데 μ‚¬μš©λœλ‹€.
단일 μ—΄, 닀쀑 μ—΄, 그리고 NULL 값을 ν¬ν•¨ν•œ μ—΄μ—μ„œλ„ ν™œμš©ν•  수 있고,
κ²°κ³Ό μ§‘ν•©μ—μ„œ 쀑볡을 μ œκ±°ν•˜μ—¬ κ³ μœ ν•œ λ ˆμ½”λ“œλ₯Ό μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆλ‹€.


πŸ“ LIMIT

LIMITλŠ” SQLμ—μ„œ SELECT문의 κ²°κ³Ό μ§‘ν•©μ—μ„œ λ°˜ν™˜ν•  ν–‰μ˜ 수λ₯Ό μ œν•œν•˜λŠ” 데 μ‚¬μš©λœλ‹€.

➑️ ν˜•μ‹ :

SELECT select_list
  FROM table_name
 LIMIT [offset,] row_count;

offset: μ‹œμž‘ν•  ν–‰μ˜ 번호 (인덱슀 체계, 0λΆ€ν„° μ‹œμž‘)
row_count: λ°˜ν™˜ν•  ν–‰μ˜ 개수

πŸ”– 전체 ν–‰ 쑰회

λͺ¨λ“  메뉴λ₯Ό 가격 λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•˜μ—¬ 쑰회

SELECT menu_code, menu_name, menu_price
  FROM tbl_menu
 ORDER BY menu_price DESC;

κ²°κ³Ό: λͺ¨λ“  행이 가격 λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬λ˜μ–΄ λ°˜ν™˜

πŸ”– 2번 ν–‰λΆ€ν„° 5번 ν–‰κΉŒμ§€ 쑰회

두 번째 ν–‰λΆ€ν„° λ„€ 개의 행을 쑰회

SELECT menu_code, menu_name, menu_price
  FROM tbl_menu
 ORDER BY menu_price DESC
 LIMIT 1, 4;

κ²°κ³Ό: 두 번째 ν–‰λΆ€ν„° λ„€ 개의 행이 λ°˜ν™˜λ©λ‹ˆλ‹€.

πŸ”– μƒμœ„ λ‹€μ„― μ€„μ˜ ν–‰λ§Œ 쑰회

가격 λ‚΄λ¦Όμ°¨μˆœ, 메뉴 이름 μ˜€λ¦„μ°¨μˆœμœΌλ‘œ μ •λ ¬ν•œ ν›„ μƒμœ„ 5개의 행을 쑰회

SELECT menu_code, menu_name, menu_price
  FROM tbl_menu
 ORDER BY menu_price DESC, menu_name ASC
 LIMIT 5;

κ²°κ³Ό: μƒμœ„ 5개의 행이 λ°˜ν™˜λ©λ‹ˆλ‹€.

➑️ μš”μ•½

LIMITλŠ” κ²°κ³Ό μ§‘ν•©μ—μ„œ λ°˜ν™˜ν•  ν–‰μ˜ 수λ₯Ό μ œν•œν•œλ‹€.
LIMITλŠ” OFFSETκ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ νŠΉμ • μœ„μΉ˜μ—μ„œλΆ€ν„° λ°˜ν™˜ν•  ν–‰μ˜ 수λ₯Ό μ§€μ •ν•  수 μžˆμ–΄ 데이터λ₯Ό μ •λ ¬ν•˜κ³  ν•„μš”ν•œ 만큼의 행을 효율적으둜 κ°€μ Έμ˜¬ 수 μžˆλ‹€.

profile
"λ‘œμ»¬μ—μ„  λ¬Έμ œμ—†μ—ˆλŠ”λ°β€¦?"

0개의 λŒ“κΈ€