SQL 11

ORACLE ์ˆซ์ž ํ•จ์ˆ˜ (ROUND/TRUNC/CEIL/FLOOR/MOD ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

1. round - ์ง€์ •๋œ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ํ•จ์ˆ˜์ด๋ฉฐ, ๋ฐ˜์˜ฌ๋ฆผ ํ•  ์ž๋ฆฌ๊ฐ’์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Œ (๊ธฐ๋ณธ๊ฐ’์€ 0) - ๋ฐ˜์˜ฌ๋ฆผ ํ•  ์ž๋ฆฌ๊ฐ’์ด ์–‘์ˆ˜๋ฉด ์†Œ์ˆ˜ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•˜๊ณ , ์Œ์ˆ˜๋ฉด ์ •์ˆ˜ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•จ - ๋ฐ˜์˜ฌ๋ฆผํ•  ์ž๋ฆฌ๊ฐ’ 0์€ ์†Œ์ˆ˜์  ์ฒซ์งธ ์ž๋ฆฌ์ด๋ฉฐ, 1์€ ์†Œ์ˆ˜์  ๋‘˜์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ, -1์€ ์ •์ˆ˜ ์ฒซ์งธ ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผํ•จ - ROUND(์ˆซ์ž ๋˜๋Š” ์—ด์ด๋ฆ„, ๋ฐ˜์˜ฌ๋ฆผ ํ•  ์ž๋ฆฌ๊ฐ’) SELECT round(1234.5678) AS round, round(1234.5678, 0) AS round0, round(1234.5678, 1) AS round1, round(1234.5678, 2) AS round2, round(1277.5678, - 1) AS round_minus1, round(1277.5678, - 2) AS ..

SQL 2022.03.30

ORACLE ํ•จ์ˆ˜ (INSTR/REPLACE/CONCAT/TRIM ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

1. instr - ํŠน์ • ๋ฌธ์ž์—ด์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„์„œ ๋Œ๋ ค์คŒ - instr(๋ฌธ์ž์—ด, ์ฐพ์„ ๋ฌธ์ž ๊ฐ’, ์ฐพ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•  ์œ„์น˜, ์ฐพ์€ ๊ฒฐ๊ณผ์˜ ์ˆœ๋ฒˆ) ์ˆœ์œผ๋กœ ์ž‘์„ฑํ•จ SELECT instr('HELLO, ORACLE!', 'L'), instr('HELLO, ORACLE!', 'L', 5), instr('HELLO, ORACLE!', 'L', 2, 2) FROM dual; ๋”๋ณด๊ธฐ (1) ์ œ์ผ ์ฒ˜์Œ์— ๋‚˜์˜ค๋Š” '์ด๊ฒƒ'์˜ ์œ„์น˜ ์ฐพ๊ธฐ SELECT instr('์ด๊ฒƒ์ด Oracle์ด๋‹ค. ์ด๊ฒƒ๋„ ์˜ค๋ผํด์ด๋‹ค.', '์ด๊ฒƒ') FROM dual; ๋”๋ณด๊ธฐ (2) ์‚ฌ์› ์ด๋ฆ„์— ๋ฌธ์ž 'S'๊ฐ€ ์žˆ๋Š” ์‚ฌ์› ๊ตฌํ•˜๊ธฐ - ์ด๋ฆ„์— S๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด 1์ด์ƒ์ด ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— 0๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋ฅผ ์กฐํšŒ SELECT * FROM emp WHERE instr(en..

SQL 2022.03.22

ORACLE ํ•จ์ˆ˜ (LENGTH/LOWER,UPPER/SUBSTR ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

1. length - ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•  ๋•Œ ์‚ฌ์šฉํ•จ (1) ์ด๋ฆ„๊ณผ ์ด๋ฆ„์˜ ๊ธธ์ด๋ฅผ ์กฐํšŒํ•˜๊ธฐ SELECT ename, length(ename) FROM emp; ๋”๋ณด๊ธฐ (2) job์ด ์—ฌ์„ฏ๊ธ€์ž ์ด์ƒ์ธ ์‚ฌ์›์„ ์กฐํšŒํ•˜๊ธฐ SELECT * FROM emp WHERE length(job) >= 6; ๋”๋ณด๊ธฐ 2. lower, upper - ๋ฌธ์ž๋ฅผ ์†Œ/๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉ - ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›์„ ๊ฒฝ์šฐ ์†Œ๋ฌธ์ž ํ˜น์€ ๋Œ€๋ฌธ์ž๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๊ด„์ ์œผ๋กœ ์†Œ/๋Œ€๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ž๋ฃŒ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜ ์žˆ์Œ (1) ์ด๋ฆ„์ด scott์ธ ์‚ฌ์› ์กฐํšŒํ•˜๊ธฐ SELECT * FROM emp WHERE lower(ename) LIKE lower('%scott%'); SELECT * FROM emp WHERE lo..

SQL 2022.03.21

DUAL ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ

1. dual - db๊ด€๋ฆฌ์ž๊ฐ€ ์†Œ์œ ํ•œ ํ…Œ์ด๋ธ” - ์ž„์‹œ ์—ฐ์‚ฐ์ด๋‚˜, ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ (1) ์ง€์ •๋œ ๊ธ€์ž๋ฅผ ์ฐพ์•„ ์œ„์น˜ ๋ฐ˜ํ™˜ํ•˜๊ธฐ SELECT instr('HELLO, ORACLE!', 'L'), instr('HELLO, ORACLE!', 'L', 5), instr('HELLO, ORACLE!', 'L', 2, 2) FROM dual; ๋”๋ณด๊ธฐ SELECT instr('์ด๊ฒƒ์ด Oracle์ด๋‹ค. ์ด๊ฒƒ๋„ ์˜ค๋ผํด์ด๋‹ค.', '์ด๊ฒƒ') FROM dual; ๋”๋ณด๊ธฐ (2) ์ง€์ •๋œ ๋ฌธ์ž์—ด์„ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, ์ œ๊ฑฐํ•˜๊ธฐ SELECT '010-1234-5678' AS ์›๋ณธ, replace('010-1234-5678', '-', ' ') AS replace1, replace('010-1234-5678', '..

SQL 2022.03.21

SELECT...FROM...WHERE๋ฌธ (์ง‘ํ•ฉ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

1. ์ง‘ํ•ฉ์—ฐ์‚ฐ์ž - union : ํ•„๋“œ ๊ฐœ์ˆ˜๊ฐ€ ๋งž๊ณ , ์ž๋ฃŒํ˜•์ด ์ผ์น˜ํ•œ๋‹ค๋ฉด ํ•ฉ์ง‘ํ•ฉ์ด ๊ฐ€๋Šฅ : ํ•ฉ์ง‘ํ•ฉ(์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•จ), union all(์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•˜์ง€ ์•Š์Œ) SELECT empno, ename, sal, deptno FROM emp WHERE deptno = 10 UNION SELECT empno, ename, sal, deptno FROM emp WHERE deptno = 20; ๋”๋ณด๊ธฐ - minus : ๋‘ ์ง‘ํ•ฉ A, B๋ฅผ ์ƒ๊ฐํ•  ๋•Œ, A์— ์†ํ•˜๊ณ  B์—๋Š” ์†ํ•˜์ง€ ์•Š๋Š” ์›์†Œ ์ „์ฒด๋กœ ๋œ ์ง‘ํ•ฉ์„ A์— ๋Œ€ํ•œ B์˜ ์ฐจ์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•จ SELECT empno, ename, sal, deptno FROM emp MINUS SELECT empno, ename, sal, deptno FROM emp WHERE dept..

SQL 2022.03.21

SELECT...FROM...WHERE๋ฌธ (ORDER BY ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

1. ์›ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅ - ๊ฒฐ๊ณผ๋ฌผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€๋Š” ์•Š์ง€๋งŒ, ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์ˆœ์„œ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๊ตฌ๋ฌธ - ๊ธฐ๋ณธ๊ฐ’์€ ์˜ค๋ฆ„์ฐจ์ˆœ์ด๋ฉฐ, ์˜ค๋ฆ„์ฐจ์ˆœ์€ asc, ๋‚ด๋ฆผ์ฐจ์ˆœ์€ desc (1) ์‚ฌ์›๋ฒˆํ˜ธ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋‚ด์šฉ์„ ์กฐํšŒํ•˜๊ธฐ SELECT * FROM emp ORDER BY empno DESC; ๋”๋ณด๊ธฐ (2) ๋ถ€์„œ๋ฒˆํ˜ธ์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋˜, ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ ๊ธ‰์—ฌ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ํ…Œ์ด๋ธ” ์ „์ฒด ๋‚ด์šฉ ์กฐํšŒํ•˜๊ธฐ SELECT * FROM emp ORDER BY deptno ASC, sal DESC; ๋”๋ณด๊ธฐ (3) salary, commission_pct๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ommission_pct๋ฅผ ๋ฐ›๋Š” ๋ชจ๋“  ์‚ฌ์›๋“ค์˜ last_name, salary, commission_pct ์กฐํšŒํ•˜๊ธฐ SELEC..

SQL 2022.03.21

SELECT...FROM...WHERE๋ฌธ (LIKE/IS NULL ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

1. like ์—ฐ์‚ฐ์ž, ์™€์ผ๋“œ์นด๋“œ - ์ผ๋ถ€ ๋ฌธ์ž์—ด์ด ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ ์‹œ ์‚ฌ์šฉ - % : ๊ธธ์ด์™€ ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธ - _ : ์–ด๋–ค ๊ฐ’์ด๋“  ์ƒ๊ด€์—†์ด ํ•œ ๊ฐœ์˜ ๋ฌธ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธ (1) ์‚ฌ์›๋ช…์ด s๋กœ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ์›๋“ค์„ ์กฐํšŒ SELECT * FROM emp WHERE ename LIKE 'S%'; ๋”๋ณด๊ธฐ (2) ์‚ฌ์›๋ช…์˜ ๋‘๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ L์ธ ์‚ฌ์› ์กฐํšŒ SELECT * FROM emp WHERE ename LIKE '_L%'; ๋”๋ณด๊ธฐ (3) ์‚ฌ์›๋ช…์— AM ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์‚ฌ์› ์กฐํšŒ SELECT * FROM emp WHERE ename LIKE '%AM%'; ๋”๋ณด๊ธฐ 2. not like - ์กฐ๊ฑด์„ ๋ถ€์ •ํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ (1) ์‚ฌ์›๋ช…์— AM์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ์‚ฌ์› SELECT * FROM e..

SQL 2022.03.17

SELECT...FROM...WHERE๋ฌธ (BETWEEN...AND/IN() ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

1. BETWEEN...AND - between a and b - ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด ์—ฐ์†์ ์ธ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ (1) ๊ธ‰์—ฌ๊ฐ€ 2000-3000์‚ฌ์ด์ธ ์‚ฌ์› ์กฐํšŒ SELECT * FROM emp WHERE sal BETWEEN 2000 AND 3000; ๋”๋ณด๊ธฐ (2) ๊ธ‰์—ฌ๊ฐ€ 2000-3000์‚ฌ์ด๊ฐ€ ์•„๋‹Œ ์‚ฌ์› ์กฐํšŒ - not์„ ์‚ฌ์šฉ SELECT * FROM emp WHERE sal NOT BETWEEN 2000 AND 3000; ๋”๋ณด๊ธฐ 2. IN() - ์—ฐ์†๋˜์ง€ ์•Š์€ ์—ฌ๋Ÿฌ๊ฐ’์„ ์กฐํšŒํ•  ๊ฒฝ์šฐ - ๊ด„ํ˜ธ์•ˆ์—๋Š” ์กฐ๊ฑด์ด ๋“ค์–ด๊ฐ (1) 20๋ฒˆ ๋ฐ 50๋ฒˆ ๋ถ€์„œ์—์„œ ๊ทผ๋ฌดํ•˜๋Š” ๋ชจ๋“  ์‚ฌ์›๋“ค์˜ LAST_NAME, DEPARTMENT_ID ์กฐํšŒํ•˜๊ธฐ SELECT last_name, department_id ..

SQL 2022.03.17

SELECT...FROM...WHERE๋ฌธ (๊ด€๊ณ„์—ฐ์‚ฐ์ž ์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

1. ํŠน์ •ํ•œ ์กฐ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒํ•˜๋Š” SELECT ํ•„๋“œ์ด๋ฆ„ FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ WHERE ์กฐ๊ฑด์‹; -- ๊ด€๊ณ„์—ฐ์‚ฐ์ž (1) ID๊ฐ€ 176์ธ ์‚ฌ๋žŒ์˜ LAST_NAME๊ณผ DEPARTMENT_ID ์กฐํšŒํ•˜๊ธฐ SELECT last_name, department_id FROM employees WHERE employee_id = 176; ๋”๋ณด๊ธฐ (2) salary(์›”๊ธ‰)๊ฐ€ 12000์ด์ƒ ๋˜๋Š” ์ง์›๋“ค์˜ last_name,salary ์กฐํšŒ SELECT last_name, salary FROM employees WHERE salary >= 12000; ๋”๋ณด๊ธฐ (3) salary๊ฐ€ 5000~12000์˜ ๋ฒ”์œ„ ์ด์™ธ์ธ ์‚ฌ์›๋“ค์˜ laet_name, salary ์กฐํšŒํ•˜๊ธฐ SELECT last_name, salary FROM emp..

SQL 2022.03.17

SELECT...FROM๋ฌธ (์‚ฌ์šฉ๋ฒ•, ์‚ฌ์šฉ์˜ˆ์ œ)

1. ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์ฃผ๋Š” ๊ธฐ๋ณธ์ ์ธ SELECT ์—ด์ด๋ฆ„ FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ WHERE ์กฐ๊ฑด (1) ํ…Œ์ด๋ธ”์•ˆ์— ์ „์ฒด ๋‚ด์šฉ ๊ฐ€์ ธ์˜ค๊ธฐ - *์€ ๋ชจ๋“ ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์•„๋ž˜ ์˜ˆ์ œ์—์„œ *์€ ๋ชจ๋“  ์—ด์„ ์˜๋ฏธ SELECT * FROM ํ…Œ์ด๋ธ” ์ด๋ฆ„; (2) ํ•ด๋‹น ํ…Œ์ด๋ธ”์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ์—ด๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—ด์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ด ์‚ฌ์ด๋Š” ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ - ์—ด ์ด๋ฆ„ ์ˆœ์„œ๋Š” ์‚ฌ์šฉ์ž์˜ ๋งˆ์Œ๋Œ€๋กœ ๋ฐ”๊ฟ”๋„ ๋จ SELECT ์—ด์ด๋ฆ„_1, ์—ด์ด๋ฆ„_2, .... FROM ํ…Œ์ด๋ธ” ์ด๋ฆ„; (3) ์—ด ์ด๋ฆ„์— ๋ณ„์นญ ์ง€์ •ํ•˜๊ธฐ - ์—ด ์ด๋ฆ„์ด ์•Œ์•„๋ณด๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜ ๊ณ„์‚ฐ์‹์˜ ์˜ํ•ด ๋ณต์žกํ•œ ๊ฒฝ์šฐ ๋ณ„์นญ์„ ์ง€์ •ํ•ด์คŒ - ์—ด ์ด๋ฆ„ ๋’ค์— AS ๋ณ„์นญ, ๋˜๋Š” ๊ทธ๋ƒฅ ๋ณ„์นญ์˜ ํ˜•์‹์œผ๋กœ ๋ถ™์ด๋ฉด ๋จ - ๋ณ„์นญ ์ค‘๊ฐ„์— ๊ณต๋ฐฑ์ด ์žˆ๋‹ค๋ฉด ํฐ ๋”ฐ์˜ดํ‘œ๋กœ ๋ณ„์นญ์„ ๊ฐ์‹ธ์ค˜์•ผ ํ•จ - ..

SQL 2022.03.17