์กฐ์ํ๋์ ์น์ ํ SQL ํ๋์ ์ฝ๊ณ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
Between ๊ณผ In ์กฐ๊ฑด์ ์ ์ธ๋ฑ์ค ์ค์บ ๋ฒ์ ๋น๊ตํด๋ณด๊ธฐ

์์ ๊ฐ์ด, DEPTNO ์ JOB ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ค๊ณ ๊ฐ์ ํด๋ณด์.
SELECT
*
FROM
TABLE
WHERE
DEPTNO BETWEEN 10 AND 30
AND
JOB = 'B'
์์ ๊ฐ์ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น?

๋จผ์ , DEPTNO๊ฐ 10์ด๋ฉด์ JOB์ด 'B' ์ธ ๋ ์ฝ๋์์ ํ์์ ์์ํ์ฌ
DEPTNO ๊ฐ 30์ด๋ฉด์ JOB์ด 'B'๊ฐ ์๋๊ฒ ๋๋ ๋ ์ฝ๋ ๊น์ง ํ์ํ ๊ฒ์ด๋ค.
์์ง์ ํ์์ ํ๋ฒ ์ด๋ฃจ์ด์ง์ง๋ง, ์ํ์ ํ์์ด ๋ง์ ๋ ์ฝ๋๋ฅผ ํ์ํ๊ฒ๋๋ค.
๋ฐ๋ฉด์,
SELECT
*
FROM
TABLE
WHERE
DEPTNO IN (10,20,30)
AND
JOB = 'B'
โ ์์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?
๐ก IN ์กฐ๊ฑด์ ์ฌ์ฉํ๋ฉด ์ตํฐ๋ง์ด์ ๋ ์ฟผ๋ฆฌ๋ฅผ ์ฌ๋ฌ๊ฐ๋ก ๋ถ๋ฆฌํ ๋ค, UNION ํ์ฌ ์คํ์ํจ๋ค๊ณ ํ์๋ค.
์๋ํ๋ฉด, OR ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ ์ธ๋ฑ์ค ์ค์บ ์์์ ์ ์ฐพ์ ์ ์์ผ๋ฏ๋ก ์ธ๋ฑ์ค ์ค์บ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์,
SELECT * FROM TABLE WHERE DEPTNO = 10 AND JOB = 'B'
UNION ALL
SELECT * FROM TABLE WHERE DEPTNO = 20 AND JOB = 'B'
UNION ALL
SELECT * FROM TABLE WHERE DEPTNO = 30 AND JOB = 'B'
์์ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋ฏ์ด, ์คํ๊ณํ์ ์ธ์ด๋ค.
๋ฐ๋ผ์, ์ค์บ ๋ฒ์๋

์์ ๊ฐ์ด ์ฒ๋ฆฌํ๊ฒ ๋์ด, ์ธ๋ฑ์ค ์ค์บ ํจ์จ์ ํฅ์์ํฌ ์ ์๊ฒ๋๋ค.
๋ฐ๋ผ์, ์ธ๋ชจ์๋ ๋ ์ฝ๋๋ฅผ ์ฝ๋ ๋นํจ์จ์ ํผํ ์ ์๊ฒ๋๋ค.
โ ๊ทธ๋ ๋ค๋ฉด, BETWEEN ์ IN ์กฐ๊ฑด์ผ๋ก ๋ฐ๊พธ๋ฉด ํญ์ ํจ์จ์ ์ผ๊น?
๐จ ๊ทธ๋ ์ง ์๋ค.
๋ง์ฝ, IN ์ ๋ค์ด๊ฐ๋ ํ๋ผ๋ฏธํฐ๊ฐ ๋๋ฌด ๋ง์์ง๋ฉด, ์์ง์ ํ์์ด ๋์ฑ ๋ง์์ง๋ค.
๋ฐ๋ผ์, ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ ์ฝ๋๊ฐ ์๋ก ๋ง์ด ๋จ์ด์ ธ ์๋ ๊ฒฝ์ฐ๋
์ค๊ฐ์ ํ์์๋ ๋ ์ฝ๋๋ค์ ์๋ตํ๊ณ ์์ง์ ํ์์ผ๋ก ์ด๋ํ๋๊ฒ ํจ์จ์ ์ด์ง๋ง
๋ ๋ ์ฝ๋ ๊ฐ ์ฌ์ด๊ฐ ๊ฐ๊น๋ค๋ฉด, IN ๋ฐฉ๋ฒ์ด ๋ ๋นํจ์จ์ ์ผ ์ ์๋ค.
๐ก ๋ฐ๋ผ์, ๋ฐ์ดํฐ ๋ถํฌ๋ ์์ง์ ํ์ ๋น์ฉ์ ๋ฐ์ ธ๋ณด๊ณ ๊ฒฐ์ ํด์ผํ๋ค.
โ๐ป in ์กฐ๊ฑด์ ์ ์ฌ์ฉํ๋๋ฐ ์ธ๋ฑ์ค๊ฐ ์ฌ๋ฌ๊ฐ์ด๊ณ , ์ํ๋ ์ธ๋ฑ์ค๊น์ง ์์ธ์ค ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ธ๋ฑ์ค ํํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
num_index_keys ( table index num ) : num๋ฒ์งธ ์ธ๋ฑ์ค๊น์ง ์ธ๋ฑ์ค ์์ธ์ค ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉํ๋ค.
๊ทธ ์ดํ, ์ธ๋ฑ์ค๋ ํํฐ ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉ๋๊ฒ๋๋ค.
๐ก ์ฆ, ์ธ๋ฑ์ค ์์ธ์ค ์กฐ๊ฑด์ผ๋ก ์ฌ์ฉ๋๋ ์ธ๋ฑ์ค๋ ์์ง์ ํ์์ ํ๋ค๋ ์๋ฏธ์ด๋ค.
๋ฐ๋ผ์, in ์กฐ๊ฑด์ ์ ์ฌ์ฉํ ๋,
in ์ ์ด์ฉ๋๋ ํ๋ผ๋ฏธํฐ ๋น๊ต ๋์์ด ๋ง๊ฑฐ๋ ์ ๋ ์ธ๋ฑ์ค ๊ฐ ๊ฑฐ๋ฆฌ๊ฐ ํฌ์ง ์์ ๋์๋
ํํฐ ์กฐ๊ฑด์ผ๋ก ์ํ ํ์ํ๋๊ฒ ํจ์จ์ ์ด๋ฏ๋ก ์ธ๋ฑ์ค ์์ธ์ค ์กฐ๊ฑด์ ์ ํ์ ๋๋ ๊ฒ์ด ํจ์จ์ ์ผ ์ ์๋ค.