2023. 2. 21. 11:09ใDB
์งํฉ์ฐ์ฐ์ :
SELECT์
UNION
SELECT์ ;
SELECT ์ฟผ๋ฆฌ๋ฅผ ์ฌ๋ฌ๊ฐ ๋์์ ์คํ.
์ฌ๋ฌ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ด ๋ณด์ฌ์ค.
SELECT์ ์ฌ์ด ์ฌ์ด ์ฌ๋ฌ๋ฒ ์ฐ๊ธฐ ๊ฐ๋ฅ.
SELECT EMPNO, ENAME, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION --์ฟผ๋ฆฌ๋ฌธ ์ฐ๊ฒฐ
SELECT EMPNO, ENAME, DEPTNO
FROM EMP
WHERE DEPTNO = 20;
์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ค๋ณต ๋ฐ์ดํฐ๋ ํ๋ฒ๋ง ์กฐํ
์ค๋ณต๋ ๋ฐ์ดํฐ๋ ๋ชจ๋ ์กฐํํ๋ ค๋ฉด UNION ALL ์ฌ์ฉ
SELECT EMPNO, ENAME, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION ALL
SELECT EMPNO, ENAME, DEPTNO
FROM EMP
WHERE DEPTNO = 10;
์ฟผ๋ฆฌ๋ฌธ์ ์ปฌ๋ผ ๊ฐ์ ๋์ผ, ์ปฌ๋ผ์ ์๋ฃํ ๋์ผ ํด์ผ ํ๋ค.
์๋ ์ฟผ๋ฆฌ๋ฌธ ์ค๋ฅ
SELECT EMPNO, ENAME, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION --์ฟผ๋ฆฌ๋ฌธ ์ฐ๊ฒฐ
SELECT EMPNO, ENAME
FROM EMP
WHERE DEPTNO = 20;
SAL์ ์๋ฃํ์ด ๊ฐ๊ธฐ ๋๋ฌธ์ ์กฐํ๋จ
๊ผญ ๊ฐ์ ์ปฌ๋ผ๋ช ์ผ๋ก ๋ง์ถ์ง ์์๋ ๋๋ค!
SELECT EMPNO, ENAME, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION --์ฟผ๋ฆฌ๋ฌธ ์ฐ๊ฒฐ
SELECT EMPNO, ENAME, SAL
FROM EMP
WHERE DEPTNO = 20;
๋๋ฏธํ ์ด๋ธ :
์ฟผ๋ฆฌ๋ฌธ ์ฐ์ต์ ์ํด ์ค๋ผํด์์ ์ ๊ณตํ๋ ํ ์ด๋ธ
SELECT 10 * 20
FROM EMP; --๋ฐ์ดํฐ์ ๋ค์ด๊ฐ ์๋งํผ ๋ฐ์ดํฐ๊ฐ ๋์ด > ๋ถํธ >
SELECT 10 * 20, '์๋ฐ'
FROM DUAL; -- DUAL > ์ฐ์ต์ฉํ
์ด๋ธ : ๋๋ฏธํ
์ด๋ธ
--๋ฌธ์๋ ๊ฐ๋ฅ!
๋ฌธ์์ ๊ด๋ จ๋ ํจ์ :
*๋ฐฐ์ด ํจ์ ๋ณต์ต
UPPER(์ปฌ๋ผ๋ช
) : ๋๋ฌธ์๋ก ๋ณํ
LOWER(์ปฌ๋ผ๋ช
) : ์๋ฌธ์๋ก ๋ณํ
INITCAP(์ปฌ๋ผ๋ช
) : ๋จ์ด์ ์ฒซ๊ธ์๋ง ๋๋ฌธ์๋ก ๋ณํ
SELECT 'hello java'
, UPPER('hello java')
, LOWER('hello java')
, INITCAP('hello java')
FROM DUAL;
๋ฌธ์์ ๊ธธ์ด๋ฅผ ์กฐํํ๋ ํจ์ :
LENGTH : ๊ธ์์ ์
LENHTHB : ๋ฐ์ดํธ ์
SELECT LENGTH('hello java') --๊ธ์ ์
, LENGTHB('hello java')
, LENGTH('ํ๊ธ')
, LENGTHB('ํ๊ธ')--๋ฐ์ดํธ ์
FROM DUAL;
๋ฌธ์์ ์ผ๋ถ๋ฅผ ์ถ์ถํ๋ ํจ์ :
SUBSTR ('๊ธ์', ์์์ง์ )
SELECT 'HELLO WORLD'
, SUBSTR('HELLO WORLD', 1, 3) --์ฒซ๋ฒ์งธ ๊ธ์๋ถํฐ ๊ธ์ 3๊ฐ
, SUBSTR('HELLO WORLD', 2, 4) --๋๋ฒ์งธ ๊ธ์๋ถํฐ ๊ธ์ 4๊ฐ
, SUBSTR('HELLO WORLD', 1) --1๋ถํฐ ๋๊น์ง ๊ธ์ ๋ค ์กฐํ
FROM DUAL;
๋ฌธ์์ด ์ฐ๊ฒฐ ํจ์ :
CONCAT , ||
CONCAT ์ฌ์ฉ์ ๋ฒ๊ฑฐ๋ก์ ||์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ๋จํ๊ฒ ์.
SELECT CONCAT('HELLO', 'WORLD')
, CONCAT('HELLO', CONCAT('WORLD', 'ORACLE'))
, 'HELLO' || 'WORLD' || 'ORACLE'
FROM DUAL;
๋ฌธ์์ด ๋์ฒด ํจ์ :
REPLACE ('๋ฌธ์์ด', '๋ณ๊ฒฝํ ํด๋น ๊ธ์', 'ํด๋น ๊ธ์๋ฅผ ๋์ฒดํ ๊ธ์')
SELECT '010-1111-2222'
, REPLACE('010-1111-2222', '-', ' ')
, REPLACE('010-1111-2222', '-', '')
FROM DUAL;
๋น ๊ณต๊ฐ์ ํน์ ๋ฌธ์๋ก ์ฑ์ฐ๋ ํจ์ :
LPAD('๋ฌธ์์ด', ๊ธ์์, '๋น๊ณต๊ฐ์ ๋ญ๋ก ์ฑ์ธ์ง')
๋ฌธ์์ด์ด ๊ธ์์๋ณด๋ค ์์ผ๋ฉด ๋น๊ณต๊ฐ์ด ์๊ธฐ๊ณ > ์ผ์ชฝ๋ถํฐ ๊ทธ ๊ณต๊ฐ์ ์ฑ์ฐ๋ ๊ฒ.
RPAD('๋ฌธ์์ด', ๊ธ์์, '๋น๊ณต๊ฐ์ ๋ญ๋ก ์ฑ์ธ์ง')
์ค๋ฅธ์ชฝ๋ถํฐ ๊ณต๊ฐ ์ฑ์.
SELECT 'ORACLE'
, LPAD('OACLE', 10, '#')
, RPAD('OACLE', 10, '!')
FROM DUAL;
๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ ํจ์ :
LTRIM('๋ฌธ์์ด')
RTRIM('๋ฌธ์์ด')
TRIM('๋ฌธ์์ด')
SELECT LTRIM(' ORACLE ') --์ผ์ชฝ ์ฌ๋ฐฑ ์ ๊ฑฐ
, RTRIM(' ORACLE ') --์ค๋ฅธ์ชฝ ์ฌ๋ฐฑ ์ ๊ฑฐ
, TRIM(' ORACLE ') --์์ชฝ ์ฌ๋ฐฑ ์ ๊ฑฐ
FROM DUAL;
์ซ์์ ๊ด๋ จ๋ ํจ์
๋ฐ์ฌ๋ฆผ ํจ์ :
ROUND(์ซ์)
ROUND(์ซ์, ํ์ํ๊ณ ์ถ์ ์์์ ์๋ฆฟ์)
SELECT 123.456
, ROUND(123.456) --์์์ ์ฒซ๋ฒ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
, ROUND(123.456, 1) --๋ฐ์ฌ๋ฆผํด์ ์์์ ์ฒซ๋ฒ์งธ์๋ฆฌ๊น์ง ํ์ ์ฆ, ๋๋ฒ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
, ROUND(123.456, 2)
FROM DUAL;
์ฌ๋ฆผ ํจ์ :
CEIL(์ซ์)
๋ฒ๋ฆผ ํจ์ :
FLOOR(์ซ์)
SELECT 123.456
, CEIL(123.456)
, FLOOR(123.456)
FROM DUAL;
๋๋จธ์ง ๊ตฌํ๋ ํจ์ :
MOD(์ซ์, ์ซ์)
*์๋ฐ์์๋ %
SELECT MOD(10, 4) FROM DUAL;
โ โ ํ ๋ณํ ํจ์
์ซ์ <-> ๋ฌธ์ <-> ๋ ์ง
์กฐ๊ฑด์์ ๋ ์ง๋ฅผ ๋น๊ตํ ๋๋ ์ซ์๋ ์๋๊ณ ๋ฌธ์๋ ๊ฐ๋ฅํ๋ค.
๋ค๋ง, ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ ์ง ํ์
์ผ๋ก ํ ๋ณํ ํ ๋น๊ต๋ฅผ ํ๋ ๊ฒ ์ ์ !
--์ฐ์ต
--์
์ฌ์ผ์ด 07/03/01์ธ ์ฌ์์ ๋ชจ๋ ๋ฐ์ดํฐ ์กฐํ
SELECT *
FROM EMP
WHERE HIREDATE = '20070301'; --๋ฌธ์๋ก ๋น๊ต ๊ฐ๋ฅํ์ง๋ง ์ข์ ๋ฐฉ๋ฒ์ ์๋.
--WHERE HIREDATE = '07/03/01'
--2005๋
1์ 1์ผ ์ดํ๋ก ์
์ฌํ ์ฌ์์ ๋ชจ๋ ์ ๋ณด ์กฐํ
SELECT *
FROM EMP
WHERE HIREDATE >= '20050101'; --์กฐํ ๊ฐ๋ฅํ๋ ์๋ฃํ์ด ์ ๋ง์
ํ ๋ณํ ์ ์ ๋ฐฉ๋ฒ :
- ๋ ๋ค ๋ ์ง๋ก ๋ณํ
SELECT *
FROM EMP
WHERE HIREDATE >= TO_DATE('20050101')
-๋ ๋ค ๋ฌธ์๋ก ๋ณํ
--์,๋ถ,์ด๊น์ง ๊ฐ๊ฒ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
SELECT *
FROM EMP
WHERE TO_CHAR(HIREDATE, 'YYYYMMDDHH24MISS') >= ('20050101101010')
--์,๋ถ,์ด ์
๋ ฅํ๊ณ ๋ด๊ฐ ์
๋ ฅํ ๊ฒ๊ณผ ๋๊ฐ์ด ๋ ์ง๋ฅผ ๋ฌธ์๋ก ๋ง์ถฐ์ค.
โ ์ซ์> ๋ฌธ์, ๋ฌธ์>์ซ์
*์ซ์๋ ์ผ์ชฝ ์ ๋ ฌ ๋ฌธ์๋ ์ค๋ฅธ์ชฝ์ ์ ๋ ฌ๋จ. > ๋ค์ ํ์ธ
TO_CHAR(๋ฌธ์๋ก ๋ฐ๊ฟ ์ซ์)
TO_NUMBER(์ซ์๋ก ๋ฐ๊ฟ ๋ฌธ์)
SELECT 1001
, TO_CHAR(1001)
, '1001'
, TO_NUMBER('1001')
FROM DUAL;
โ ๋ ์ง > ๋ฌธ์, ๋ฌธ์ > ๋ ์ง ํ ๋ณํ
- ๋ ์ง๋ฅผ ๋ฌธ์๋ก ๋ณํ :
TO_CHAR(๋ ์ง ์ ๋ ฅ, ๋ ์ง๋ฅผ ์ด๋ป๊ฒ ํ์ํ ๊ฒ์ธ์ง)
๋ ์ง ์ ๋ ฅํ๋ ๊ณณ์ ๋ฌธ์ ๋ฃ์ผ๋ฉด ์ ๋จ!
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')
, TO_CHAR(SYSDATE, 'YYYY')
, TO_CHAR(SYSDATE, 'HH24:MI:SS') --์๊ฐ๋ง ๋ฝ๊ธฐ๋ ๊ฐ๋ฅ
, TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') --๊ธฐํธ ์๋ตํด๋ ๊ฐ๋ฅ
, TO_CHAR(SYSDATE, 'YYYY/MM/DD')
, TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') --๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํํ ๋ฐฉ๋ฒ
FROM DUAL;
--์ฐ์ต
--์ค๋ ๋ ์ง๋ฅผ '2023๋
02์ 21์ผ'๋ก ์ถ๋ ฅ
SELECT TO_CHAR(SYSDATE, 'YYYY') ||'๋
'||
TO_CHAR(SYSDATE, 'MM') ||'์ '||
TO_CHAR(SYSDATE, 'DD') ||'์ผ' AS ์ค๋๋ ์ง --์ปฌ๋ผ๋ช
๊ธธ์ด์ง ๋ณ์นญ
FROM DUAL;
- ๋ฌธ์๋ฅผ ๋ ์ง๋ก ๋ณํ :
TO_DATE('๋ณ๊ฒฝํ ๊ธ์')
SELECT TO_DATE('20230221')
FROM DUAL;
์ฐ์ต
ํ ์ด๋ธ ๋ฐ์ดํธ ํ ์คํธ ์์ฑ
CREATE TABLE DATE_TEST (
NUM NUMBER PRIMARY KEY
, MY_DATE DATE
);
๋ฐ์ดํฐ ์ฝ์
INSERT INTO DATE_TEST VALUES(1, SYSDATE);
INSERT INTO DATE_TEST VALUES(2, '20230221');
INSERT INTO DATE_TEST VALUES(3, '20230221101010'); --DATE ํ์
์ ๋ฌธ์๋ฅผ ๋ฃ์ผ๋ฉด ๊ฐ๋ฅํ์ง๋ง ์๊ฐ ์
๋ ฅ > ์ค๋ฅ
1ํ 2ํ์ ์ฝ์ ๊ฐ๋ฅํ๋ 3ํ ์ค๋ฅ
์๋์ฒ๋ผ์ ๊ฐ๋ฅ
SELECT NUM, MY_DATE
, TO_CHAR(MY_DATE, 'YYYY-MM-DD')
, TO_CHAR(MY_DATE, 'YYYY-MM-DD HH24:MI:SS')
FROM DATE_TEST;
'DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์น ๊ฐ๋ฐ ์ค์ต ๊ฒ์ํ ๋ง๋ค๊ธฐ (Mybatis ์ฌ์ฉ) (0) | 2023.02.21 |
---|---|
๋ก๊ทธ์ธ/ํ์๊ฐ์ ๋ฐ ์์ธ ์กฐํ ์ค์ต (0) | 2023.02.21 |
DB4 (0) | 2023.02.20 |
๊ฒ์ํ ๋ง๋ค๊ณ db ์ฐ๊ฒฐ ์ค์ต (0) | 2023.02.17 |
DB3 (0) | 2023.02.17 |