๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ(62)
-
JOIN์ ์ ๋ง ๋๋ฆฐ๊ฐ (์ญ์ ๊ทํ)
Q. ์ญ์ ๊ทํ๋ฅผ ์ํํ๋ ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ์? A. ํ ์ด๋ธ์ด ์ชผ๊ฐ์ ธ ์กฐ์ธ ์ฐ์ฐ์ด ์ฟผ๋ฆฌ ๋ด ํฌํจ๋๋ฉด ์ฑ๋ฅ์ด ์์ข์์ง๊ธฐ ๋๋ฌธ์, ์กฐํ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด์ ์ญ์ ๊ทํ๋ฅผ ๊ณ ๋ คํ ์ ์์ต๋๋ค. ์ต๊ทผ ๋ฉด์ ์คํฐ๋ ์ค, ์ญ์ ๊ทํ์ ๋ํด ์ด์ผ๊ธฐ๋ฅผ ํ๋ค๊ฐ ๋์จ ๋ฌธ๋ต์ด๋ค. ์ง๋ฌธ์ ๋ด๊ฐ, ๋ต๋ณ์ ์คํฐ๋์์ด ํด์ฃผ์ จ๋๋ฐ ๋ง์ฝ ์๋ก ์ ์ฅ์ด ๋ฐ๋์์ด๋ ๋๊ฐ์ด ๋๋ตํ์ ๊ฒ ๊ฐ๋ค. Database๋ฅผ ๊ณต๋ถํ๋ฉด์, ํน์ ๊ฐ๋ฐ์ ์งํํ๋ฉด์ ํต๋ ์ฒ๋ผ ๋ฐ์๋ค์ด๊ฒ ๋๋ ๋ง์ด ๋ฐ๋ก ์กฐ์ธ์ ๋๋ฆฌ๋ค.์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ต๊ทผ์ ๋ค์ด์๋ Database์ ๋ํด ๋ ๊น๊ฒ ๊ณต๋ถํ ์ผ๋ค์ด ์๊ธฐ๋ฉด์ ์ด์ ์๋ฌธ์ด ์๊ฒผ๋ค. ์กฐ์ธ์ด ๋ง์ฝ ์ง์ง ๋๋ฆฐ๊ฑฐ๋ผ๋ฉด, ์ ๊ทธ๋ฐ๊ฑด๋ฐ? ๋ณดํต ์ด๋ ๊ฒ ๊น์ง ๋ฌผ์ด๋ณด๋ฉด ํ ์ด๋ธ ์ฌ๋ฌ๊ฐ๋ฅผ ๋ด์ผํ๋๊น.๋ผ๊ณ ๋ต๋ณ์ด ๋์์ค๋๋ฐ ์ด๋ฐ ๋๋ต์ ๋ด๊ฐ ์ํ๋ ..
2024.01.07 -
JOIN - ๋ฉด์ ๋๋น
2024.01.03 ์ผ์๋ก ์งํ ์์ ์ธ ๋ฉด์ ์คํฐ๋ ์ค๋น์ ์ผํ์ผ๋ก, ๋ฐฐ์ ๋ ํํธ์ธ JOIN์ ๋ํด ์ ๋ฆฌ ํ์ ์ด๋ฅผ ํ ๋๋ก ๋์ถํด๋ณผ๋งํ ์ง๋ฌธ๋ค์ ์์ฑํ๊ฒ ์ต๋๋ค. ์กฐ์ธ์ด๋? ์กฐ์ธ์ด๋ RDB์์ ์ฌ๋ฌ ํ ์ด๋ธ์ ๊ฑธ์ณ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ค์ ํจ๊ป ์กฐํํ๊ธฐ ์ํด ํ ์ด๋ธ์ ๊ฒฐํฉํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ์กฐ์ธ ์ ๋จผ์ ์ ๊ทผํ๊ฒ ๋๋ ํ ์ด๋ธ์ ๋๋ผ์ด๋น ํ ์ด๋ธ์ด๋ผ๊ณ ํ๊ณ , ๋๋ผ์ด๋น์ ํน์ ์นผ๋ผ ๊ฐ์ ์ด์ฉํ์ฌ ๋ค์ ์กฐํ๋๋ ํ ์ด๋ธ์ ๋๋ฆฌ๋ธ ํ ์ด๋ธ์ด๋ผ๊ณ ํ๋ค. ์กฐ์ธ์ ์ข ๋ฅ์๋ INNER JOIN, OUTER JOIN, CROSS JOIN, SELF JOIN ๋ฑ์ด ์๋ค. ์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ ์กฐ์ธ ์๊ณ ๋ฆฌ์ฆ์๋ NL ์กฐ์ธ(Nested Loop), ์ํธ ๋จธ์ง ์กฐ์ธ(Sort merge), ํด์ ์กฐ์ธ(Hash) ๋ฑ์ด ์๋ค. NL ์กฐ์ธ NL ์กฐ์ธ์ด๋..
2024.01.02 -
์ด์ ํ์, ์ ๊ทํ - ๋ฉด์ ๋๋น
2024.01.03 ์ผ์๋ก ์งํ ์์ ์ธ ๋ฉด์ ์คํฐ๋ ์ค๋น์ ์ผํ์ผ๋ก, ๋ฐฐ์ ๋ ํํธ์ธ ์ด์ ํ์, ์ ๊ทํ์ ๋ํ ์ ๋ฆฌ ํ์ ์ด๋ฅผ ํ ๋๋ก ๋์ถํด๋ณผ๋งํ ์ง๋ฌธ๋ค์ ์์ฑํ๊ฒ ์ต๋๋ค. ์ด์ ํ์ ์ด์ ํ์์ด๋ ์๋ชป๋ ํ ์ด๋ธ ์ค๊ณ๋ก ์ธํด ๋ฐ์ํ ์ ์๋ ํ ์ด๋ธ ๋ ๋ฒจ์ ๋ฌธ์ ์ ๋ค์ ์๋ฏธํ๋ค. ์ด์ ํ์์์๋ ์ฝ์ ์ด์, ์์ ์ด์, ์ญ์ ์ด์์ด ์กด์ฌํ๋ค. ์ด์ ํ์์ ํด๊ฒฐํ๊ธฐ ์ํด, ์ ๊ทํ๋ผ๋ ๊ฐ๋ ์ด ์กด์ฌํ๋ค. ์ด์ ํ์๋ค์ ์ค๋ช ํ๊ธฐ ์ํด ์์๋ก ์๋ ํ ์ด๋ธ์ด ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ์. ์ด ๋ ์๋ชป๋ ํ ์ด๋ธ ์ค๊ณ๋ก ์ธํด ํ๊ณผ ํ ์ด๋ธ์ด ๋ฐ๋ก ์กด์ฌํ์ง ์๋ ์ํฉ์ผ๋ก ๊ฐ์ ํ์. ํ๋ฒ(PK) ์ด๋ฆ ํ๊ณผ ํ๊ณผ ์ฌ๋ฌด์ค xxxxxxx ๊น์ฒ ์ ์ปดํจํฐ ๊ณตํ๊ณผ ๊ณต๊ณผ ๋ํ 401ํธ xxxxxxx ํ๊ธธ๋ ์ํ๊ณผ ์์ฐ ๋ํ 201ํธ xxxxxxx ๋ฐ..
2024.01.01 -
๋ณตํฉ ์ธ๋ฑ์ค ํ์ฉ ๊ฒฝ์ฐ์ ์
๋ค์ํ ๋ฐ์ดํฐ์ ์ ๊ทผ ํํ์ ์ผ์ผ์ด ๋์ํ์ฌ ์ธ๋ฑ์ค๋ฅผ ๋ง์ด ๋ง๋ค ์ ์๋ ํ๊ฒฝ์ด๋ผ๋ฉด ์ธ๋ฑ์ค ์์ฑ์ ์์ด ๊ณ ๋ฏผ์ ์ฌ์ง๊ฐ ์ ๊ฒ ์ง๋ง, ์์ฝ๊ฒ๋ ์ธ๋ฑ์ค๊ฐ ๋ง์์ง๋ฉด ๋ง์์ง์๋ก ๊ทธ์ ๋ฐ๋ฅธ ์ฌ์ด๋ ์ดํํธ(DML ์ฑ๋ฅ ์ ํ, ์ ์ฅ ๊ณต๊ฐ ์ฐจ์ง)๊ฐ ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ์ ์ ์์ ์ธ๋ฑ์ค๋ฅผ ์ ์งํ๋ ๋์์ ๋ค์ํ ๋ฐ์ดํฐ ์ ๊ทผ ํํ์ ๋ํด ์ธ๋ฑ์ค ์ค์บ์ ์ง์ํ๋ ๊ฒ์ ์ค์ํ๋ค. ์ด๋ฅผ ์ํด์๋ ๋ณตํฉ ์ธ๋ฑ์ค ๊ธฐ๋ฐ์ผ๋ก ํ๋์ ์ธ๋ฑ์ค๊ฐ ์ฌ๋ฌ ์ํฉ์ ์ปค๋ฒํ ์ ์๋๋ก ํ ์ด๋ธ ์ค๊ณ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค. ํด๋น ๊ธ์์๋ ์ด๋ฅผ ๋๊ธฐ ์ํด ๋ณตํฉ ์ธ๋ฑ์ค๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ์๋ํ๋์ง ์์๋ณด๊ณ , ๋ณตํฉ ์ธ๋ฑ์ค๊ฐ ์๋ํ๋ ๊ฒฝ์ฐ์ ์์ ๋ํด ๋ค๋ค๋ณด๋ ค๊ณ ํ๋ค. ์ด ๊ธ์ Mysql ๊ธฐ์ค์ผ๋ก ์์ฑ๋์๋ค. ๋ณตํฉ ์ธ๋ฑ์ค ์๋ ๋ฐฉ์ ๋ณตํฉ ์ธ๋ฑ์ค๋ ๋ ์ด์์ ์นผ๋ผ์ ํตํด ..
2023.12.31 -
๋ฉด์ ๋๋น ์ง๋ฌธ ์์ (์ด์์ฒด์ )
23.12.27 ์ผ์๋ก ์งํ๋ ๋ฉด์ ๋๋น ์คํฐ๋์์ ๋์๋ ๋ด์ฉ๋ค์ ์์นด์ด๋นํ๊ธฐ ์ํ ๋ฌธ์์ ๋๋ค. ๋ฌธ์๋ ์คํฐ๋์์ ๋์๋ ์ง๋ฌธ๋ค๊ณผ ์ด์ ๋ํด ์ฌํ ์ ๋ฆฌํ ๋ด์ฉ๋ค์ ์ด๊ฑฐํ๋ ์์ผ๋ก ์์ฑํ๊ฒ ์ต๋๋ค. ์ด์์ฒด์ 1. ์ด์์ฒด์ ๋? > ๋ต๋ณ ์ด์์ฒด์ ๋ ํ๋์จ์ด์ ์ฌ์ฉ์ ์ฌ์ด์ ์์นํ์ฌ ์ฌ์ฉ์๋ก ํ์ฌ๊ธ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์ถ์ํํ๊ณ , ์ ์ ํ ์ค์ผ์ค๋ง์ ํตํด ์ฌ์ฉ์๋ก ํ์ฌ๊ธ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ฒ๋ฆฌ๋๋ ๊ฒ์ฒ๋ผ ๋๋ผ๊ฒํ๋ฉฐ, ์ปดํจํ ๋ฆฌ์์ค์ ๋ํ ํจ์จ์ ์ธ ๊ด๋ฆฌ๋ฅผ ์ํํ๋ ์ผ์ข ์ ์ํํธ์จ์ด์ด๋ค. ์ด์์ฒด์ ๋ฅผ ๊ตฌ์ฑํ๋ ์์๋ก๋ ์ด์์ฒด์ ์ ํต์ฌ์ผ๋ก ๋ณผ ์ ์๋ ์ปค๋๊ณผ ์, ์์คํ ์ฝ๊ณผ ๊ฐ์ ์ธํฐํ์ด์ค ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋์ด์๋ค. 2. ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ํ๋์จ์ด > ๋ต๋ณ ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ํ๋์จ์ด๋ก๋ ๋์คํฌ(..
2023.12.27 -
๋ฑํธ ์ฐ์ฐ์์ LIKE ์ฐ์ฐ์ ๊ฐ ๋น๊ต
์ผ๋ง ์ SQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ค๊ฐ ๋ฌธ๋ ๋ฌธ์์ด ์นผ๋ผ์ ํผ์ผํธ(%) ๊ธฐํธ์์ด LIKE๋ฅผ ์ฐ๋ ๊ฒ๊ณผ ๊ณง๋ฐ๋ก ๋ฑํธ ์ฐ์ฐ์๋ฅผ ์ฐ๋ ๊ฒ์ ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง ์๋ฌธ์ด ์๊ฒผ๋ค. ๋ค๋ง ์ด๋ฅผ ๊ณง๋ฐ๋ก ํด๊ฒฐํ์ง ์์๋ค๊ฐ ์๊ณ ์์๋๋ฐ, ์คํฐ๋๋ฅผ ์ํด ์ฑ ์ ์ฝ๋ค๊ฐ LIKE ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋์ ๋ฑํธ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋ ๋ด๋ถ์ ์ธ ์๋ ๋ฐฉ์์ด ์ฐจ์ด๊ฐ ์๋ ๊ฒ์ผ๋ก ์๊ฐ๋์ด ์ด๋ฅผ ์ ๋ฆฌํ๊ณ ์ ์ด ๊ธ์ ์์ฑํ๋ค. ํด๋น ๋ฌธ์๋ Mysql์ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ค๋ฅธ DB์ ๊ฒฝ์ฐ ๋ค๋ฅด๊ฒ ์๋ํ ์ฌ์ง๊ฐ ์์ต๋๋ค. LIKE vs Equal(=) LIKE๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์์ผ๋์นด๋์ ๋์์ ๋ฐ์์ ๋ ์์ ๋ก์ด ๋ฐฉ์์ ๋ฌธ์์ด ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ถ๋ถ์ด ์๋ ์ฌ์ค์ด๋ ๋์ด๊ฐ๋๋ก ํ์. (Equal์์๋ ์์ผ๋์นด๋๋ค๋ ์ ๋ถ ๋น๊ต ๋ฌธ์์ด์ ์ผ๋ถ๋ก..
2023.12.17