๐ MOD (NUMBER1,NUMBER2)
: ๋๋๊ธฐ ์ฐ์ฐ์ ํ ํ์ ๊ตฌํ ๋๋จธ์ง๋ฅผ ๋ฐํํ๋ ํจ์
(์ซ์๋ฐ์ดํฐ ํ์ ์ด๊ฑฐ๋, ์ซ์ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ๋ณํ ๊ฐ๋ฅํ ๋ชจ๋ ํ์ ๊ฐ๋ฅ)
๐ Java์์์ % ์ฐ์ฐ์์ ๋์ผํ ์ญํ
๐กMOD() ์ฌ์ฉ๋ฒ
SELECT MOD(5,2) FROM DUAL
--> ๊ฒฐ๊ณผ๊ฐ: 1
๐ REMAINDER (NUMBER1, NUMBER2)
: ๋๋๊ธฐ ์ฐ์ฐ์ ํ ํ์ ๊ตฌํ ๋๋จธ์ง๋ฅผ ๋ฐํํ๋ ํจ์
(์ซ์ ๋ฐ์ดํฐ ํ์ ๊ฐ๋ฅ)
๐ก REMAINDER() ์ฌ์ฉ๋ฒ
SELECT REMAINDER(5,2) FOR DUAL
--> ๊ฒฐ๊ณผ๊ฐ : 1
๐ก MOD() ์ REMAINDER()์ ์ฐจ์ด
โ MOD()๋ ๋๋จธ์ง ๊ณ์ฐ์ FLOORํจ์๋ฅผ ์ฌ์ฉ
MOD(NUM2,NUM1)
NUM2 – NUM1 * FLOOR (NUM2 / NUM1)
โ REMAINDER()์ ๋๋จธ์ง ๊ณ์ฐ์ ROUND ํจ์๋ฅผ ์ฌ์ฉ
REMAINDER(NUM2,NUM1)
NUM2 - (NUM1 * ROUND (NUM2 / NUM1))
๐ ROUND : ๋ฐ์ฌ๋ฆผ, FLOOR : ๋ด๋ฆผ
โ ์์ ๊ณ์ฐ ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์์
๐ ๋ ์ง ํจ์
๐กSYSDATE
โ ์ค๋ ๋ ์ง ๊ตฌํ๊ธฐ
SELECT SYSDATE FROM DUAL;
--> ํ์ฌ ๋ ์ง, ์๋ถ์ด๋ฅผ ์ถ๋ ฅ (YYYY-MM-DD HH24:MI:SS)
โ ์ํ๋ ํ์์ผ๋ก ๋ ์ง ๊ตฌํ๊ธฐ
SELECT TO_CHAR(SYSDATE,'YYYY'), --> 2022
TO_CHAR(SYSDATE,'MM'), --> 11
TO_CHAR(SYSDATE,'DD'), --> 17
TO_CHAR(SYSDATE,'HH24'), --> 22
TO_CHAR(SYSDATE,'MI'), --> 16
TO_CHAR(SYSDATE,'SS'), --> 29
TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS') --> 20221117221629
FROM DUAL;
โ ์ํ๋ ๋ ์ง ๊ตฌํ๊ธฐ
SYSDATE์ ์ ์ ๊ฐ์ ์ฆ๊ฐํ๋ฉด ์ผ ๋จ์๋ก ์ฐ์ฐํด์ ๋ฐํํ๋ค.
SELECT SYSDATE-1 FROM DUAL; --> ์ด์
SELECT SYSDATE+1 FROM DUAL; --> ๋ด์ผ
๐ NOTE
์ / ๋ถ / ์ด ๋จ์๋ก ์ฆ๊ฐ์ํค๊ณ ์ถ์ ๋๋ 24์๊ฐ๊ณผ 60๋ถ, 60์ด๋ฅผ ์ ์ ํ ์ฌ์ฉํ๋ฉด ๋๋ค.
1์ผ = 24์๊ฐ
SYSDATE + (5/24) --> 5์๊ฐ ์ฆ๊ฐ (ํ๋ฃจ๋ฅผ 24์๊ฐ์ผ๋ก ๋๋๊ฒ์ 5๋งํผ => 5์๊ฐ)
SYSDATE + 5/(24*60) --> 5๋ถ ์ฆ๊ฐ
SYSDATE + 5/(24*60*60) --> 5์ด ์ฆ๊ฐ
๐กADD_MONTHS (DATE, INTEGER)
: ๋ ์ง์ ํน์ ๊ฐ์ ์๋ฅผ ๋ํ ๋ ์ง๋ฅผ ๋ฐํํ๋ ํจ์
๐จ ์ค๋ ๋ ์ง๊ฐ 31์ผ์ธ๋ฐ ์ ๋ฌ์๋ 31์ผ์ด ์์ ๊ฒฝ์ฐ, ๊ทธ ๋ฌ์ ๋ง์ง๋ง ์ผ์ ๋ฆฌํดํจ
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-1),'YYYYMMDD') FROM DUAL; --> ํ๋ฌ์
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-12),'YYYYMMDD') FROM DUAL; --> ์ผ๋
์
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,+1),'YYYYMMDD') FROM DUAL; --> ํ๋ฌํ
SELECT TO_CHAR(ADD_MONTHS(SYSDATE,+12),'YYYYMMDD') FROM DUAL; --> ์ผ๋
ํ
๐กMONTHS_BETWEEN (DATE1,DATE2)
: ๋ ์ง์ ๋ ์ง ์ฌ์ด์ ๊ฐ์ ์๋ฅผ ๊ตฌํ๋ ํจ์
๐จ DATE1๊ณผ DATE2๊ฐ ๊ฐ์ ๋ ์ง์ด๊ฑฐ๋ ์์ ๋ง์ง๋ง ๋ ์ง์ธ ๊ฒฝ์ฐ ์ ์๋ฅผ ๋ฐํํ์ง๋ง,
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์์๋ฅผ ๋ฐํํ๋ค.
SELECT MONTHS_BETWEEN
(TO_DATE('1995-02-02','YYYY-MM-DD'),
(TO_DATE('1995-01-01','YYYY-MM-DD'))
FROM DUAL;
--> 1.03225806
SELECT TRUNC(MONTHS_BETWEEN
(TO_DATE('1995-02-02','YYYY-MM-DD'),
(TO_DATE('1995-01-01','YYYY-MM-DD')))
FROM DUAL;
--> 1
๐กLAST_DAY (date)
: ์ ๋ ฅํ ๋ ์ง์ ๋ง์ง๋ง ๋ ์ง๋ฅผ ๋ฐํํ๋ ํจ์
SELECT LAST_DAY(TO_DATE('20221117','YYYYMMDD')) FROM DUAL;
--> 2022-11-30 00:00:00
๐กNEXT_DAY(DATE,INT ๋๋ '์์ผ')
: ๋์์ค๋ ์์ผ์ ๋ ์ง๋ฅผ ๊ณ์ฐํด์ฃผ๋ ํจ์
DATE: ๊ธฐ์ค์ด ๋๋ ๋ ์ง
INT : ์ผ์์ผ : 1, ์์์ผ : 2, ํ์์ผ : 3, ์์์ผ : 4, ๋ชฉ์์ผ : 5, ๊ธ์์ผ : 6, ํ ์์ผ : 7
'์์ผ' : '์์์ผ', 'ํ์์ผ', 'SUN','MON', ...
SELECT TO_CHAR(NEXT_DAY(SYSDATE, 'FRIDAY'), 'YYYY-MM-DD') --> 2022-11-18
, TO_CHAR(NEXT_DAY(SYSDATE, 6), 'YYYY-MM-DD') --> 2022-11-18
FROM DUAL;
๐ ๋ฌธ์์ด ํฉ์น๊ธฐ
๐กCONCAT (๋ฌธ์์ด1, ๋ฌธ์์ด2)
: ๋ฌธ์์ด์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ํจ์
๐ ์ปฌ๋ผ๋ ๊ฐ๋ฅ, ์๋ ํ๋ณํ
SELECT CONCAT('์๋
','ํ์ธ์') FROM DUAL; --> ์๋
ํ์ธ์
๐ก|| ์ฐ์ฐ์
: ๋ฌธ์์ด์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ์ฐ์ฐ์
-> ์งง๊ณ ๊ฐ๋จํ๋ฉฐ CONCAT๋ณด๋ค ๊ฐ๋ ์ฑ์ด ๋ ์ข์ ์ ์์ (์ค๋ฌด์์ ๋ ์์ฃผ ์ฐ์ด๋ ํธ)
SELECT '์๋
'||'ํ์ธ์' FROM DUAL; --> ์๋
ํ์ธ์
๐กCONCAT()๊ณผ || ์ ์ฐจ์ด์
1๏ธโฃCONCAT() ์ ํจ์์ด๋ฉฐ, ||์ ์ฐ์ฐ์ ์ด๋ฏ๋ก ์ฐ์ ์์๊ฐ ๋ค๋ฆ
์ฐ์ฐ์๊ฐ ํจ์๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ ๋๊ธฐ ๋๋ฌธ์ || ์ฐ์ฐ์๊ฐ CONCATํจ์๋ณด๋ค ์ข ๋ ๋นจ๋ฆฌ ๋์ํจ
(์ค๋ผํด ๊ธฐ์ค, ์๋๋ || ๊ฐ ๋ ๋น ๋ฅธ๋ฐ, ์ฑ๋ฅ์ผ๋ก๋ CONCAT์ด ๋ ์ข์ ํธ)
2๏ธโฃ CONCAT() ์ ์๋์ผ๋ก ํ๋ณํ์ ํด์ค
๐ SUBSTR (๋ฌธ์์ด,์์์์น,๊ธธ์ด)
: ๋ฌธ์ ๋จ์๋ก ์์์์น์ ์๋ฅผ ๊ธธ์ด๋ฅผ ์ง์ ํ์ฌ ๋ฌธ์์ด์ ์๋ฆ
๐จ์์ ์์น๊ฐ ์์๋ฉด ์ข์ธก์์๋ถํฐ ์ธ๋ฑ์ค ์์
๐จ์์ ์์น๊ฐ ์์๋ฉด ์ฐ์ธก์์๋ถํฐ ์ธ๋ฑ์ค ์์
SELECT SUBSTR('DATABASE',2) FROM DUAL --> ATABASE
SELECT SUBSTR('DATABASE',2,4) FROM DUAL --> ATAB
SELECT SUBSTR('DATABASE',-3) FROM DUAL --> ASE
SELECT SUBSTR('DATABASE',-3,2) FROM DUAL --> BA
๐ ์งํฉ ์ฐ์ฐ์
: ์ฌ๋ฌ๊ฐ์ SELECT ๊ฒฐ๊ณผ๋ฌผ์ ํ๋์ ์ฟผ๋ฆฌ๋ก ๋ง๋๋ ์ฐ์ฐ์
๐จ ๊ฐ ์ฟผ๋ฆฌ๋ฌธ์ ์ปฌ๋ผ ๊ฐ์๊ฐ ๋ง์์ผํ๊ณ ๋ฐ์ดํฐํ์ด ๋์ผํด์ผํจ
๐กUNION
: ํฉ์งํฉ (์ค๋ณต๊ฐ ์ ์ธ)
SELECT ์ปฌ๋ผ1 FROM ํ
์ด๋ธ1
UNION
SELECT ์ปฌ๋ผ2 FROM ํ
์ด๋ธ2;
๐กUNION ALL
: ํฉ์งํฉ (์ค๋ณต๊ฐ ํฌํจ)
SELECT ์ปฌ๋ผ1 FROM ํ
์ด๋ธ1
UNION ALL
SELECT ์ปฌ๋ผ2 FROM ํ
์ด๋ธ2;
๐กINTERSECT
: ๊ต์งํฉ
SELECT ์ปฌ๋ผ1 FROM ํ
์ด๋ธ1
INTERSECT
SELECT ์ปฌ๋ผ2 FROM ํ
์ด๋ธ2;
๐กMINUS
: ์ฐจ์งํฉ
๐จ ์ ํ์ฟผ๋ฆฌ - ํํ์ฟผ๋ฆฌ
SELECT ์ปฌ๋ผ1 FROM ํ
์ด๋ธ1
MINUS
SELECT ์ปฌ๋ผ2 FROM ํ
์ด๋ธ2;
'ORACLE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#35 [ORACLE] LIKE, ์์ผ๋ ๋ฌธ์ (2) | 2022.11.21 |
---|---|
#34 [ORACLE] OUTER JOIN, NVL, NVL2, IN, COALESCE (3) | 2022.11.18 |
#32 [ORACLE] ์ง๊ณ ํจ์, GROUP BY, DISTINCT, VIEW (0) | 2022.11.16 |
#31 [ORACLE] Cascade (1) | 2022.11.15 |
#30 [ORACLE] Inner Join, Alias (0) | 2022.11.14 |
๋๊ธ