SQL๋ฌธ์ ISO/ANSI์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ค ์ธ์ด๋ก ์ง์ ๋ ํ SQL-92๋ฅผ ๊ฑฐ์ณ SQL-99 ํ์ค ๋ฌธ๋ฒ์ด ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋ผํด์ SQL-99๋ฐฉ์์ ๋ฌธ๋ฒ์ ์ง์ํฉ๋๋ค. SQL-99 ๋ฌธ๋ฒ ์ค ์กฐ์ธ์, ์ด์ ํฌ์คํ
์์ ๋ฐฐ์ด ๋ฐฉ์๊ณผ ๊ธฐ๋ฅ์ ๊ฐ์ผ๋ ๋ฌธ๋ฒ์์ ์กฐ๊ธ ์ฐจ์ด๊ฐ ์์ต๋๋ค. SQL-99 ๋ฌธ๋ฒ์ ๋ค๋ฅธ DBMS ์ ํ์์๋ ์ฌ์ฉํ ์ ์๊ธฐ์ ์์๋๋ฉด ๋์์ด ๋ ๊ฒ์
๋๋ค. NATURAL JOIN ๋ฑ๊ฐ ์กฐ์ธ(equi join)์ ๋์ ํด ์ฌ์ฉํ ์ ์๋ ์กฐ์ธ ๋ฐฉ์์ผ๋ก, ์กฐ์ธ ๋์์ด ๋๋ ๋ ํ
์ด๋ธ์ ์ด๋ฆ๊ณผ ์๋ฃํ์ด ๊ฐ์ ์ด์ ์ฐพ์ ํ ๊ทธ ์ด์ ๊ธฐ์ค์ผ๋ก ๋ฑ๊ฐ ์กฐ์ธ์ ํด ์ฃผ๋ ๋ฐฉ์์
๋๋ค. SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E>HIREDATE, E.SAL, E.COMM,..
๐พ DataBase/Oracle DB
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฌ๋ฌ ์ข
๋ฅ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ํ ํ
์ด๋ธ์ ๋๋์ด ์ ์ฅ๋๋ ํน์ฑ์ด ์์ต๋๋ค. ๊ทธ๋์ ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ ์
๋ฌด์ ์ฌ์ฉํ๋ SQL๋ฌธ์ ๋๋ถ๋ถ ๋จ์ผ ํ
์ด๋ธ์ ์กฐํ๋ณด๋ค ์ฌ๋ฌ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํฉํฉํ์ฌ ์ถ๋ ฅํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ ๊ฒ ์ฌ๋ฌ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์กฐํฉํ๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํด ์ฃผ๋ ์กฐํ๋ฐฉ์์ด ๋ฐ๋ก ์กฐ์ธ์
๋๋ค. ์งํฉ ์ฐ์ฐ์์์ ์ฐจ์ด์ ์กฐ์ธ(join)์ ๋ ๊ฐ ์ด์์ ํ
์ด๋ธ์ ์ฐ๊ฒฐํ์ฌ ํ๋์ ํ
์ด๋ธ์ฒ๋ผ ์ถ๋ ฅํ ๋ ์ฌ์ฉํ๋ ๋ฐฉ์์
๋๋ค. ์งํฉ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒฐ๊ณผ์ ๋น์ทํ๊ฒ ๋๊ปด์ง ์๋ ์์ง๋ง, ์งํฉ ์ฐ์ฐ์์๋ ๋ถ๋ช
ํ ๋ค๋ฆ
๋๋ค. ์งํฉ ์ฐ์ฐ์ : ๋ ๊ฐ ์ด์์ SELECT๋ฌธ์ ๊ฒฐ๊ณผ ๊ฐ์ ์ธ๋ก๋ก ์ฐ๊ฒฐํ ๊ฒ (Row๊ฐ ์ถ๊ฐ) ์กฐ์ธ : ๋ ๊ฐ ์ด์์ ํ
์ด๋ธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ก๋ก ์ฐ๊ฒฐํ ๊ฒ (Column..
๋ค์คํ ํจ์๋ ์ง์ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ์ฌ ํ๋์ ๊ฒฐ๊ณผ ๊ฐ๋ง ์ถ๋ ฅํฉ๋๋ค. ๊ทธ๋ ๊ธฐ์ ๋ถ์๋ฅผ ์๋ฏธํ๋ ๋ถ์ ๋ฒํธ(DEPTNO)์ ๊ฐ๋ณ๋ก ๊ธ์ฌ์ ํ๊ท ๊ฐ์ ๊ตฌํ๋ ค๋ฉด ๊ฐ ๋ถ์ ํ๊ท ๊ฐ์ ๊ตฌํ๊ธฐ ์ํด SELECT ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ฌ๋ฒ ์ฌ์ฉํด์ผ ํฉ๋๋ค. SELECT AVG(SAL) FROM EMP WHERE DEPTNO = 10; UNION ALL SELECT AVG(SAL) FROM EMP WHERE DEPTNO = 20; UNION ALL SELECT AVG(SAL) FROM EMP WHERE DEPTNO = 30; (๊ฒฐ๊ณผ ๊ฐ์ ํ๋๋ก ํตํฉํ๊ธฐ ์ํด ์งํฉ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ต๋๋ค.) ํ์ง๋ง ์์ ๊ฐ์ ๋ฐฉ์์ ์ดํ ํน์ ๋ถ์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋๋ง๋ค SQL๋ฌธ์ ์์ ํด์ผ ํ๋ฏ๋ก ๋ฐ๋์งํ์ง ์์ต๋๋ค. GROUP..
๊ทธ๋ฃน ํจ์ ๋๋ ๋ณต์ํ ํจ์๋ก๋ ๋ถ๋ฆฌ๋ ๋ค์คํ ํจ์๋ ์ฌ๋ฌ ํ์ ๋ฐํ์ผ๋ก ํ๋์ ๊ฒฐ๊ณผ ๊ฐ์ ๋์ถํด ๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ํจ์์
๋๋ค. SUM ๋ฐ์ดํฐ์ ํฉ๊ณ๋ฅผ ๊ตฌํ๋ ๋ฐ ์ฌ์ฉํ๋ ํจ์์
๋๋ค. ๊ธฐ๋ณธ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. SUM( [DISTINCT, ALL ์ค ํ๋๋ฅผ ์ ํํ๊ฑฐ๋, ์๋ฌด๊ฒ๋ ์ง์ ํ์ง ์์(์ง์ ํ๋ ์์ ๊ฒฝ์ฐ ALL) ] [ํฉ๊ณ๋ฅผ ๊ตฌํ ์ด์ด๋ ์ฐ์ฐ์, ํจ์๋ฅผ ์ฌ์ฉํ ๋ฐ์ดํฐ(ํ์) ]) OVER (๋ถ์์ ์ํ ์ฌ๋ฌ ๋ฌธ๋ฒ ์ง์ )(์ ํ) (OVER๋ ์ฑ
์์ ๋ค๋ฃจ์ง ์์,,, ์ ๋ ๋์ค์ ๋ค๋ฃจ๋ ค ํฉ๋๋ค..! ์ฐ์ ์ ๋งจ ์๋ ์ฐธ๊ณ ๋งํฌ๋ฅผ ๋ฌ์๋์์ผ๋, ๊ถ๊ธํ์๋ฉด ์ฐธ๊ณ ํ์ธ์ฉ) ์ฌ์ฉ ์์๋ ์๋์ ๊ฐ์ต๋๋ค. SELECT SUM(DISTINCT SAL), SUM(ALL SAL), SUM(SAL) FROM EMP..
NVL, NVL2 ํจ์๋ ๋ฐ์ดํฐ๊ฐ NULL์ธ ๊ฒฝ์ฐ์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ ์ง ์ ํ๋ ํจ์์
๋๋ค. ํน์ ์ด ๊ฐ์ด๋ ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ๋ผ์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ ์ง ์ ํ ๋๋ DECODE ํจ์ ๋๋ CASE๋ฌธ์ ์ฌ์ฉํฉ๋๋ค. ์ฐ์ DECODEํจ์๋ถํฐ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. DECODE ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ switch๋ฌธ๊ณผ ๋น์ทํฉ๋๋ค. DECODE ํจ์๋ ๊ธฐ์ค์ด ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ์ง์ ํ ํ ํด๋น ๋ฐ์ดํฐ ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ณด๋ด๋ ํจ์์
๋๋ค. DECODE( [๊ฒ์ฌ ๋์์ด ๋ ์ด ํน์ ๋ฐ์ดํฐ, ์ฐ์ฐ์ด๋ ํจ์์ ๊ฒฐ๊ณผ ๋ฑ], [์กฐ๊ฑด1], [๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑด1๊ณผ ์ผ์นํ ๋ ๋ฐํํ ๊ฒฐ๊ณผ], [์กฐ๊ฑด2], [๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑด2์ ์ผ์นํ ๋ ๋ฐํํ ๊ฒฐ๊ณผ], ... [์กฐ๊ฑดn], [๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑดn๊ณผ ์ผ์นํ ๋ ๋ฐํํ ๊ฒฐ๊ณผ], [์ ์กฐ๊ฑด๋ค๊ณผ ..
๋ฐ์ดํฐ์ ๊ฐ์ด NULL์ด๋ผ๋ฉด ์ฐ์ ์ฐ์ฐ์๋ ๋น๊ต ์ฐ์ฐ์๊ฐ ์์ํ ๋๋ก ๋์ํ์ง ์์ต๋๋ค. (์ฐธ๊ณ ) [Oracle DB] WHERE์ ๊ณต๋ถํ๊ธฐ - WHERE์ ๊ณผ ์ฌ๋ฌ ์ฐ์ฐ์ WHERE ์ WHERE์ ์ SELECT๋ฌธ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ํน์ ์กฐ๊ฑด์ ๊ธฐ์ค์ผ๋ก ์ํ๋ ํ์ ์ถ๋ ฅํ๋๋ฐ ์ฌ์ฉํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ์ฐ์ฐ์๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋์ฑ ์ธ๋ฐํ๊ฒ ๋ฐ์ดํฐ ๊ฒ์์ ํ ์ ์๋ค. ์ฐ์ ttl-blog.tistory.com ํ์ง๋ง ํน์ ์ด์ ๋ฐ์ดํฐ๊ฐ NULL์ผ ๊ฒฝ์ฐ์ ์ฐ์ฐ ์ํ์ ์ํด ๋ฐ์ดํฐ๋ฅผ NULL์ด ์๋ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋์ฒดํด ์ฃผ์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ ์ฌ์ฉํ ์ ์๋ ํจ์๋ฅผ ๋ฐฐ์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. NVL NVL ํจ์์ ๊ธฐ๋ณธ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. NVL([NULL์ธ์ง ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ ๋ฐ์ดํฐ ๋๋ ์ด (..
์ง์ ๋ ์๋ฃํ์ ํ์์ ๋ฐ๋ผ ๋ค๋ฅธ ์๋ฃํ์ผ๋ก ๋ณํํด์ฃผ์ด์ผ ํ๋ ๋๊ฐ ์์ต๋๋ค. ๊ทธ๋ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก ํ ๋ณํ ํจ์์
๋๋ค. ์ค๋ผํด์์ ์ ๊ณตํ๋ ํ ๋ณํ ํจ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ข
๋ฅ ์ค๋ช
TO_CHAR ์ซ์ ๋๋ ๋ ์ง ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์ ๋ฐ์ดํฐ๋ก ๋ณํ TO_NUMBER ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ซ์ ๋ฐ์ดํฐ๋ก ๋ณํ TO_DATE ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ ์ง ๋ฐ์ดํฐ๋ก ๋ณํ ํ ๋ณํ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ซ์ ๋ฐ์ดํฐ์ ๋ฌธ์ ๋ฐ์ดํฐ, ๋ฌธ์ ๋ฐ์ดํฐ์ ๋ ์ง ๋ฐ์ดํฐ๊ฐ์ ๋ณํ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ฌธ์๋ฅผ ์ค์ฌ์ผ๋ก ์ซ์ ๋๋ ๋ ์ง ๋ฐ์ดํฐ์ ๋ณํ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด ํต์ฌ์
๋๋ค. TO_CHAR TO_CHAR ํจ์๋ ๋ ์ง, ์ซ์ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์ ๋ฐ์ดํฐ๋ก ๋ณํํด ์ฃผ๋ ํจ์์
๋๋ค. ์ฃผ๋ก ๋ ์ง ๋ฐ์ดํฐ์์ ๋ฌธ์ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๋ฐ ๋ง์ด ์ฌ์ฉํ๋ฉฐ ๋ค์๊ณผ ๊ฐ..
์ฐ์ ํจ์๋ค์ ์์๋ณด๊ธฐ ์ ์ ๋ ์ง ๋ฐ์ดํฐ์ ๋ํ๊ธฐ์ ๋นผ๊ธฐ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค. ์ฐ์ฐ ์ค๋ช
๋ ์ง ๋ฐ์ดํฐ + ์ซ์ ์ซ์๋งํผ์ ์ผ์๋ฅผ ๋ํ ์ดํ์ ๋ ์ง ๋ ์ง ๋ฐ์ดํฐ - ์ซ์ ์ซ์๋งํผ์ ์ผ์๋ฅผ ๋บ ์ด์ ์ ๋ ์ง ๋ ์ง ๋ฐ์ดํฐ - ๋ ์ง ๋ฐ์ดํฐ ๋ ๋ ์ง ๋ฐ์ดํฐ ๊ฐ ์ผ์์ ์ฐจ์ด ๋ ์ง ๋ฐ์ดํฐ + ๋ ์ง ๋ฐ์ดํฐ ์ง์ํ์ง ์์ SYSDATE ๋ณ๋ค๋ฅธ ์
๋ ฅ ๋ฐ์ดํฐ ์์ด, ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๊ฐ ๋์ธ OS์ ํ์ฌ ๋ ์ง์ ์๊ฐ์ ๋ณด์ฌ์ค๋๋ค. ์ฌ์ฉ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. SELECT SYSDATE AS NOW, SYSDATE - 1 AS YESTERDAY, SYSDATE + 1 AS TOMORROW, FROM DUAL; ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. NOW YESTERDAY TOMORROW 2022-01-22 ์ค์ 04:17:34 ..