๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

oracle64

[Oracle] Multiple INSERT ALL, FIRST ๋‹ค์ค‘ ํ–‰ ์‚ฝ์ž… ์ฐจ์ด :: ๋งˆ์ด์ž๋ชฝ ์ „์ฒด INSERT & ์กฐ๊ฑด๋ถ€ INSERT ๋‹ค์ค‘ํ–‰ INSERT์—์„œ ALL๊ณผ FIRST๋กœ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์ „์— ์ „์ฒด INSERT์™€ ์กฐ๊ฑด๋ถ€ INSERT๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ง๊ทธ๋Œ€๋กœ ์ „์ฒด๋Š” ๋ชจ๋“  ํ–‰์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด๊ณ , ์กฐ๊ฑด๋ถ€ INSERT๋Š” ์กฐ๊ฑด์— ๋”ฐ๋ผ INSERTํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. Multiple Insert๋ฅผ ์‹ค์Šตํ•ด๋ณด๊ธฐ ์œ„ํ•ด Oracle HR ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ „์ฒด INSERT ALL ์ž„์‹œ ์‚ฌ์› ํ…Œ์ด๋ธ” ์ƒ์„ฑ 1 2 3 4 5 6 7 8 9 10 11 --ํ˜„์žฌ ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ์› ํ…Œ์ด๋ธ” CREATE TABLE CURR_EMP AS SELECT EMPLOYEE_ID ,FIRST_NAME ,HIRE_DATE ,JOB_ID ,SALARY FROM EMPLOYEES WHERE 1=0; Multiple Insert ์ž‘.. 2020. 3. 27.
[Oracle] ROLLUP ๊ณ ๊ธ‰ ์‚ฌ์šฉ๋ฒ• GROUPING ํ•จ์ˆ˜ :: ๋งˆ์ด์ž๋ชฝ GROUP BY 1 2 3 4 5 6 SELECT DEPTNO ,JOB ,SUM(SAL) FROM EMP GROUP BY DEPTNO, JOB; ORACLE SCOTT ๊ณ„์ •์˜ EMP ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•ด์„œ ์‹ค์Šต์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” GROUP BY ๋ฌธ์ž…๋‹ˆ๋‹ค. SUM ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ ๋ถ€์„œ๋ณ„, ์ง์—…๋ณ„ ๊ธ‰์—ฌ์˜ ํ•ฉ์„ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค. ROLLUP 1 2 3 4 5 6 SELECT DEPTNO ,JOB ,SUM(SAL) FROM EMP GROUP BY ROLLUP(DEPTNO, JOB); ์œ„์˜ GROUP BY์ ˆ์— ROLLUP์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋ฅผ ๋ถ€์„œ๋ณ„, ์ง์—…๋ณ„ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ ์ „์ฒด ๊ธ‰์—ฌ์˜ ํ•ฉ๊ณผ ๋ถ€์„œ๋ณ„ ๊ธ‰์—ฌ์˜ ํ•ฉ์„ ํ•จ๊ป˜ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ์˜๋ฌธ์ด ๋“œ๋Š”๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๊ธ‰์—ฌ๋กœ๋„ ํ•ฉ์„ ๊ณ„์‚ฐํ•ด์ฃผ๊ณ  ๋ถ€์„œ๋ณ„๋กœ.. 2020. 3. 26.
[Oracle] Transaction Dead Lock ๋ฐœ์ƒ ์‹ค์Šต, ์ด๋ก  ๋ง๊ณ  ์ง์ ‘ ๋งŒ๋“ค์–ด ๋ณด์ž :: ๋งˆ์ด์ž๋ชฝ Transaction Dead Lock ๊ต์ฐฉ์ƒํƒœ ์ž˜๋ชป๋œ ์ž์› ๊ด€๋ฆฌ๋กœ ์ธํ•˜์—ฌ ๋‘˜ ์ด์ƒ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•จ๊ป˜ ๋ฉˆ์ถ”์–ด ๋ฒ„๋ฆฌ๋Š” ํ˜„์ƒ.......... ๋„์ €ํžˆ ๋ฌด์Šจ ๋ง์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด, Transaction์ด ์„œ๋กœ ๊ผฌ์—ฌ์„œ ์ž‘์—…์ด ๋ฉˆ์ถฐ๋ฒ„๋ฆฌ๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. Dead Lock ๊ต์ฐฉ์ƒํƒœ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋ณด๋ฉด ์œ„์™€ ๋น„์Šทํ•œ ๋‚ด์šฉ์˜ ์ •์˜๋ฅผ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. ๋˜ ๊ต์ฐฉ์ƒํƒœ๋กœ ๋น ์งˆ ์ˆ˜ ์žˆ๋Š” 4๊ฐ€์ง€์กฐ๊ฑด์ด๋ผ๊ณ  ํ•ด์„œ ์ƒํ˜ธ ๋ฐฐ์ œ(Mutual Exclusion), ์ ์œ ์™€ ๋Œ€๊ธฐ Hold and Wait, ๋น„์„ ์ (No Preemption), ํ™˜ํ˜•๋Œ€๊ธฐ(Circular Wait) ์ด๋Ÿฐ ์ด๋ก ์ ์ธ ๋‚ด์šฉ ๋ฐ–์— ์•ˆ๋‚˜์˜ต๋‹ˆ๋‹ค. ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๊ณ  ๊ผญ ์•Œ์•„์•ผํ•˜๋Š” ๋‚ด์šฉ์€ ๋งž์ง€๋งŒ... ๊ธ€๋กœ๋งŒ ๋ด์„œ ๋Œ€์ถฉ ๋ฌด์Šจ ๋Š๋‚Œ์ธ์ง€๋Š” ์•Œ๊ฒ ๋Š”๋ฐ, ์ •ํ™•ํžˆ ๋ชจ๋ฅด๊ฒ ๊ณ ... ์ด.. 2020. 3. 26.
[Oracle] ์˜ค๋ผํด INDEX ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์›๋ฆฌ ์žฅ์  ๋‹จ์  :: ๋งˆ์ด์ž๋ชฝ INDEX๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” ์†๋„์˜ ํ–ฅ์ƒ์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. INDEX ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋ฉด FULL SCAN์—์„œ ๋ชจ๋“  ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ•๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ROOT - BRANCH - LEAF - DATA BLOCK์ด 4๋ฒˆ์˜ IO๋ฅผ ํ†ตํ•ด์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ 100๊ฑด์ด๋“  100๋งŒ๊ฑด์ด๋“  ์†๋„์ฐจ์ด๋Š” ๋งŽ์ด ์•ˆ๋‚œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. INDEX๋ž€? ๋ชจ๋“  ํ…Œ์ด๋ธ”์—๋Š” ROWID๋ผ๋Š” ์นผ๋Ÿผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ROWID = FILE ๋ฒˆํ˜ธ + BLOCK ๋ฒˆํ˜ธ + ROW๋ฒˆํ˜ธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. "7๋ฒˆํŒŒ์ผ์— 132๋ฒˆ ๋ธ”๋ก์— 3๋ฒˆ์งธ" ์ด๋Ÿฐ ์‹์œผ๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. INDEX๋Š” ์ด๋Ÿฐ ROWID๋ฅผ ํ†ตํ•ด DATA BLOCK์— ์ ‘๊ทผ ํ•ฉ๋‹ˆ๋‹ค. INDEX๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ .. 2020. 3. 25.
[Oracle] Transaction ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ๊นŒ์š”? :: ๋งˆ์ด์ž๋ชฝ ์€ํ–‰ ์†ก๊ธˆ์ฒ˜๋ฆฌ A๊ณ„์ขŒ์—์„œ B๊ณ„์ขŒ๋กœ $5,000๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์†ก๊ธˆํ•˜๋Š”๋ฐ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. A๊ณ„์ขŒ์—์„œ B๊ณ„์ขŒ๋กœ ์†ก๊ธˆ ์š”์ฒญ์„ ํ•˜๋ฉด 1. A๊ณ„์ขŒ์—์„œ $5,000๋ฅผ ์ถœ๊ธˆํ•ฉ๋‹ˆ๋‹ค. 2. B๊ณ„์ขŒ์— $5,000๋ฅผ ์ž…๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ฒฐ๊ณผ๋กœ A๊ณ„์ขŒ์—๋Š” $5,000 B๊ณ„์ขŒ์—๋Š” $10,000๊ฐ€ ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์ด๋ฏธ์ง€๋Š” ์†ก๊ธˆ ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ์ž…๋‹ˆ๋‹ค. 1. A๊ณ„์ขŒ์—์„œ $5,000๋ฅผ ์ถœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. 2. ์—๋Ÿฌ ๋ฐœ์ƒ ์†ก๊ธˆ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ A๊ณ„์ขŒ์—์„œ $5,000๋ฅผ ์ถœ๊ธˆํ•˜๊ณ  B๊ณ„์ขŒ๋กœ๋Š” ๋ˆ์ด ์ž…๊ธˆ๋˜์ง€ ์•Š์•„ $5,000๊ฐ€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์‹ค์ œ ์€ํ–‰์—์„œ ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์—ฌ๋Ÿฌ ๋ฐฉ๋ฉด์œผ๋กœ ์—„์ฒญ๋‚œ ํ”ผํ•ด๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ์ƒํ™ฉ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ๋ถ€์ •ํ•ฉ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ, ๋‹ค์‹œ ์›.. 2020. 3. 25.
[ORACLE] CTAS CREATE TABLE AS SELECT ์‚ฌ์šฉ :: ๋งˆ์ด์ž๋ชฝ CTAS CREATE TABLE AS SELECT ... SUBQUERY SELECT๋ฌธ์„ ์ด์šฉํ•ด์„œ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. CREATE TABLE AS SELECT์˜ ์•ž ๊ธ€์ž๋ฅผ ๋”ฐ์„œ CTAS๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. CTAS๋ฌธ์€ ์ฃผ๋กœ OLAP์ฒ˜๋Ÿผ ๋ถ„์„์ž‘์—…์ด ๋งŽ์€ ํ™˜๊ฒฝ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์›๋ณธ๋ฐ์ดํ„ฐ์˜ ์นดํ”ผ๋กœ ๋งŒ๋“ค์–ด ์†๋„๋„ ํ–ฅ์ƒ์‹œํ‚ฌ์ˆ˜ ์žˆ๊ณ  ์›๋ฐ์ดํ„ฐ๋ฅผ ํ›ผ์†์‹œํ‚ค์ง€ ์•Š๊ณ  ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CTAS ์ƒ์„ฑ Oracle HR๊ณ„์ • EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ 90๋ฒˆ๋ถ€์„œ์—์„œ ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ์›๋“ค๋งŒ ๋”ฐ๋กœ ๋ชจ์€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1 2 3 4 5 6 7 8 9 CREATE TABLE DEPT_90 AS SELECT EMPLOYEE_ID ,FIRST_NAME ,SALARY FROM EMPLOY.. 2020. 3. 24.
[Oracle] ORA-00955 name is already used by an existing object ํ•ด๊ฒฐ :: ๋งˆ์ด์ž๋ชฝ ORA-00955 ORA-00955 : ๊ธฐ์กด์˜ ๊ฐ์ฒด๊ฐ€ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "name is already used by an existing object" ํ…Œ์ด๋ธ”, ๋ทฐ, ์‹œํ€€์Šค ๋“ฑ ์˜ค๋ผํด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ ํ•˜๋Š”๋ฐ ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ ค๋Š”๋ฐ ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ด์„œ ํ…Œ์ด๋ธ”์„ DROP์‹œํ‚ค๋ ค๊ณ  ํ•˜๋Š”๋ฐ ํ…Œ์ด๋ธ”์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•˜๊ณ ... ๋‹ค์‹œ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ ค๋Š”๋ฐ ์ด๋ฏธ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์ด๋ฆ„์ด๋ผ๊ณ ํ•˜๊ณ ... ๋„๋ฐ์ฒด ๋ญ๊ฐ€ ๋ฌธ์ œ์ธ์ง€.... ์˜ค๋ผํด์—์„œ๋Š” ๊ฐ์ฒด์˜ ํƒ€์ž…์ด ๋‹ค๋ฅด๋”๋ผ๋„ ๊ฐ™์€ ๋ช…์นญ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฒŒ์–ด์กŒ์„ ๋•Œ๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด ํƒ€์ž…์œผ๋กœ ํ•ด๋‹น ๋ช…์นญ์ด ์ƒ์„ฑ๋˜์–ด ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Data Dictionary์˜ ํ•ด๋‹น ์œ ์ €๊ฐ€ ์–ด๋–ค .. 2020. 3. 24.
[Oracle] Synonym ๋™์˜์–ด ์™œ์‚ฌ์šฉํ• ๊นŒ์š”? :: ๋งˆ์ด์ž๋ชฝ Synonym ์ด๋ž€? Oracle์—๋Š” Synonym์ด๋ž€ ๊ฐ์ฒด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ ์˜์†์ ์œผ๋กœ ๋ณ„๋ช…์„ ์ง€์–ด์ฃผ๋Š” ๊ฒƒ. ํ…Œ์ด๋ธ” ALIAS์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ์ž„์‹œ์ ์ธ ๋ณ„๋ช…์ด ์•„๋‹Œ ์˜์†์ ์œผ๋กœ ๋ณ„๋ช…์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด Synonym์ž…๋‹ˆ๋‹ค. Oracle Database๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ํ•œ๋ฒˆ๋„ Synonym์„ ๋งŒ๋“ค์–ด๋ณด์ง€ ์•Š์•„์„œ ์‚ฌ์šฉ์„ ํ•œ๋ฒˆ๋„ ์•ˆํ–ˆ๋‹ค! ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ค์ˆ˜๋„ ์žˆ๋Š”๋ฐ... ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ Synonym์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 1 SELECT SYSDATE FROM DUAL; DUAL์ด๋ผ๋Š” ์ž„์‹œ ํ…Œ์ด๋ธ”์€ SYNONYM์ž…๋‹ˆ๋‹ค. DUALํ…Œ์ด๋ธ”์€ ๋ชจ๋“  ๊ณ„์ •์—์„œ ์Šคํ‚ค๋งˆ ์—†์ด DUAL์ด๋ผ๋Š” ๋ช…์นญ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. DUAL๋„ ์ž„์‹œ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ…Œ์ด๋ธ”์ธ๋ฐ ์™œ ์Šคํ‚ค๋งˆ ์—†์ด DUAL์ด๋ผ๋Š” ๋ช…์นญ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ–ˆ์„๊นŒ์š”? DUAL ํ…Œ์ด๋ธ”.. 2020. 3. 24.
[Oracle] ์˜ค๋ผํด DELETE, TRUNCATE ์ฐจ์ด(HIGH WATER MARK) :: ๋งˆ์ด์ž๋ชฝ ์˜ค๋ผํด์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด๋กœ DELETE, TRUNCATE, DROP ์ด ์žˆ์Šต๋‹ˆ๋‹ค. DROP์˜ ๊ฒฝ์šฐ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์ „๋ถ€์‚ญ์ œ๋ฅผ ํ•ด์ฃผ๊ณ  DELETE์™€ TRUNCATE์€ ํ…Œ์ด๋ธ”์„ ๋‚จ๊ธฐ๊ณ  ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. DELETE์™€ TRUNCATE ์ฐจ์ด DML๊ณผ DDL DELETE์™€ TRUNCATE์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด๋Š” DML๊ณผ DDL์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. DDL์˜ ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ ๋ช…๋ น์ด ํŠธ๋žœ์žญ์…˜์˜ ์‹œ์ž‘๊ณผ ๋์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋กœ ๋ฐ˜์˜์ด ๋˜์–ด๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ TRUNCATE์€ ROLLBACK์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐ˜๋ฉด DELETE์€ DML ๋ช…๋ น์–ด์ด๋ฏ€๋กœ TRANSACTION ๋‹จ์œ„๋กœ ROLLBACK๊ณผ COMMIT์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ๊ณต๊ฐ„ ๋ฐ˜๋‚ฉ๊ณผ ์œ ์ง€ EMP ํ…Œ์ด๋ธ”์—์„œ 192๋ฒˆ์‚ฌ์›์„ ์ฐพ๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…๋‹ˆ๋‹ค. SQL ๋ช…๋ น ์ˆœ์„œ์— ์˜ํ•ด์„œ FRO.. 2020. 3. 23.
[Oracle] ์˜ค๋ผํด WITH, RECURSIVE WITH ์žฌ๊ท€ ์ฟผ๋ฆฌ ์‚ฌ์šฉ :: ๋งˆ์ด์ž๋ชฝ ๋‚˜๋ผ๋ณ„ ๊ธ‰์—ฌ ํ‰๊ท ์˜ ํ‰๊ท ๋ณด๋‹ค ๋งŽ์ด ๊ธ‰์—ฌ๋ฅผ ์ฃผ๊ณ  ์žˆ๋Š” ๋‚˜๋ผ์™€ ๋‚˜๋ผ์˜ ํ‰๊ท  ๊ธ‰์—ฌ๋ฅผ ๊ตฌํ•˜์‹œ์˜ค. (๋‚˜๋ผ๋ช…๊ณผ ๋‚˜๋ผ์˜ ํ‰๊ท  ๊ธ‰์—ฌ๋งŒ ์ถœ๋ ฅ) ์œ„์˜ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”? ๋‚˜๋ผ๋ณ„ ํ‰๊ท  ๊ธ‰์—ฌ๋ฅผ ์กฐ์ธ๋ฌธ์œผ๋กœ ์ด์šฉํ•ด์„œ ๊ตฌํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ฟผ๋ฆฌA๋ผ๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ‰๊ท ์˜ ํ‰๊ท ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฟผ๋ฆฌA๋ฅผ SUBQUERY๋กœ ์‚ฌ์šฉํ•ด์„œ ํ‰๊ท ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‰๊ท ์˜ ํ‰๊ท ๊ฐ’๋ณด๋‹ค ๋†’์€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ฟผ๋ฆฌA ๊ฒฐ๊ณผ์˜ PROJECTION์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๊ณผ์ •์„ ์ƒ๊ฐํ•ด๋ดค์„๋•Œ ์ฟผ๋ฆฌA๋Š” ์ „์ฒด ์ฟผ๋ฆฌ์—์„œ 2๋ฒˆ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. 2๋ฒˆ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด ํผํฌ๋จผ์Šค๋„ ๋‚ฎ์•„์ง€๊ณ  ์ฟผ๋ฆฌ์˜ ๊ฐ€๋…์„ฑ๋„ ๋–จ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ WITH์ ˆ์„ ์‚ฌ์šฉํ•ด์„œ ์ฟผ๋ฆฌ๋ฌธ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์Šต์€ Oracle HR ๊ณ„์ •์œผ๋กœ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. WI.. 2020. 3. 23.
[Oracle] ์˜ค๋ผํด Sequence auto_increment ์‚ฌ์šฉ ๋ฐ ์ •๋ฆฌ :: ๋งˆ์ด์ž๋ชฝ ์ƒˆ๋กœ์šด ์‚ฌ์› INSERT ์ƒˆ๋กœ์šด ์‚ฌ์›์ด ์ž…์‚ฌํ•˜์—ฌ Database์— Insertํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ˆœ์ฐจ์ ์ธ ๋ฒˆํ˜ธ๋กœ ์‚ฌ์›ID๋ฅผ ๋ถ€์—ฌํ•ด์ค๋‹ˆ๋‹ค. ์ด๋•Œ 1006์ด๋ผ๋Š” ์‚ฌ์›ID๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐ›์•„์™€์„œ Insert ์‹œํ‚ฌ๊นŒ์š”? MAX(์‚ฌ์›ID) + 1 ? MAX ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์‚ฌ์›ID์˜ ์ตœ๋Œ€๊ฐ’์„ ๋ฐ›์•„์„œ 1์„ ๋”ํ•ด์ค€ ๊ฐ’์„ Insertํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ์˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. 1000์ •๋„์˜ ์ˆซ์ž๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์—†์ง€๋งŒ ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๋Š˜์–ด๋‚ ์ˆ˜๋ก ๋ถ€ํ•˜๋Š” ์ปค์งˆ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. INDEX ์‚ฌ์šฉ ? INDEX๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. index์˜ ๋งจ ๋งˆ์ง€๋ง‰ ๋ธ”๋Ÿญ์„ ์ฐพ๋„๋ก ํ•˜๋ฉด Root - Branch - Leaf ์ด 3๋‹จ๊ณ„์— ๊ฑธ์ณ ๋งˆ์ง€๋ง‰ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํผํฌ๋จผ์Šค๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, Sequence๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๋น ๋ฅด๊ฒŒ.. 2020. 3. 23.
[Oracle] ์˜ค๋ผํด ๋ทฐ(View) ์‚ฌ์šฉ๋ฒ• ๋ฐ ์ •๋ฆฌ :: ๋งˆ์ด์ž๋ชฝ View ๋ž€? View๋Š” ์ €์žฅ๋œ SELECT ๋ฌธ์ด๋‹ค. ์˜ค๋ผํด์—๋Š” ํ…Œ์ด๋ธ”๋ง๊ณ ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. FROM์ ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ํ…Œ์ด๋ธ”๋งŒ์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ View๋ผ๋Š” ์˜ค๋ผํด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ณ  ์‹ค์ œ๋กœ ํ˜„์—…์—์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์˜ค๋ธŒ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ View๋Š” ๋ฌด์—‡์ด๊ณ  ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์ผ๊นŒ์š”? "View๋Š” ์ €์žฅ๋œ SELECT ๋ฌธ"์ด๋ผ๊ณ  ํ‘œํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „์  ์˜๋ฏธ๋กœ "๋ฐ์ดํ„ฐ์˜ ๋…ผ๋ฆฌ์  ๋ถ€๋ถ„์ง‘ํ•ฉ"์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ์š”, ์‹ค์งˆ์ ์œผ๋กœ View๋ฅผ SELECT๋ฌธ์„ ์ด์šฉํ•ด์„œ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์ด ํ‘œํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฐ์ดํ„ฐ์˜ ๋…ผ๋ฆฌ์  ๋ถ€๋ถ„์ง‘ํ•ฉ์ด๋ผ๋Š”๊ฒŒ ๋ฌด์—‡์ผ๊นŒ์š”? ๋ฐ์ดํ„ฐ์˜ ๋…ผ๋ฆฌ์  ๋ถ€๋ถ„์ง‘ํ•ฉ? ๋ฐ์ดํ„ฐ์˜ ๋…ผ๋ฆฌ์  ๋ถ€๋ถ„์ง‘ํ•ฉ์ด๋ž€ ๊ฒƒ์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ํ…Œ์ด๋ธ”์„.. 2020. 3. 22.
[Oracle] DECODE ํ•จ์ˆ˜ ์‚ฌ์šฉ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ๊ฐ€๋กœ๋กœ ๋ณด๊ธฐ :: ๋งˆ์ด์ž๋ชฝ DECODE ํ•จ์ˆ˜ DECODE ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋‚ด์˜ ์กฐ๊ฑด๋ฌธ ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ ์ธ์ž๋กœ ํ™•์ธํ•  ๋Œ€์ƒ์„ ๋„ฃ์–ด์ฃผ๊ณ  2๋ฒˆ์งธ ์ธ์ž์— ํ™•์ธํ•  ๋Œ€์ƒ์˜ ์˜ˆ์ธก ๊ฐ’์ด ์žˆ์œผ๋ฉด 3๋ฒˆ์งธ ์ธ์ž๋ฅผ ์—†์œผ๋ฉด 4๋ฒˆ์งธ ์ธ์ž์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์ค๋‹ˆ๋‹ค. CASE ํ‘œํ˜„์‹๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๋ฒ”์œ„์‹์˜ ์กฐ๊ฑด์„ ๋„ฃ์„์ˆ˜ ์—†๊ณ  2๋ฒˆ์งธ ์ธ์ž๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Oracle Scott ๊ณ„์ •์œผ๋กœ DECODE ํ•จ์ˆ˜ ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ธ๋กœ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€๋กœ๋กœ 1 2 3 4 5 6 SELECT DEPARTMENT_ID ,SUM(SALARY) FROM EMPLOYEES WHERE DEPARTMENT_ID 2020. 3. 20.
[Oracle] NON-EQUI JOIN ๋น„๋“ฑ๊ฐ€ ์กฐ์ธ ์ •๋ฆฌ :: ๋งˆ์ด์ž๋ชฝ NON-EQUI JOIN ๋‘๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ํŠน์ •ํ•œ ํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ์ณ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ JOIN์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์› ํ…Œ์ด๋ธ”์— ๋ถ€์„œ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ๊ณ  ๋ถ€์„œ ํ…Œ์ด๋ธ”์— ๋ถ€์„œ๋ช…์ด ์žˆ์–ด์„œ ์‚ฌ์›์˜ ์ด๋ฆ„๊ณผ ๋ถ€์„œ๋ช…์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์›ํ…Œ์ด๋ธ”์˜ ๋ถ€์„œ๋ฒˆํ˜ธ์™€ ๋ถ€์„œ ํ…Œ์ด๋ธ”์˜ ๋ถ€์„œ๋ฒˆํ˜ธ๋กœ JOIN ์‹œ์ผœ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํŠน์ • ์นผ๋Ÿผ์€ ๊ฐ™๋‹ค๋Š” ํ˜•์‹์œผ๋กœ ์กฐ์ธ์„ ์‹œํ‚ค๋Š” ๊ฒƒ์€ EQUI JOIN์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ NON-EQUI JOIN์€ ๋ญ˜๊นŒ์š”? ์ƒํ˜ธํ‰๊ฐ€ ๋“ฑ๊ธ‰, ์„ฑ์  ๋“ฑ๊ธ‰๊ณผ ๊ฐ™์ด ํŠน์ • ๋ฒ”์œ„์™€ ๋“ฑ๊ธ‰์„ ์ง€์ •ํ•˜๊ณ  ํ•ด๋‹น ๋ฒ”์œ„์— ๋“ค์—ˆ์„ ๋•Œ ๋“ฑ๊ธ‰์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด NON-EQUI JOIN์ž…๋‹ˆ๋‹ค. NON-EQUI JOIN์€ EQUI JOIN๊ณผ ๋‹ค๋ฅด๊ฒŒ ํŠน์ • ์นผ๋Ÿผ์„ ๋ฒ”์œ„๋กœ JOIN ์‹œํ‚ต๋‹ˆ๋‹ค. Oracle S.. 2020. 3. 19.
[Oracle] ์˜ค๋ผํด GROUP BY ROLLUP, CUBE, GROUPING SETS ์ •๋ฆฌ :: ๋งˆ์ด์ž๋ชฝ GROUP BY ํŠน์ • ์นผ๋Ÿผ๋“ค์„ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ํ•ฉ์‚ฐ, ํ‰๊ท , ์ตœ๊ณ ๊ฐ’, ์ตœ์†Œ๊ฐ’ ๋“ฑ์˜ ์ˆ˜์น˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด GROUP BY ์ ˆ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ถ€์„œ๋ณ„ ์—ฐ๋ด‰ ํ‰๊ท , ๋ฐ˜ ์‹œํ—˜ ์ตœ๊ณ  ์ ์ˆ˜, ๋งค์žฅ๋ณ„ ์žฌ๊ณ ๋Ÿ‰๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃน์„ ์‹œํ‚ฌ๋•Œ๋Š” ํ•œ๊ฐ€์ง€ ๊ฒฐ๊ณผ๋งŒ ํ™•์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‘ ๊ฐ€์ง€ ์ด์ƒ์˜ ๊ธฐ์ค€์œผ๋กœ GROUP BY ์‹œ์ผฐ์„๋•Œ๋Š” ํ‘œํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถ€์„œ๋ณ„ ํŒ€๋ณ„ ์—ฐ๋ด‰ ํ‰๊ท , ๋ฐ˜๋ณ„ ๊ณผ๋ชฉ๋ณ„ ์‹œํ—˜ ์ตœ๊ณ  ์ง‘์ˆ˜, ๋งค์žฅ๋ณ„ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์žฌ๊ณ ๋Ÿ‰์ฒ˜๋Ÿผ 2๊ฐœ์˜ ๊ธฐ์ค€์ด ์žˆ์„๋•Œ๋Š” ๊ฐ€๋กœ ์„ธ๋กœ ๊ฐ๊ฐ ๊ธฐ์ค€์œผ๋กœ ํ‘œํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ฒ˜์Œ ๋– ์˜ฌ๋ž์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ถ€์„œ๋ณ„ ์ง์—…๋ณ„ ์—ฐ๋ด‰ ํ•ฉ์‚ฐ๊ธˆ์•ก์„ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ฐ€๋กœ์— ๋ถ€์„œ, ์„ธ๋กœ์— ์ง์—…์„ ๋†“์€ ํ‘œํ˜•ํƒœ์™€ ๊ฐ๊ฐ ๊ทธ๋ฃน๋ณ„๋กœ ๋”ฐ๋กœ๋”ฐ๋กœ ๊ทธ๋ฆฌ๊ณ  ์ „์ฒด ํ•ฉ์‚ฐ๋„ ์ž๋™์œผ.. 2020. 3. 18.
[Oracle] SQL SELECT ์ฟผ๋ฆฌ ์‹คํ–‰ ์ˆœ์„œ ์ฒ˜๋ฆฌ ๊ณผ์ • :: ๋งˆ์ด์ž๋ชฝ SELECT ์ฟผ๋ฆฌ ์‹คํ–‰ ์ˆœ์„œ SQL ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ• ๋•Œ ์‚ฌ์šฉ๋˜๋Š” WHERE, GROUP BY, ORDER BY ์ ˆ๊ณผ ๊ฐ™์€ ๊ตฌ๋ฌธ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์ˆœ์„œ์— ์˜ํ•ด์„œ ์ฟผ๋ฆฌ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๊ณ  ์–ด๋–ป๊ฒŒ ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ ํผํฌ๋จผ์Šค์˜ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ORACLE HR ๊ณ„์ •์˜ EMPLOYEES ํ…Œ์ด๋ธ”๋กœ ์–ด๋–ค ์ฒ˜๋ฆฌ ๊ณผ์ •์— ์˜ํ•ด์„œ SELECT ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋˜๋Š”์ง€ ์•Œ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 SELECT JOB_ID ,AVG(SALARY) SAL_AVG FROM EMPLOYEES WHERE SALARY > 13000 GROUP BY JOB_ID HAVING COUNT(*) > 1 ORDER BY SAL_AVG DESC; ์œ„์˜ ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ์˜ ์ตœ์ข… ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด.. 2020. 3. 17.
[Oracle] ์˜ค๋ผํด '&' ๋ฌธ์ž ์น˜ํ™˜๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ :: ๋งˆ์ด์ž๋ชฝ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ™•์ธํ•˜๊ณ ... ๊ฐ™์€ ์ฟผ๋ฆฌ๋‚ด์—์„œ ํŠน์ • ๊ฐ’๋งŒ ๋ณ€๊ฒฝํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ์„๋•Œ ์–ด๋–ป๊ฒŒ ํ•˜์‹œ๋‚˜์š”? ์˜ˆ๋ฅผ๋“ค์–ด ํŠน์ • ๋ถ€์„œ์— ์–ด๋–ค ์ง์›๋“ค์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์€๋ฐ... ์˜์—…๋ถ€์„œ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ธ์‚ฌ๋ถ€์„œ์˜ ์ง์›๋“ค์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด WHERE์ ˆ์˜ Value๊ฐ’์„ ๊ณ„์† ๋ณ€๊ฒฝํ•ด๊ฐ€๋ฉด์„œ ํ™•์ธํ•˜์‹œ๋‚˜์š”? ํ•œ ๋‘๊ฐœ๋ฉด ๋ชฐ๋ผ๋„... ๋ถ€์„œ๊ฐ€ 20๊ฐœ์”ฉ ์žˆ๊ณ  ์ด๋Ÿฌ๋ฉด ์ผ์ผํžˆ ์ฟผ๋ฆฌ๋‚ด์šฉ ๋ณ€๊ฒฝํ•ด๊ฐ€๋ฉด์„œ ํ™•์ธํ•˜๊ธฐ ํž˜๋“ค์ž–์•„์š”? ๊ทธ๋Ÿด๋•Œ ์น˜ํ™˜๋ณ€์ˆ˜ '&'๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋ฉด ์ข€ ๋” ํŽธํ•˜๊ฒŒ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์น˜ํ™˜๋ณ€์ˆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด Oracle์˜ scott ๊ณ„์ •์•ˆ์— ์žˆ๋Š” EMP ํ…Œ์ด๋ธ”์„ ๊ฐ–๊ณ  ์‹ค์Šตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋ผํด ์น˜ํ™˜๋ณ€์ˆ˜ ์˜ค๋ผํด '&' ๋ฌธ์ž 1 SELECT * FROM EMP WHERE SAL >= 1000; EMP.. 2020. 3. 16.
[Oracle] ์˜ค๋ผํด ํŽ˜์ด์ง• ์ฟผ๋ฆฌ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ Row Limiting Clause ์‚ฌ์šฉ :: ๋งˆ์ด์ž๋ชฝ ์˜ค๋ผํด ํŽ˜์ด์ง• ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŽ˜์ด์ง• ์ฟผ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ• ๊นŒ์š”? ํฌํ„ธ ์‚ฌ์ดํŠธ์—์„œ ๊ฒ€์ƒ‰์„ ํ–ˆ์„ ๋•Œ, ๊ฒŒ์‹œํŒ ํ˜•ํƒœ์˜ ์›น์‚ฌ์ดํŠธ์—์„œ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ๋•Œ, ํ•œ๋ฒˆ์— ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์—ฌ ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ด๋Ÿฐ ๋ณ€๋™์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์˜ค๋ผํด ํŽ˜์ด์ง• ์ฟผ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ์งค๊นŒ์š”? Top-N Query๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” Row Limiting Clause๋ผ๋Š” Feature๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Oracle Database scott ๊ณ„์ •์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” EMP ํ…Œ์ด๋ธ”์„ ๊ฐ–๊ณ  ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Top-N Query Top-N Query๋Š” ์ƒ์œ„ N๊ฐœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง•์„ ํ•˜๊ธฐ์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ ์ •๋ ฌํ•ด์„œ ๋ณด์—ฌ์ค„๊ฑด.. 2020. 3. 15.
[Oracle] listener ๊ตฌ์„ฑ (IO ์˜ค๋ฅ˜ : The Network Adapter could not establish the connection ํ•ด๊ฒฐ) :: ๋งˆ์ด์ž๋ชฝ Oracle ์„ค์น˜๊ฐ€ ๋‹ค ๋๋‚ฌ๋Š”๋ฐ SQLDeveloper๋กœ ์ ‘์† ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ง€๋งŒ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ : ์‹คํŒจ -ํ…Œ์ŠคํŠธ ์‹คํŒจ: IO ์˜ค๋ฅ˜: The Network Adapter could not establish the connection ์˜ค๋ผํด DBMS์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๊ฐ€ ๋˜์–ด ์žˆ์œผ๋ฉด ์ฝ˜์†”์ฐฝ sqlplus๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ถ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์™ธ๋ถ€์—์„œ ์ ‘์†ํ•˜๋ ค๊ณ ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์šฐ์„  listener๊ฐ€ ์‹คํ–‰ ํ˜น์€ ๊ตฌ์„ฑ ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธ๋ถ€ํ„ฐ ํ•ด์ค๋‹ˆ๋‹ค. listener ์„œ๋น„์Šค ํ™•์ธ Ctrl + Alt + Delete ๋‹จ์ถ•ํ‚ค๋ฅผ ์ž‘์—… ๊ด€๋ฆฌ์ž์˜ ์„œ๋น„์Šคํƒญ์œผ๋กœ ํ˜„์žฌ PC์— ์žˆ๋Š” ์„œ๋น„์Šค ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ORCL ์ด๋ฆ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ •์ƒ์ ์œผ๋กœ ์ƒ.. 2020. 3. 14.
[Oracle] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ORA-12560 TNS: ํ”„๋กœํ† ์ฝœ ์–ด๋Œ‘ํ„ฐ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ :: ๋งˆ์ด์ž๋ชฝ ์˜ค๋ผํด ์„ค์น˜๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ sqlplus๋ฅผ ํ†ตํ•ด์„œ ์ ‘์†ํ•ด๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ.... ORA-12560: TNS: ํ”„๋กœํ† ์ฝœ ์–ด๋Œ‘ํ„ฐ ์˜ค๋ฅ˜ ์œ„์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ! ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ •์˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ํ™•์ธ ์šฐ์„  ์˜ค๋ผํด ์„ค์น˜ ์‹œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…์นญ์ด๋‚˜, SID๋ฅผ ์„ค์ •ํ•ด์ค€ ๊ธฐ์–ต์ด ์žˆ๋Š”์ง€ ์ƒ๊ฐํ•ด ๋ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ผํด DBMS๋ฅผ ์„ค์น˜ํ• ๋•Œ ์†Œํ”„ํŠธ์›จ์–ด๋งŒ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Oracle ์„œ๋น„์Šค ํ™•์ธ ์šฐ์„  ์„œ๋น„์Šค์ฐฝ์„ ์—ด์–ด์„œ Oracle์— ๋Œ€ํ•œ ์„œ๋น„์Šค๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Oracle๊ณผ ๊ด€๋ จ๋œ ์„œ๋น„์Šค๊ฐ€ 1๊ฐœ ๋ฐ–์— ๋– ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ๊ณผ OracleService๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ์ •ํ™•ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” .. 2020. 3. 13.