λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
DBMS/Mariadb

[DBMS]MariaDB μ—°μ‚°μž: SQL 쿼리 λ§ˆμŠ€ν„°ν•˜κΈ°

by YJ Dev 2024. 5. 23.
728x90
λ°˜μ‘ν˜•
SMALL

MariaDBμ—μ„œ 주둜 μ‚¬μš©λ˜λŠ” μ—°μ‚°μžμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. μ—°μ‚°μžλŠ” SQL 쿼리λ₯Ό μž‘μ„±ν•˜λŠ” 데에 ν•„μˆ˜μ μΈ μš”μ†Œλ‘œ, 데이터λ₯Ό μ‘°μž‘ν•˜κ³  μ›ν•˜λŠ” κ²°κ³Όλ₯Ό μ–»λŠ” 데에 μ‚¬μš©λ©λ‹ˆλ‹€.

MARIADB μ—°μ‚°μž SQL

μ‚°μˆ  μ—°μ‚°μžπŸ”’

μ‚°μˆ  μ—°μ‚°μžλŠ” 숫자 데이터 νƒ€μž… 간에 μˆ˜ν•™μ μΈ 계산을 μˆ˜ν–‰ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. MariaDBμ—μ„œλŠ” λ‹€μŒκ³Ό 같은 μ‚°μˆ  μ—°μ‚°μžλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

  • λ§μ…ˆ +
  • λΊ„μ…ˆ -
  • κ³±μ…ˆ *
  • λ‚˜λˆ—μ…ˆ /

예λ₯Ό λ“€μ–΄, μ£Όλ¬Έ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ œν’ˆ 가격을 μ‘°μ •ν•˜κ±°λ‚˜ ν• μΈμœ¨μ„ μ μš©ν•˜λŠ” λ“±μ˜ μž‘μ—…μ— μ‚°μˆ  μ—°μ‚°μžλ₯Ό ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT price * 0.9 AS discounted_price
FROM products;

μœ„μ˜ μΏΌλ¦¬λŠ” μ œν’ˆμ˜ 가격에 10% ν• μΈμœ¨μ„ μ μš©ν•œ 가격을 μ‘°νšŒν•©λ‹ˆλ‹€.

비ꡐ μ—°μ‚°μžβ³

비ꡐ μ—°μ‚°μžλŠ” 값을 λΉ„κ΅ν•˜κ³  논리적인 쑰건을 ν‰κ°€ν•˜λŠ” 데에 μ‚¬μš©λ©λ‹ˆλ‹€. MariaDBμ—μ„œλŠ” λ‹€μŒκ³Ό 같은 비ꡐ μ—°μ‚°μžλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

  • λ“±ν˜Έ =: 두 값이 λ™μΌν•œμ§€ ν™•μΈν•©λ‹ˆλ‹€.
  • λΆ€λ“±ν˜Έ >, <: ν•˜λ‚˜μ˜ 값이 λ‹€λ₯Έ 값보닀 큰지 λ˜λŠ” μž‘μ€μ§€ ν™•μΈν•©λ‹ˆλ‹€.
  • ν¬κ±°λ‚˜ κ°™μŒ >=: ν•˜λ‚˜μ˜ 값이 λ‹€λ₯Έ 값보닀 ν¬κ±°λ‚˜ 같은지 ν™•μΈν•©λ‹ˆλ‹€.
  • μž‘κ±°λ‚˜ κ°™μŒ <=: ν•˜λ‚˜μ˜ 값이 λ‹€λ₯Έ 값보닀 μž‘κ±°λ‚˜ 같은지 ν™•μΈν•©λ‹ˆλ‹€.
  • 같지 μ•ŠμŒ != λ˜λŠ” <>: 두 값이 λ‹€λ₯Έμ§€ ν™•μΈν•©λ‹ˆλ‹€.

κ°€λ Ή, μ£Όλ¬Έ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ νŠΉμ • 가격 λ²”μœ„μ— μ†ν•˜λŠ” μ œν’ˆμ„ κ²€μƒ‰ν•˜κ³  μ‹Άλ‹€κ³  κ°€μ •ν•΄ λ΄…μ‹œλ‹€. 이λ₯Ό μœ„ν•΄ λ“±ν˜Έ(=)와 λΆ€λ“±ν˜Έ(<, >)λ₯Ό μ΄μš©ν•˜μ—¬ μ μ ˆν•œ 쿼리λ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

-- νŠΉμ • 가격 λ²”μœ„μ— μ†ν•˜λŠ” μ œν’ˆ 검색 예제

-- 100μ—μ„œ 200 μ‚¬μ΄μ˜ 가격을 가진 μ œν’ˆ 검색
SELECT *
FROM products
WHERE price >= 100 AND price <= 200;

-- νŠΉμ • 가격 μ΄ν•˜μ˜ μ œν’ˆ 검색
SELECT *
FROM products
WHERE price <= 50;

-- νŠΉμ • 가격 μ΄μƒμ˜ μ œν’ˆ 검색
SELECT *
FROM products
WHERE price >= 500;

μœ„μ˜ μ˜ˆμ œμ—μ„œλŠ” 각각 νŠΉμ • 가격 λ²”μœ„μ— μ†ν•˜λŠ” μ œν’ˆμ„ κ²€μƒ‰ν•˜λŠ” 쿼리λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. λ“±ν˜Έ(=)와 λΆ€λ“±ν˜Έ(<, >)λ₯Ό μ‘°ν•©ν•˜μ—¬ μ›ν•˜λŠ” 쑰건을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν•„μš”ν•œ 정보λ₯Ό μ‰½κ²Œ μΆ”μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

논리 μ—°μ‚°μžπŸ’‘

논리 μ—°μ‚°μžλŠ” SQL μΏΌλ¦¬μ—μ„œ μ—¬λŸ¬ 쑰건을 κ²°ν•©ν•˜μ—¬ λ³΅μž‘ν•œ 논리적 쑰건을 ꡬ성할 λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. MariaDBμ—μ„œ 주둜 μ‚¬μš©λ˜λŠ” 논리 μ—°μ‚°μžλŠ” AND, OR, NOTμž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ 쿼리의 필터링 쑰건을 더 μ„ΈλΆ€μ μœΌλ‘œ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • AND: 두 쑰건이 λͺ¨λ‘ 참일 λ•Œ 참을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • OR: 두 쑰건 쀑 ν•˜λ‚˜λΌλ„ 참일 λ•Œ 참을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • NOT: 쑰건이 거짓일 λ•Œ 참을 λ°˜ν™˜ν•˜κ³ , 참일 λ•Œ 거짓을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, μ œν’ˆμ˜ 가격이 νŠΉμ • λ²”μœ„ 내에 μžˆλŠ” μ œν’ˆμ„ κ²€μƒ‰ν•˜λŠ”λ° 논리 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT *
FROM products
WHERE price > 100 AND price < 200;

μœ„μ˜ μΏΌλ¦¬λŠ” 가격이 100μ—μ„œ 200 사이인 λͺ¨λ“  μ œν’ˆμ„ κ²€μƒ‰ν•©λ‹ˆλ‹€.

λΉ„νŠΈ μ—°μ‚°μžπŸ‘©‍πŸ’»

λΉ„νŠΈ μ—°μ‚°μžλŠ” λΉ„νŠΈ λ‹¨μœ„λ‘œ 데이터λ₯Ό μ‘°μž‘ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. MariaDBλŠ” μ—¬λŸ¬ λΉ„νŠΈ μ—°μ‚°μžλ₯Ό μ œκ³΅ν•˜λ©°, μ΄λŠ” 주둜 μ •μˆ˜ κ°’μ˜ λΉ„νŠΈλ₯Ό 직접 μ‘°μž‘ν•  ν•„μš”κ°€ μžˆμ„ λ•Œ μœ μš©ν•©λ‹ˆλ‹€. λΉ„νŠΈ μ—°μ‚°μžλŠ” 논리적 AND, OR, XOR, NOT 및 μ‹œν”„νŠΈ 연산을 ν¬ν•¨ν•©λ‹ˆλ‹€.

  • λΉ„νŠΈ AND (&): 두 λΉ„νŠΈκ°€ λͺ¨λ‘ 1일 λ•Œ 1을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • λΉ„νŠΈ OR (|): 두 λΉ„νŠΈ 쀑 ν•˜λ‚˜λΌλ„ 1일 λ•Œ 1을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • λΉ„νŠΈ XOR (^): λ‘λΉ„νŠΈκ°€ λ‹€λ₯Ό λ•Œ 1을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
  • λΉ„νŠΈ NOT (~): λΉ„νŠΈλ₯Ό λ°˜μ „μ‹œν‚΅λ‹ˆλ‹€. (1은 0으둜, 0은 1둜)
-- λΉ„νŠΈ AND (&): 두 λΉ„νŠΈκ°€ λͺ¨λ‘ 1일 λ•Œ 1을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
SELECT 5 & 3 AS bit_and_result;
-- κ²°κ³Ό: 1 (5λŠ” 101, 3은 011, AND μ—°μ‚° κ²°κ³ΌλŠ” 001)

-- λΉ„νŠΈ OR (|): 두 λΉ„νŠΈ 쀑 ν•˜λ‚˜λΌλ„ 1일 λ•Œ 1을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
SELECT 5 | 3 AS bit_or_result;
-- κ²°κ³Ό: 7 (5λŠ” 101, 3은 011, OR μ—°μ‚° κ²°κ³ΌλŠ” 111)

-- λΉ„νŠΈ XOR (^): 두 λΉ„νŠΈκ°€ λ‹€λ₯Ό λ•Œ 1을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
SELECT 5 ^ 3 AS bit_xor_result;
-- κ²°κ³Ό: 6 (5λŠ” 101, 3은 011, XOR μ—°μ‚° κ²°κ³ΌλŠ” 110)

-- λΉ„νŠΈ NOT (~): λΉ„νŠΈλ₯Ό λ°˜μ „μ‹œν‚΅λ‹ˆλ‹€. (1은 0으둜, 0은 1둜)
SELECT ~5 AS bit_not_result;
-- κ²°κ³Ό: -6 (5λŠ” 101, NOT μ—°μ‚° κ²°κ³ΌλŠ” 010, 2의 λ³΄μˆ˜λ²•μœΌλ‘œ 인해 -6)


예λ₯Ό λ“€μ–΄, νŠΉμ • λΉ„νŠΈλ₯Ό ν™œμš©ν•˜μ—¬ 데이터λ₯Ό μ•”ν˜Έν™”ν•˜κ±°λ‚˜ ν•΄λ…ν•˜λŠ” μž‘μ—…μ— λΉ„νŠΈ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SELECT id, name
FROM users
WHERE role & 2 = 2;

μœ„μ˜ μΏΌλ¦¬λŠ” μ‚¬μš©μžμ˜ μ—­ν• (role)이 2번 λΉ„νŠΈκ°€ μ„€μ •λœ μ‚¬μš©μžλ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€.

νŒ¨ν„΄λ§€μΉ­ μ—°μ‚°μžπŸ‘―‍

νŒ¨ν„΄ 맀칭 μ—°μ‚°μžλŠ” μ •κ·œ ν‘œν˜„μ‹μ„ μ‚¬μš©ν•˜μ—¬ νŠΉμ •ν•œ νŒ¨ν„΄μ„ κ²€μƒ‰ν•˜κ±°λ‚˜ μΆ”μΆœν•˜λŠ” 데에 μ‚¬μš©λ©λ‹ˆλ‹€. MariaDBμ—μ„œλŠ” LIKE μ—°μ‚°μžμ™€ REGEXP μ—°μ‚°μžλ₯Ό 톡해 νŒ¨ν„΄ 맀칭을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

LIKE μ—°μ‚°μž

LIKE μ—°μ‚°μžλŠ” λ¬Έμžμ—΄μ΄ νŠΉμ •ν•œ νŒ¨ν„΄μ„ λ”°λ₯΄λŠ”지λ₯Ό κ²€μ‚¬ν•©λ‹ˆλ‹€. 이 λ•Œ μ‚¬μš©λ˜λŠ” μ™€μΌλ“œμΉ΄λ“œλ‘œλŠ” %κ°€ 있으며, μ΄λŠ” μž„μ˜μ˜ λ¬Έμžμ—΄μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄, λ‹€μŒμ˜ μΏΌλ¦¬λŠ” 이메일 μ£Όμ†Œκ°€ "@gmail.com"으둜 λλ‚˜λŠ” λͺ¨λ“  데이터λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

SELECT *
FROM users
WHERE email LIKE '%@gmail.com';

μœ„μ˜ μΏΌλ¦¬μ—μ„œ %λŠ” "@gmail.com" μ•žμ— μžˆλŠ” μž„μ˜μ˜ λ¬Έμžμ—΄μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

REGEXP μ—°μ‚°μž

REGEXP μ—°μ‚°μžλŠ” MariaDBμ—μ„œ μ •κ·œ ν‘œν˜„μ‹μ„ μ‚¬μš©ν•˜μ—¬ λ¬Έμžμ—΄ νŒ¨ν„΄μ„ λ§€μΉ­ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” κ°•λ ₯ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. μ •κ·œ ν‘œν˜„μ‹μ€ λ¬Έμžμ—΄μ—μ„œ νŠΉμ • νŒ¨ν„΄μ„ κ²€μƒ‰ν•˜κ³  μΆ”μΆœν•  수 있게 ν•΄μ£ΌλŠ” ν‘œν˜„μ‹μž…λ‹ˆλ‹€. REGEXPλŠ” λ³΅μž‘ν•œ λ¬Έμžμ—΄ 검색이 ν•„μš”ν•  λ•Œ 맀우 μœ μš©ν•©λ‹ˆλ‹€.

β–Ά κΈ°λ³Έ 문법

SELECT *
FROM table_name
WHERE column_name REGEXP 'pattern';

β–Ά μ •κ·œ ν‘œν˜„μ‹ νŒ¨ν„΄

  • ^: λ¬Έμžμ—΄μ˜ μ‹œμž‘μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • $: λ¬Έμžμ—΄μ˜ 끝을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • .: μž„μ˜μ˜ ν•œ 문자λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • [abc]: κ΄„ν˜Έ μ•ˆμ˜ 문자 쀑 ν•˜λ‚˜μ™€ μΌμΉ˜ν•©λ‹ˆλ‹€.
  • [^abc]: κ΄„ν˜Έ μ•ˆμ˜ 문자 μ™Έμ˜ ν•˜λ‚˜μ™€ μΌμΉ˜ν•©λ‹ˆλ‹€.
  • [a-z]: νŠΉμ • λ²”μœ„μ˜ λ¬Έμžμ™€ μΌμΉ˜ν•©λ‹ˆλ‹€.
  • a|b: a λ˜λŠ” b와 μΌμΉ˜ν•©λ‹ˆλ‹€.
  • *: 0개 μ΄μƒμ˜ μ•žμ„  νŒ¨ν„΄κ³Ό μΌμΉ˜ν•©λ‹ˆλ‹€.
  • +: 1개 μ΄μƒμ˜ μ•žμ„  νŒ¨ν„΄κ³Ό μΌμΉ˜ν•©λ‹ˆλ‹€.
  • ?: 0개 λ˜λŠ” 1개의 μ•žμ„  νŒ¨ν„΄κ³Ό μΌμΉ˜ν•©λ‹ˆλ‹€.
  • {m}: λ°”λ‘œ μ•žμ— μžˆλŠ” λ¬Έμžκ°€ m회 λ°˜λ³΅λ©λ‹ˆλ‹€.
  • {m, n}: λ°”λ‘œ μ•žμ— μžˆλŠ” λ¬Έμžκ°€ mνšŒλΆ€ν„° nνšŒκΉŒμ§€ λ°˜λ³΅λ©λ‹ˆλ‹€.

β–Ά 예제) λ¬Έμžμ—΄μ΄ 'A'둜 μ‹œμž‘ν•˜λŠ” 경우 검색:

SELECT *
FROM users
WHERE name REGEXP '^A';

β–Άμ˜ˆμ œ) λ¬Έμžμ—΄μ΄ 숫자둜 λλ‚˜λŠ” 경우 검색:

SELECT *
FROM users
WHERE name REGEXP '[0-9]$';

β–Άμ˜ˆμ œ) λ¬Έμžμ—΄μ— 'cat' λ˜λŠ” 'dog'이 ν¬ν•¨λœ 경우 검색:

SELECT *
FROM articles
WHERE content REGEXP 'cat|dog';

β–Άμ˜ˆμ œ) 이메일 ν˜•μ‹μ΄ μ˜¬λ°”λ₯Έμ§€ 확인 (κ°„λ‹¨ν•œ 예):

SELECT *
FROM users
WHERE email REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$';


μ •κ·œ ν‘œν˜„μ‹μ€ κ°•λ ₯ν•œ 검색 및 ν…μŠ€νŠΈ μ‘°μž‘ κΈ°λŠ₯을 μ œκ³΅ν•˜λ©°, λ‹€μ–‘ν•œ νŒ¨ν„΄ 맀칭 μž‘μ—…μ— μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 MariaDBμ—μ„œ λ³΅μž‘ν•œ λ¬Έμžμ—΄ 검색을 효율적으둜 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

NULL μ—°μ‚°μžπŸ’¬

NULL μ—°μ‚°μžλŠ” SQLμ—μ„œ NULL 값을 μ²˜λ¦¬ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. NULL은 "값이 μ—†μŒ"을 μ˜λ―Έν•˜λ©°, μ΄λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ νŠΉμ • 열이 λΉ„μ–΄ μžˆκ±°λ‚˜ μ •μ˜λ˜μ§€ μ•Šμ€ μƒνƒœλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. MariaDBμ—μ„œ NULL 값을 닀루기 μœ„ν•΄ μ—¬λŸ¬ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • IS NULL: 열이 NULL 값을 κ°€μ§€λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.
  • IS NOT NULL: 열이 NULL 값을 가지지 μ•ŠλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

μ•„λž˜ μΏΌλ¦¬λŠ” 고객 IDκ°€ NULL인 λͺ¨λ“  주문을 κ²€μƒ‰ν•©λ‹ˆλ‹€.

SELECT *
FROM orders
WHERE customer_id IS NULL;


μ•„λž˜ μΏΌλ¦¬λŠ” 고객 IDκ°€ NULL이 μ•„λ‹Œ λͺ¨λ“  주문을 κ²€μƒ‰ν•©λ‹ˆλ‹€.

SELECT *
FROM orders
WHERE customer_id IS NOT NULL;

NULL과의 비ꡐ

NULL과의 직접적인 비ꡐ(=,!= λ“±)λŠ” μ˜¬λ°”λ₯Έ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ΄λŠ” SQL ν‘œμ€€μ—μ„œ NULL은 μ–΄λ–€ 값과도 같지 μ•Šλ‹€κ³  κ°„μ£Όλ˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. NULL κ°’κ³Ό λΉ„κ΅ν•˜λ €λ©΄ λ°˜λ“œμ‹œ IS NULL λ˜λŠ” IS NOT NULL을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

잘λͺ»λœ 예제

-- This will not work as expected
SELECT *
FROM orders
WHERE customer_id = NULL;


μ˜¬λ°”λ₯Έ 예제

-- Correct way to check for NULL
SELECT *
FROM orders
WHERE customer_id IS NULL;

NULL κ°’μ˜ νŠΉμ„±

  • NULL은 λΉ„μ–΄ μžˆλŠ” κ°’μ΄λ‚˜ 0κ³Ό λ‹€λ¦…λ‹ˆλ‹€: NULL은 데이터가 μ‘΄μž¬ν•˜μ§€ μ•ŠμŒμ„ μ˜λ―Έν•˜λ©°, μ΄λŠ” 빈 λ¬Έμžμ—΄μ΄λ‚˜ 0κ³ΌλŠ” λ‹€λ¦…λ‹ˆλ‹€.
  • μ—°μ‚°μ—μ„œμ˜ NULL: NULL과의 μ‚°μˆ  μ—°μ‚°, λ¬Έμžμ—΄ μ—°μ‚° 등은 항상 NULL을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
SELECT price * discount AS discounted_price
FROM products
WHERE discount IS NULL;

μœ„μ˜ μΏΌλ¦¬λŠ” 할인 값이 NULL인 μ œν’ˆμ— λŒ€ν•΄ NULL을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

핡심 λ‚΄μš©πŸ‘€

μ‚°μˆ , 비ꡐ μ—°μ‚°μž
논리, λΉ„νŠΈ, NULL μ—°μ‚°μž
νŒ¨ν„΄ 맀칭 μ—°μ‚°μž

728x90
λ°˜μ‘ν˜•