REPLACE
โREPLACEโ ํจ์๋ SQL์์ ๋ฌธ์์ด ๋ด์ ํน์ ๋ถ๋ถ์ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๊ณ ์ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ด ํจ์๋ ๋ฐ์ดํฐ ์ ์ ๋ ์์ ์์ ์์ ํนํ ์ ์ฉํ๋ฉฐ, ๊ธฐ์กด ๋ฌธ์์ด ๋ด์ ํน์ ํจํด์ด๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ด๋ฅผ ์๋ก์ด ๋ฌธ์์ด๋ก ๋์ฒดํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- โREPLACEโ ๋ ๋ก๊ทธ ๋ฐ์ดํฐ ์ ๋ฆฌ, ์ฌ์ฉ์ ์ ๋ ฅ ๋ฐ์ดํฐ์ ํ์คํ, ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ ์์ ๋ฑ ๋ค์ํ ์ํฉ์์ ํ์ฉ๋ ์ ์์ต๋๋ค.
โREPLACEโ ์ฌ์ฉ ์
-
ํน์ ๋ฌธ์์ด ๋์ฒด: ๊ณ ๊ฐ ๋ฐ์ดํฐ์์ ์ ํ๋ฒํธ ํ์์ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋
SELECT REPLACE(phone_number, '-', '') FROM customers;
์ด ์ฟผ๋ฆฌ๋ โcustomersโ ํ ์ด๋ธ์ โphone_numberโ ์ด์์ ๋ชจ๋ โ-โ ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด, โ123-456-7890โ ์ด๋ผ๋ ์ ํ๋ฒํธ๊ฐ ์์ ๊ฒฝ์ฐ, โ1234567890โ ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. -
๋ฐ์ดํฐ ์ ์ : ์ฌ์ฉ์์ ์ด๋ฉ์ผ ์ฃผ์์์ ๋๋ฉ์ธ์ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋
UPDATE users SET email = REPLACE(email, '@old_domain.com', '@new_domain.com');
์ด ์ฟผ๋ฆฌ๋ โusersโ ํ ์ด๋ธ์ โemailโ ์ด์์ โ@old_domail.comโ ์ โ@new_domain.comโ ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
-
ํ
์คํธ ๋ด์ฉ ์์ : ์ํ ์ค๋ช
์์ ํน์ ๋จ์ด๋ฅผ ์๋ก์ด ๋จ์ด๋ก ๋ฐ๊พธ๊ณ ์ถ์ ๋
UPDATE products SET description = REPLACE(description, 'oldword', 'newword');
์ด ์ฟผ๋ฆฌ๋ โproductsโ ํ ์ด๋ธ์ โdescriptionโ ์ด์์ โoldwordโ ๋ฅผ โnewwordโ ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
โREPLACEโ ํจ์์ ํน์ง.
-
โREPLACEโ ๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ฌ ์๋ํฉ๋๋ค.
- ๋์๋ฌธ์ ๊ตฌ๋ถ ์์ด ๋์ฒด๋ฅผ ํ๊ณ ์ ํ ๊ฒฝ์ฐ, ์ถ๊ฐ์ ์ธ ํจ์๋ ์กฐ๊ฑด์ ์ฌ์ฉํด์ผ ํ ์ ์์ต๋๋ค.
- ๋ฌธ์์ด ๋ด์์ ์ง์ ๋ ํจํด์ด๋ ๋ฌธ์์ด์ ์ฐพ์ ๋ชจ๋ ๋์ฒดํฉ๋๋ค.
- ์ฐพ๊ณ ์ ํ๋ ๋ฌธ์์ด์ด ์กด์ฌํ์ง ์์ผ๋ฉด, ์๋ณธ ๋ฌธ์์ด์ด ๋ณ๊ฒฝ ์์ด ๊ทธ๋๋ก ๋ฐํ๋ฉ๋๋ค.
- โREPLACEโ ํจ์๋ โSELECTโ, โUPDATEโ ๋ฑ์ ์ฟผ๋ฆฌ ๋ด์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ์กฐํ ๋๋ ์์ ์์ ์ ๋ชจ๋ ์ ์ฉํ ์ ์์ต๋๋ค.
์ฌ์ฉ ์ ๊ณ ๋ ค์ฌํญ
- ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋๋ โREPLACEโ ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
- ํนํ โUPDATEโ ์์ ์์๋ ๋์ฒด ์์ ์ผ๋ก ์ธํด ๋๋์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฏ๋ก, ์ฌ์ ์ ์์ ๋ฒ์๋ฅผ ์ ํ์ ํ๊ณ ํ์ํ ๋ฐฑ์ ์ ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ๋ฌธ์์ด ๋์ฒด ์์ ์ ์ํํ ๋๋ ์์น ์๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ๋ฐฉ์งํ๊ธฐ ์ํด, ๋์ฒดํ ๋ฌธ์์ด์ด ์ ํํ ์ผ์นํ๋์ง ์ฌ์ ์ ํ์ธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
โREPLACEโ ํจ์๋ ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์์ ํ๊ณ ์ ์ ํ ์ ์๋ ๊ฐ๋ ฅํ ๋๊ตฌ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ฐ ์ ์ง๋ณด์ ์์ ์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
SUBSTRING
โSUBSTRINGโ ํจ์๋ SQL์์ ๋ฌธ์์ด์ ํน์ ๋ถ๋ถ์ ์ถ์ถํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ด ํจ์๋ ๋ฌธ์์ด ๋ฐ์ดํฐ ๋ด์์ ํน์ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ํ ๋ถ๋ถ ๋ฌธ์์ด(substring)์ ๋ฐํํ๋ฉฐ, ๋ฐ์ดํฐ ์ ์ , ํน์ ํ์์ ๋ฐ์ดํฐ ์ถ์ถ, ๋๋ ๋ฌธ์์ด ์ฒ๋ฆฌ ์์ ์์ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
- โSUBSTRINGโ ์ ๋ก๊ทธ ๋ถ์, ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ , ์ฌ์ฉ์ ์ ๋ ฅ์ ํน์ ๋ถ๋ถ ์ฒ๋ฆฌ ๋ฑ ๋ค์ํ ์ํฉ์์ ํ์ฉ๋ ์ ์์ต๋๋ค.
โSUBSTRINGโ ์ฌ์ฉ ์
-
ํน์ ์์น์ ๋ฌธ์์ด ์ถ์ถ: ์ฌ์ฉ์ ์ด๋ฉ์ผ์์ ๋๋ฉ์ธ ๋ถ๋ถ๋ง์ ์ถ์ถํ๊ณ ์ถ์ ๋
SELECT SUBSTRING(email FROM POSITION ('@' IN email) + 1) FROM users;
์ด ์ฟผ๋ฆฌ๋ โusersโ ํ ์ด๋ธ์ โemailโ ์ด์์ โ@โ ๊ธฐํธ ๋ค์ ๋๋ฉ์ธ ๋ถ๋ถ์ ์ถ์ถํฉ๋๋ค.
-
๊ณ ์ ๋ ํ์์ ๋ฌธ์์ด ์ฒ๋ฆฌ: ์ ํ๋ฒํธ์์ ์ง์ญ ์ฝ๋๋ฅผ ์ถ์ถํ๊ณ ์ถ์ ๋
SELECT SUBSTRING(phone_number, 1, 3) FROM customers;
์ด ์ฟผ๋ฆฌ๋ โcustomersโ ํ ์ด๋ธ์ โphone_numberโ ์ด์์ ์ฒ์ 3์๋ฆฌ(์ง์ญ ์ฝ๋)๋ฅผ ์ถ์ถํฉ๋๋ค.
-
๋ฌธ์์ด์ ํน์ ๋ถ๋ถ ์์ ์์
์ ์ฌ์ฉ: ์ฃผ์์์ ํน์ ๋ถ๋ถ์ ๋ค๋ฅธ ํ์์ผ๋ก ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋
UPDATE addresses SET street = SUBSTRING(street, 1, 10) || '...' WHERE LENGTH(street) > 10;
์ด ์ฟผ๋ฆฌ๋ โaddressesโ ํ ์ด๋ธ์ โstreetโ ์ด์์ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 10์๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ, ์ฒ์ 10์๋ง์ ๋จ๊ธฐ๊ณ ๊ทธ ๋ค๋ฅผ โโฆโ ์ผ๋ก ๋์ฒดํฉ๋๋ค.
โSUBSTRINGโ ํจ์์ ํน์ง
- โSUBSTRINGโ ์ ๋ฌธ์์ด์ ํน์ ์น์ ์ ๋ฐํํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ์์ ์์น์ ๊ธธ์ด(์ ํ์ )๋ฅผ ์ง์ ํ์ฌ ์ํ๋ ๋ถ๋ถ ๋ฌธ์์ด์ ์ถ์ถํ ์ ์์ต๋๋ค.
- ๋ค์ํ ๋ฌธ์์ด ์ฒ๋ฆฌ ์์ ์ ํ์ฉ๋ ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ์ ํ์์ ๋ณ๊ฒฝํ๊ฑฐ๋, ํน์ ํจํด์ ๊ธฐ๋ฐํ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ ๋ฑ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ํจ์์ ์ ํํ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋ฐ๋ผ ์ฝ๊ฐ์ฉ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก, ํด๋น ์์คํ ์ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฌ์ฉ ์ ๊ณ ๋ ค์ฌํญ
- โSUBSTRINGโ ํจ์๋ฅผ ์ฌ์ฉํ ๋๋ ๋ฌธ์์ด์ ์ธ๋ฑ์ค๊ฐ 1๋ถํฐ ์์ํ๋ค๋ ์ ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.(๋๋ถ๋ถ์ SQL ์์คํ ์์).
- ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋๋ โSUBSTRINGโ ํจ์๋ฅผ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ ์ฃผ์ํด์ผ ํฉ๋๋ค. ํ์ํ ๊ฒฝ์ฐ, ์ ์ ํ ์ธ๋ฑ์ค ์ฌ์ฉ๊ณผ ๋ฐ์ดํฐ ํํฐ๋ง์ ํตํด ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค.
โSUBSTRINGโ ํจ์๋ ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ๋ถ์ํ๋ ๋ฐ ์์ด ํ์์ ์ธ ๋๊ตฌ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ๋ค์ํ ๋ฌธ์์ด ์กฐ์ ์์ ์ ์ํํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
CONCAT
โCONCATโ ํจ์๋ SQL์์ ๋ ๊ฐ ์ด์์ ๋ฌธ์์ด์ ํ๋๋ก ๊ฒฐํฉํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ด ํจ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ๋ค์ํ ๋ฌธ์์ด ์ ๋ณด๋ฅผ ํฉ์ณ ์๋ก์ด ๋ฌธ์์ด ๊ฐ์ ์์ฑํ๊ณ ์ ํ ๋ ์ ์ฉํ๋ฉฐ, ๋ณด๊ณ ์ ์์ฑ, ๋ฐ์ดํฐ ํ์์ ํ์คํ, ์ฌ์ฉ์ ์ด๋ฆ์ด๋ ์ฃผ์์ ๊ฐ์ ๋ฐ์ดํฐ์ ๊ฒฐํฉ ๋ฑ ๋ค์ํ ์ํฉ์์ ํ์ฉ๋ ์ ์์ต๋๋ค.
โCONCATโ ์ฌ์ฉ ์
-
๋จ์ํ ๋ฌธ์์ด ๊ฒฐํฉ: ์ฌ์ฉ์์ ์ด๋ฆ๊ณผ ์ฑ์ ํ๋์ ๋ฌธ์์ด๋ก ๊ฒฐํฉํ๊ณ ์ถ์ ๋
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
์ด ์ฟผ๋ฆฌ๋ โusersโ ํ ์ด๋ธ์ โfirst_nameโ ๊ณผ โlast_nameโ ์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ๊ฒฐํฉํ ํ, โfull_nameโ ์ด๋ผ๋ ์๋ก์ด ์ด๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
-
๋ณต์์ ์ด ๊ฒฐํฉ: ๊ณ ๊ฐ์ ์ฃผ์ ์ ๋ณด๋ฅผ ํ๋์ ๋ฌธ์์ด๋ก ๊ฒฐํฉํ๊ณ ์ถ์ ๋
SELECT CONCAT(street_address, ', ', city, state, ' ', postal_code) AS full_address FROM customers;
์ด ์ฟผ๋ฆฌ๋ โcustomersโ ํ ์ด๋ธ์์ ์ฌ๋ฌ ์ฃผ์ ๊ด๋ จ ์ด์ ์ฝค๋ง์ ๊ณต๋ฐฑ์ ์ฌ์ฉํ์ฌ ๊ฒฐํฉํ๊ณ , ์ด๋ฅผ โfull_addressโ ๋ผ๋ ์๋ก์ด ์ด๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
-
๋ฐ์ดํฐ ํ์ ํ์คํ: ์ํ ์ฝ๋์ ์ํ ์ด๋ฆ์ ๊ฒฐํฉํ์ฌ ํ์ค ํ์์ ์ํ ์ ๋ณด๋ฅผ ์์ฑํ๊ณ ์ถ์ ๋
SELECT CONCAT(product_code, ': ', product_name) AS product_info FROM products;
์ด ์ฟผ๋ฆฌ๋ โproductsโ ํ ์ด๋ธ์ โproduct_codeโ ์ โproduct_nameโ ์ ์ฝ๋ก ๊ณผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ๊ฒฐํฉํ ํ,
โproduct_infoโ ๋ผ๋ ์๋ก์ด ์ด๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
โCONCATโ ํจ์์ ํน์ง
- โCONCATโ ํจ์๋ ๋ ๊ฐ ์ด์์ ๋ฌธ์์ด์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ์ด๋ค์ ์์๋๋ก ๊ฒฐํฉํ ์๋ก์ด ๋ฌธ์์ด์ ์์ฑํฉ๋๋ค.
- ๊ฑฐ์ ๋ชจ๋ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์ ์ง์๋๋ฉฐ, ๋ฌธ์์ด ์ฒ๋ฆฌ์ ๋ฐ์ดํฐ ํ์์ ๋ณํ์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
-
์ผ๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์๋ โCONCATโ ๋์ ์ฐ์ฐ์(**โ ย โ** ๋ฑ)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ๊ฒฐํฉํ ์๋ ์์ต๋๋ค.
์ฌ์ฉ ์ ๊ณ ๋ ค์ฌํญ
- ๊ฒฐํฉํ๋ ค๋ ๋ฌธ์์ด ์ค ํ๋๋ผ๋ โNULLโ ๊ฐ์ ํฌํจํ๋ ๊ฒฝ์ฐ, โCONCATโ ์ ๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ผ๋ถ ์์คํ ์ โNULLโ ์ ๋น ๋ฌธ์์ด๋ก ์ทจ๊ธํ ์ ์์ผ๋, ๋ค๋ฅธ ์์คํ ์์๋ ์ ์ฒด ๊ฒฐ๊ณผ๊ฐ โNULLโ ์ด ๋ ์ ์์ต๋๋ค.
- ๋ณต์กํ ๋ฌธ์์ด ๊ฒฐํฉ์ ์ํํ ๋๋ ์ฑ๋ฅ์ ์ฃผ์ํด์ผ ํ๋ฉฐ, ํนํ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋๋ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ํ ์คํธํ๊ณ ์ต์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
โCONCATโ ํจ์๋ ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํ๊ณ ์กฐ์ํ๋ ๊ณผ์ ์์ ํ์์ ์ธ ๋๊ตฌ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ๋ค์ํ ๋ฌธ์์ด ๊ด๋ จ ์์ ์ ๊ตฌํํ๋ ๋ฐ ํ์ฉ๋ฉ๋๋ค.