-
SQL - ๋จ์ผ ํ ํจ์(๋ฌธ์/์ซ์/๋ ์ง/๋ณํ/์กฐ๊ฑด)DATABASE 2020. 7. 19. 21:26
๐ฏ SQL์ ๋จ์ผํ ํจ์์ธ ๋ฌธ์ํจ์, ์ซ์ํจ์, ๋ ์งํจ์, ๋ณํํจ์, ์กฐ๊ฑดํจ์๋ฅผ ์์๋ณธ๋ค.
๋จ์ผ ํ ํจ์
์ ๋ ฅ์ฒ๋ฆฌ๋๋ ํ์ ๊ฐ์์ ์ถ๋ ฅ ์ฒ๋ฆฌ๋๋ ํ์ ๊ฐ์๊ฐ ๋์ผํ๋ค.
14๋ช ์๋ฃ ์๋ค๋ฉด ํจ์๊ฐ 14๋ช ์ ๋ค ์ ์ฉ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค.
๋ฌธ์ํจ์
INITCAP ํจ์ : INITCAP('ORACLE SQL') >> Oracle Sql
๊ฐ ๋จ์ด์ ์ฒซ ๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก, ๋๋จธ์ง๋ ์๋ฌธ์๋ก ๋ณ๊ฒฝ
LOWER ํจ์ : LOWER('ORACLE SQL') >> oracle sql
๋ชจ๋ ๋ฌธ์์ด์ ์๋ฌธ์๋ก ๋ณ๊ฒฝ.
UPPER ํจ์ : UPPER('Oracle Sql') >> ORACLE SQL
์๋ฌธ์๋ฅผ ๋๋ฌธ์๋ก ๋ณ๊ฒฝ.
CONCAT ํจ์ : CONCAT('Oracle', 'Sql') >> OracleSql
๋๊ฐ์ ๋ฌธ์์ด์ ํฉ์ฑ. || ์ฐ๊ฒฐ์ฐ์ฐ์๋ ๊ฐ์ ์ญํ . ๋งค๊ฐ๋ณ์๋ ๋๊ฐ๋ง ์ฌ์ฉ๊ฐ๋ฅ. ๋๊ฐ๋ง ๋ถ์ผ ์ ์๋ค.
LPAD ํจ์ : LAPAD('MILLER', 10, '*') >> ****MILLER
๊ธ์๋ฅผ ์ด n์๋ฆฌ๋ก ๋ง๋ค์ด์ฃผ๊ณ ์์ผ๋ก ๋ฐ์ด์ค ๋ค์ ์ผ์ชฝ๋ถํฐ ์๋ก์ด ๋ฌธ์์ด์ ๋ผ์๋ฃ๋๋ค. ์ฃผ๋ฏผ๋ฒํธ์ ๋ง์ด ์ฌ์ฉํ๋ ํ์. ์ผ์ชฝ๋ถํฐ๋ผ์ LEFT PAD์. ์ฝ์ ํ ๋ฌธ์๊ฐ ์์ ๊ฒฝ์ฐ ๊ณต๋ฐฑ์ผ๋ก ์ฑ์์ง๋ค.
RPAD ํจ์ : LAPAD('MILLER', 10, '*') >> MILLER****
์ค๋ฅธ์ชฝ์ ๋ฌธ์์ด์ ๋ผ์๋ฃ๋ ์ญํ
SUBSTR ํจ์: SUBSTR( '12345', 3, 2) >> 3, 4
๋ฌธ์์ค์์ ํน์ ๋ถ๋ถ๋ง ๋ฝ์์ค
์ด ๋ฌธ์์ด์์ m ์์น๋ถํฐ n๊ฐ์ ๋ฌธ์๋ฅผ ๋ฝ์์ค.
์ฃผ๋ฏผ๋ฒํธ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ช๊ฐ์ง ๋ฐฉ๋ฒ
(์ด ๋ฒํธ์ ์ฒซ๋ฒ์งธ ์๋ฆฌ๋ถํฐ 8๊ฐ๋ฅผ ๋ฝ์๋ผ),์ ์ฒด๊ธธ์ด 14๋ง๋ค๊ณ , ์ซ์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐ๊ณ ๋จ์์๋ฆฌ *๋ก ์ฑ์๋ผ
์ฃผ๋ฏผ๋ฒํธ์์ 9๋ฒ์งธ ์๋ฆฌ๋ถํฐ ๊ทธ ๋ค ๋ชจ๋๋ฅผ ******์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
์์ ์์น๊ฐ๋ง ์ง์ ํ๊ณ ๋ฐํ๋ฐ์ ๋ฌธ์์ด ๊ฐ์๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๊ทธ ์์น๋ถํฐ์ ๋ชจ๋ ๋ฌธ์์ด์ ๋ฐํํ๋ค.
์์น๊ฐ์ด ์์๋ฉด ๊ฑฐ๊พธ๋ก ๋ค์์๋ถํฐ ๋ช๋ฒ์งธ์ธ์ง ์ฐพ๋๋ค
LENGTH ํจ์ : LENGTH('ORACLE') >> 6
๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์ซ์๊ฐ์ผ๋ก ๋ฆฌํด
REPLACE ํจ์ : REPLACE( 'JACK and JUE', 'J', 'BL ') >> BLACK and BLUE
ํน์ ๋ฌธ์์ด ๋ฐ๊ฟ์ฃผ๊ธฐ
INSTR ํจ์ : INSTR('MILLER', 'L', 1, 2) >> 4
๋ฌธ์์ด์ด ํฌํจ๋์ด์๋์ง ์กฐ์ฌํด ๋ฌธ์์ด์ ์์น๋ฅผ ๋ฆฌํด. ์ง์ ํ ๋ฌธ์์ด ๋ฐ๊ฒฌ๋์ง ์์ผ๋ฉด 0์ ๋ฆฌํด.
๋ฐ๋ฌ๋ผ๋ ๋จ์ด์์, L์ ์ฐพ๋๋ฐ, ์ฒซ๋ฒ์งธ ์๋ฆฌ๋ถํฐ ์ฐพ์, ๊ทผ๋ฐ 2๋ฒ์งธ L์ด ์ด๋์๋ฆฌ์ ์๋ ๋ฐํํด๋ผ.
m๊ณผ n ์ ์ต์ ์ผ๋ก ์๋ต๊ฐ๋ฅ. ์๋ตํ๋ฉด ์ฒซ์งธ์๋ฆฌ๋ถํฐ ์์ํด์ ์ฒซ๋ฒ์งธ๋ก ๊ฒ์๋๋ ๋ฌธ์์ ์์น๊ฐ์ ๋ฐํํ๊ฒ ๋๋ค.
LTRIM ํจ์ : LTRIM('MILLER', 'M') >> ILLER
๋ฌธ์์ด์ ์ฒซ ๋ฌธ์๋ถํฐ ํ์ธํด์ ์ง์ ๋ฌธ์๊ฐ ๋ํ๋๋ ๋์ ํด๋น ๋ฌธ์๋ฅผ ์ ๊ฑฐ. ์ง์ ๋ฌธ์๋ฅผ ์๋ตํ๋ฉด ๊ณต๋ฐฑ๋ฌธ์๊ฐ ๊ธฐ๋ณธ๊ฐ. ์ผ์ชฝ๋ถํฐ ์์ํด์ LEFT TRIM ์ด๋ค.
RTRIM ํจ์ : RTRIM('MILLER', 'R') >> MILLE
๋ฌธ์์ด์ ๋ง์ง๋ง ๋ฌธ์๋ถํฐ ํ์ธํด์ ์ง์ ๋ฌธ์๊ฐ ๋ํ๋ ๋๊น์ง ํด๋น ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๋ค.
TRIM ํจ์
๋ฌธ์์ด์์ ์ผ์ชฝ(leading) ์ค๋ฅธ์ชฝ(trailing) ๋๋ค(both) ์ ๊ฑฐ. ์ด ์ธ๊ฐ๊ฐ ์๋ต๋๋ฉด both ๊ฐ ๊ธฐ๋ณธ.
์ ๊ฑฐํ ๋ฌธ์๋ฅผ ์ ๋ ฅํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๊ณต๋ฐฑ์ด ์ ๊ฑฐ๋จ.
LTRIM RTRIM ๊ณผ๋ ๋ค๋ฅด๊ฒ TRIM ์์๋ FROM ํค์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
์ซ์ํจ์
CEIL ํจ์ : CEIL(10.1) >> 11
์ฌ๋ฆผํจ์. ์ฃผ์ด์ง ์ซ์๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์ต์ ์ ์ ๋ฆฌํด
FLOOR ํจ์ : FLOOR(10.23) >> 10
์์์ ๋ฐ์๋ฆฌ ๋ฒ๋ฆฌ๊ธฐ. ์ฃผ์ด์ง ์ซ์๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ต๋ ์ ์ ๋ฆฌํด.
MOD ํจ์ : MOD(10, 3) >> 1
๋๋จธ์ง๋ฅผ ๋ฐํํ๋ ํจ์. ๋งค๊ฐ๋ณ์ 2๊ฐ, ์ฃผ์ด์ง ์ซ์๋ฅผ N์ผ๋ก ๋๋์ด ๋จ์ ๊ฐ์ ๋ฐํ.
๋ํ์ ์ผ๋ก ํ์ง ๊ตฌํ๊ธฐ, ๋ฐฐ์ ๊ตฌํ๊ธฐ์ ์ฌ์ฉ๋จ.
0์ผ๋ก ๋๋๊ฒฝ์ฐ ์๋ ๊ฐ ๊ทธ๋๋ก๋ฅผ ๋ฐํ.
ROUNDํจ์ : ROUND(123.456, 2) >> 123.46
์ซ์๋ฅผ ์์์ N์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ. ์๋ตํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ 0(์์์ ๋ฐ๊ณ ๋ฐ์ฌ๋ฆผ)
N์ด ์์์ด๋ฉด ์์์๋ฆฌ, ์์์ด๋ฉด ์์์ ์ ๊ธฐ์ค์ผ๋ก ์์ผ๋ก๊ฐ์ ์ ์์๋ฆฌ๋ฅผ ๋ฐ์ฌ๋ฆผํ๋ค.
TRUNC ํจ์ : TRUNC(456.789, -1) >> 450
์์์ ๊ธฐ์ค์ผ๋ก ๋ช๋ฒ์งธ ์๋ฆฌ๋ฅผ ๋ฒ๋ฆฌ๋ ํจ์. ์์์ด๋ฉด ์ ์์๋ฆฌ์์ ๋ฒ๋ฆผ.
SIGN ํจ์ : SIGN (100) >> 1
์ฃผ์ด์ง ์ซ์๊ฐ ์์๋ฉด 1๋ฐํ, ์์๋ฉด -1 ๋ฐํ, 0=0์ธ์ง ํ๋จ
์๊ธ์์ 1500 ๋ง์ด๋์ค ํ์ ๋ ์์๋ฉด 1500๋ณด๋ค ํฐ ๊ฐ์ด๊ธฐ ๋๋ฌธ์(์ํ!) where์ ์กฐ๊ฑด์์ sign ํจ์๋ฅผ ์ ์ฉํ ์ ์๋ค.
๋ ์งํจ์
์ค๋ผํด ๋ ์ง์ ๋ํด ์ฐ์ฐ. MONTH_BETWEEN ์ ์ธํ๊ณ ๋ DATEํ์ ๋ฆฌํดํ๋ค.
์ค๋ผํด ๋ ์ง๋ฐ์ดํฐ ๊ธฐ๋ณธ ํฌ๋งท : RR/MM/DD
RR๊ณผ YY์ ์ฐจ์ด?
YY : ์ ๋ ฅ๋ ์ง๋ฅผ ์ค๋ผํด ์๋ฒ์ ํ์ฌ ๋ ์ง ์ธ๊ธฐ์ ๋์ผํ๊ฒ ์ฒ๋ฆฌ.
95๋ ๋ ์๋ฃ ์ฐพ๊ณ ์ถ์ด์ YY=95๋ฅผ ์ ๋ ฅํด๋ 2095๊ฐ ๋ฐํ๋๋ค
RR : ์ค๋ผํด์ด ์๋์ผ๋ก ๋ฐํ๋ ๋๋ฅผ ๊ฒฐ์ . ์ ํ๋ UP!
SYSDATE ํจ์
์ค๋ผํด ์์คํ ์ ํ์ฌ ๋ ์ง๋ฅผ ๋ฐํ
SYSDATE+1์ ๋ ์ง+1์ด ๋๋ค.
ADD_MONTHS ํจ์
๊ฐ์์๋ฅผ ๋ํ๊ณ ๋บ์์๋ค. ๊ฒฐ๊ณผ๋ ๋ ์งํ.
NEXT_DAY ํจ์
์ง์ ๋ ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์์ค๋ ๊ฐ์ฅ ๊ฐ๊น์ด ์์ผ์ ํด๋นํ๋ ๋ ์ง๋ฅผ ๋ฐํ.
์์ผ ๋์ ์ซ์๋ฅผ ์จ๋ ๋๋๋ฐ ์ผ์์ผ๋ถํฐ 1๋ก ์์ํ๋ค.
LAST_DAY ํจ์
์์ ๋ง์ง๋ง ๋ ์ง ๊ณ์ฐ.
ROUND ํจ์
๋ ์ง๋ฅผ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ ๋๋ ์๋ก ๋ฐ์ฌ๋ฆผ ํ ์ ์๋ค
TRUNC ํจ์
๋ ์ง๋ฅผ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ ๋๋ ์๋ก ๋ฒ๋ฆผํ ์ ์๋ค.
์ ๋ฒ๋ฆผ ํ๋ฉด 1์ผ๋ก ์ธํ , ์ฐ ๋ฒ๋ฆผํ๋ฉด 1์ 1์ผ๋ก ์ธํ .
๋ณํํจ์
๋ฐ์ดํฐํ์ ์ ๋ค๋ฅธ ๋ฐ์ดํฐํ์ ์ผ๋ก ๋ณํ์ํค๋ ํจ์
๋ฐ์ดํฐ ํ์ ์ ๋ณํ ๋ฐฉ๋ฒ
๋ฌต์์ ํ ๋ณํ
์ฐ๋ฆฌ๊ฐ ์๋ฐ๊ฟ์ค๋ ์ค๋ผํด์์ ์๋์ ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋๊ฒ ์๋๋ฐ ๊ถ์ฅ์ํจ
์ค๋ผํด์ด ๋ฌธ์๋ก ์ ๋ ฅ๋ 7900์ ์๋์ผ๋ก ์ซ์๋ก ํ๋ณํํด์ ์ฐพ์์ค๋ค.
๋ช ์์ ํ ๋ณํ
๋ด๊ฐ ํ์ํ ๊ฒฝ์ฐ์ ๋ช ์์ ์ผ๋ก ํจ์์ด์ฉ.
TO_CHAR : TO_CHAR(HIREDATE, 'YYYY') >> 2018
๋ฌธ์๋ก ํ๋ณํ. ๋ฐ์ดํฐ ํ ๋ณํ์ ์ถ๊ฐ๋ก ์ถ๋ ฅ ํ์์ ์ง์ ํ ์ ์๋ค. ์ถ๋ ฅํ์์ ๋ฐ๋์ ๋ฐ์ดํ ์์
ํ์์ ์์๋ฐ์ดํ๋ก ์์, ์์ ๋ฐ์ดํ๊ฐ ์ค๋ณต๋์ง ์๊ฒ ๊ทธ ์์๋ ํฐ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํด์ค.
TO_NUMBER ํจ์ : TO_NUMBER('1234') >> 1234
์ซ์ํํ์ ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํ
TO_DATE ํจ์ : TO_DATE('20200719', 'YYYYMMDD') >> 2020/07/19
๋ ์ง๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด์ ๋ช ์๋ ๋ ์ง๋ก ๋ณํ
์ผ๋ฐํจ์(์กฐ๊ฑดํจ์)
CASE ํจ์
์กฐ๊ฑด์ด ๋ฐ๋์ ์ผ์นํ์ง ์์๋ ๋ฒ์ ๋ฐ ๋น๊ต๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ํจ์
์ฌ๋ฌ ์กฐ๊ฑด์ ๋ํด ์ ํ์ ์ผ๋ก ์ํ๋ฌธ์ ์คํ์ํฌ ์ ์๋ ํจ์
-- ์กฐ๊ฑด์ด ์ผ์นํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ๋ฌธ๋ฒ(๋๋ฑ์กฐ๊ฑด) SELECT ์ปฌ๋ผ, CASE ์ปฌ๋ผ WHEN ๋น๊ต๊ฐ1 THEN ๊ฒฐ๊ณผ๊ฐ1 WHEN ๋น๊ต๊ฐ2 THEN ๊ฒฐ๊ณผ๊ฐ2 ELSE ๊ฒฐ๊ณผ๊ฐn END FROM ํ ์ด๋ธ;
SELECT ์ปฌ๋ผ๋ถ๋ถ์ CASE๋ฅผ ์ด๋ค.
์ง์ ํ ์ปฌ๋ผ์์ WHEN ~ THEN ์กฐ๊ฑด์ ๊ณ์ ๊ฒ์ฌํ๊ณ
์ฌ๊ธฐ์ ํด๋น ์๋ ๊ฒฝ์ฐ ELSE๋ฅผ ์ถ๋ ฅํ๊ณ END
END ๋ค์ ์ปฌ๋ผ ๋ณ์นญ์ ์ธ ์ ์๋๋ฐ, "๋ณ์นญ" ๋ค์ ๋ฐ๋ก ์ผํ๊ฐ ๋ถ์ง ์๋ ๊ฑฐ ์ฃผ์ํ๊ธฐ.
-- ์กฐ๊ฑด์ด ๋ฐ๋์ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ๋ฌธ๋ฒ(๋ถ๋ฑ์กฐ๊ฑด) SELECT ์ปฌ๋ผ, CASE WHEN ์กฐ๊ฑด1 THEN ๊ฒฐ๊ณผ๊ฐ1 WHEN ์กฐ๊ฑด2 THEN ๊ฒฐ๊ณผ๊ฐ2 ELSE ๊ฒฐ๊ณผ๊ฐn END FROM ํ ์ด๋ธ;
๋ถ๋ฑ๋น๊ต ์ฐ์ฐ์(=๋ง๊ณ ๋ค๋ฅธ ๋๋จธ์ง ๋น๊ต์ฐ์ฐ์๋ค, BETWEEN, IN, ๋ ผ๋ฆฌ์ฐ์ฐ์ ๋ฑ)๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ WHEN ์์ ์ปฌ๋ผ๋ช ์ด ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ CASE ๋ค์์ ์ปฌ๋ผ์ ๋ ์ ์ง ์๋๋ค.
DECODEํจ์
์กฐ๊ฑด์ด ๋ฐ๋์ ์ผ์นํด์ผ ๋๋ ๊ฒฝ์ฐ ์ฌ์ฉ๋๋ ํจ์.
SELECT ์ปฌ๋ผ, DECODE(์ปฌ๋ผ, ๋น๊ต๊ฐ1, ๊ฒฐ๊ณผ๊ฐ1, ๋น๊ต๊ฐ2, ๊ฒฐ๊ณผ๊ฐ2, ... ๊ธฐ๋ณธ๊ฒฐ๊ณผ๊ฐ) FROM ํ ์ด๋ธ;
-- ์๊ธ์ ๋ฐ๋ผ ๋ณด๋์ค ์ฐจ๋ฑ ์ง๊ธํ๊ธฐ์ํ ์ํ๋ฌธ ๋ง๋ค๊ธฐ
-- ์๊ธ 2400์ด๋ฉด ์๊ธ์ 30%, 1700์ด๋ฉด ์๊ธ์ 20%๋ฅผ ๋ณด๋์ค๋ก ์ง๊ธ๋ฐ๊ณ
-- ์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ ๋๋จธ์ง ์ฌ์์ ์๊ธ์ 100%๋ฅผ ๋ณด๋์ค๋ก ์ง๊ธ๋ฐ๋๋ค. ๐๐
-- DECODE ๋ฒ์ SELECT ENAME, SAL, DECODE(SAL, 2400, SAL*0.3, 1700, SAL*0.2, SAL) ๋ณด๋์ค FROM EMP ORDER BY 2 DESC;
-- CASE ๋ฒ์ SELECT ENAME, SAL, CASE SAL WHEN 2400 THEN SAL*0.3 WHEN 1700 THEN SAL*0.2 ELSE SAL END ๋ณด๋์ค FROM EMP ORDER BY 2 DESC;
์์ ํ์ด๋ณด๊ธฐ
1. ์ฌ์ ํ ์ด๋ธ์์ ์์ ์ฌ์๊ณผ ๋น์์ ์ฌ์์ ๊ตฌ๋ณํ์ฌ ์ถ๋ ฅํด๋ณด๊ธฐ
์ง๋๋ฒ ๋งํ์ง๋ง ๋๋ฑ์ฐ์ฐ์๋ฅผ ์ด์ฉํด null ๊ฐ์ธ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ณ ์ถ์ผ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์๋์จ๋ค.
NULL์ 0๊ณผ ๋ฌ๋ผ์, ์์ ๊ฐ์ ๊ฐ์ง์ง ์์๊ธฐ ๋๋ฌธ์ ์ฐ์ฐ์ด ๋ถ๊ฐ๋ฅํ๋ค!
๋ฐ๋ผ์ DECODE๊ฐ ์๋ CASE ํจ์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
๐๐
2. ๋ถ์ ํ ์ด๋ธ์์ ๋ถ์ ์์น๋ฅผ ๋ฏธ๊ตญ์ ๋๋ถ, ์ค๋ถ, ์๋ถ๋ก ๊ตฌ๋ถํ์ฌ ์ถ๋ ฅํด๋ณด๊ธฐ
๐ NEXT : SQL ๋ค์ค ํ ํจ์-๊ทธ๋ฃนํจ์ ๊ณต๋ถํ๊ธฐ
๋ฐ์ํ'DATABASE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL - Join, ์๋ธ์ฟผ๋ฆฌ (0) 2020.07.21 SQL - ๊ทธ๋ฃนํจ์, GROUP BY์ , HAVING์ (0) 2020.07.20 SQL-SELECT๋ฌธ ์ดํด๋ณด๊ธฐ (0) 2020.07.18 ์ค์ตํ๊ฒฝ ์ค๋น - ์๋ฐJDK, ์ค๋ผํด, SQL developer ์ค์นํ๊ธฐ (0) 2020.07.17 ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ (0) 2020.07.16