๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT์ž๊ฒฉ์ฆ ๊ณต๋ถ€/SQLD ๊ธฐ์ถœ๋ฌธ์ œ

[SQLD] 35ํšŒ ๊ธฐ์ถœ ๋ฌธ์ œ ( 50๋ฌธ์ œ / ์ •๋‹ต,ํ•ด์„คํฌํ•จ )

by yunamom 2022. 5. 13.
๋ฐ˜์‘ํ˜•

 

 

๐Ÿ“–SQLD. ์ œ 35 ํšŒ ๊ธฐ์ถœ ๋ฌธ์ œ


๋ฌธ์ œ 1. ์•„๋ž˜ ๋ณด๊ธฐ ์ค‘ ๋ฐ˜์ •๊ทœํ™”์˜ ์ด์œ ๋กœ ๊ฐ€์žฅ ๋ถ€์ ์ ˆ ํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ๋””์Šคํฌ ์ž…์ถœ๋ ฅ๋Ÿ‰์ด ๋งŽ์•„์„œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ๋•Œ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

2) ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ๋ชปํ•  ๋•Œ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

3) ๊ฒฝ๋กœ๊ฐ€ ๋„ˆ๋ฌด ๋ฉ€์–ด ์กฐ์ธ์œผ๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์˜ˆ์ƒ๋  ๋•Œ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

4) ์นผ๋Ÿผ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ฝ์„ ๋•Œ ์„ฑ๋Šฅ์ด ์ €ํ•˜ ๋  ๊ฒƒ์ด ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

๋ฌธ์ œ 2. ์•„๋ž˜์˜ ERD ์ฒ˜๋Ÿผ ๋ถ„์‚ฐ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๊ฐ€ ๋˜์–ด ์žˆ์„ ๋•Œ ๊ฐ€์žฅ ๋ถ€์ ์ ˆํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 


1) ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ณ„ํš์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

2) ํ•œ ๊ฐœ์˜ ๊ณ„ํš์—๋Š” ๋‚ด์šฉ์ด ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค.

3) ๋ฐ์ดํ„ฐ ์กฐํšŒ ์„ฑ๋Šฅ์„ ์œ„ํ•ด์„œ ๊ณตํ†ต๋œ ์†์„ฑ์€ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค.

4) ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜์ง€ ๋ชปํ•  ๋•Œ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๊ฐ€ ์ข‹๋‹ค.

 

๋ฌธ์ œ 3. ANSI-SPARC์—์„œ ์ •์˜ํ•œ 3๋‹จ๊ณ„ ๊ตฌ์กฐ(Three Level Architecture)์—์„œ ์•„๋ž˜ ๋‚ด์šฉ์ด ์„ค๋ช…ํ•˜๋Š” ์Šคํ‚ค๋งˆ ๊ตฌ์กฐ๋กœ ๊ฐ€์žฅ ์ ์ ˆํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

- ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ด€์ ์„ ํ†ตํ•ฉํ•œ ์กฐ์ง ์ „์ฒด ๊ด€์ ์˜ ํ†ตํ•ฉ์  ํ‘œํ˜„์ด๋‹ค.

- ๋ชจ๋“  ์‘์šฉ์‹œ์Šคํ…œ๋“ค์ด๋‚˜ ์‚ฌ์šฉ์ž ๋“ค์ด ํ•„์š”๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•œ ์กฐ์ง ์ „์ฒด์˜ DB๋ฅผ ๊ธฐ์ˆ ํ•œ ๊ฒƒ์œผ๋กœ DB์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์™€ ๊ทธ๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์Šคํ‚ค๋งˆ์ด๋‹ค.
1) ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ (External Schema)

2) ๊ฐœ๋… ์Šคํ‚ค๋งˆ (Conceptual Schema)

3) ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ (Internal Schema)

4) ๋…ผ๋ฆฌ ์Šคํ‚ค๋งˆ (Logical Schema)


๋ฌธ์ œ 4. ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ERD์—์„œ Relationship(๊ด€๊ณ„)์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ๊ด€๊ณ„ ๋ช… (Relationship Membership)

2) ๊ด€๊ณ„ ์ฐจ์ˆ˜ (Relationship Degree/Cardinality)

3) ๊ด€๊ณ„ ์„ ํƒ ์‚ฌ์–‘ (Relationship Optionality)

4) ๊ด€๊ณ„ ๋ถ„๋ฅ˜ (Relationship Classification)

 

๋ฌธ์ œ 5. ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ํŠน์ง•์œผ๋กœ ๋ถ€์ ์ ˆํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ์ง€์—ญ ์ž์น˜์„ฑ, ์ ์ฆ์  ์‹œ์Šคํ…œ ์šฉ๋Ÿ‰์ด ํ™•์žฅ๋œ๋‹ค.

2) ๋น ๋ฅธ ์‘๋‹ต์†๋„์™€ ํ†ต์‹ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

3) ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋น„์šฉ์ด ์ฆ๋Œ€ํ•œ๋‹ค.

4) ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์„ฑ์ด ๋†’์•„์ง„๋‹ค.

 

๋ฌธ์ œ 6. ์•„๋ž˜์˜ ๋‘ ๊ฐ€์ง€ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ๊ฐ€์žฅ ์ ์ ˆํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ์ˆ˜ํ•™ ๊ณผ๋ชฉ ์‹ ์ฒญ์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ์กฐํšŒํ•  ๋•Œ '๊ฐ€' ๋ชจ๋ธ์ด '๋‚˜' ๋ชจ๋ธ๋ณด๋‹ค ์ข‹๋‹ค.

2) ํ•˜๋‚˜์˜ SQL๋กœ ํ•˜๋‚˜๋„ ์ˆ˜๊ฐ•ํ•˜์ง€ ์•Š์€ ๊ณผ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค.

3) ์ •๊ทœํ™” ์ธก๋ฉด์—์„œ๋Š” '๋‚˜' ๋ชจ๋ธ์ด '๊ฐ€' ๋ชจ๋ธ๋ณด๋‹ค ์šฐ์ˆ˜ํ•˜๋‹ค.

4) ๋‘ ๊ฐœ์˜ ๋ชจ๋ธ์˜ ์žฅ์ ์€ ๋™์ผํ•˜๋‹ค.

 

๋ฌธ์ œ 7. ์•„๋ž˜์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์ด ์žˆ์„ ๋•Œ ๊ทธ ์„ค๋ช…์œผ๋กœ ๋ถ€์ ์ ˆ ํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 


1) 4๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์†Œ ์กฐ๊ฑด์€ 3๊ฐœ์ด๋‹ค.

2) ์‹๋ณ„์ž ๊ด€๊ณ„๋กœ๋งŒ ์—ฐ๊ฒฐ๋  ๊ฒฝ์šฐ ์กฐ์ธ์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ๋น„์‹๋ณ„์ž ๊ด€๊ณ„๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

3) Student, Module์„ ์กฐ์ธํ•  ๋•Œ Student์™€ Grades๋ฅผ ๋น„์‹๋ณ„์ž ๊ด€๊ณ„๋กœ ์„ค๊ณ„ํ•˜๋ฉด ์กฐ์ธ์ด ๋”์šฑ ํŽธ๋ฆฌํ•ด์ง„๋‹ค.

4) Student์˜ student_ID๋Š” ๋‚ด๋ถ€ ์‹๋ณ„์ž ์ด๊ณ  Grades์˜ student_ID๋Š” ์™ธ๋ถ€ ์‹๋ณ„์ž์ด๋‹ค.

 

๋ฌธ์ œ 8. ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ํ…Œ์ด๋ธ” ์„ค๊ณ„ ์‹œ ์ธ๋ฑ์Šค์™€ ๊ด€๋ จ๋œ ์„ค๋ช…์œผ๋กœ ๋ถ€์ ์ ˆํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ์ฃผ๋กœ B-Tree ์ธ๋ฑ์Šค๋กœ ๋˜์–ด ์žˆ๋‹ค.

2) ์™ธ๋ž˜ํ‚ค๊ฐ€ ์„ค๊ณ„๋˜์–ด ์žˆ๋Š”๋ฐ ์ธ๋ฑ์Šค๊ฐ€ ์—†๋Š” ์ƒํƒœ์—์„œ ์ž…๋ ฅ/์‚ญ์ œ/์ˆ˜์ •์˜ ๋ถ€ํ•˜๊ฐ€ ์ƒ๊ธด๋‹ค.

3) ํ…Œ์ด๋ธ”์— ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค์˜ ์ˆ˜๋Š” ์ œํ•œ์ด ์—†์œผ๋‚˜, ๋„ˆ๋ฌด ๋งŽ์ด ๋งŒ๋“ค๋ฉด ์˜คํžˆ๋ ค ์„ฑ๋Šฅ ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

4) ์กฐํšŒ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•˜๋‹ค.

 

๋ฌธ์ œ 9. ์•„๋ž˜์˜ ERD์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ๊ฐ€์žฅ ๋ถ€์ ์ ˆํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

ํ•œ ํ…Œ์ด๋ธ”์— ๋งŽ์€ ์ปฌ๋Ÿผ๋“ค์ด ๊ณผ๋„ํ•˜๊ฒŒ ๋ฐ€์ง‘๋˜์–ด ์žˆ๋Š” ํ˜•ํƒœ
1) ์ž์ฃผ ์“ฐ๋Š” ์ปฌ๋Ÿผ๊ณผ ๊ทธ๋ ‡์ง€ ์•Š์€ ์ปฌ๋Ÿผ์œผ๋กœ ๋‚˜๋ˆ ์„œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

2) Row Chaining์ด ๋ฐœ์ƒํ•˜์—ฌ ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค.

3) ํ•œ ํ…Œ์ด๋ธ”์— ๋งŽ์€ ์ˆ˜์˜ ์ปฌ๋Ÿผ๋“ค์ด ์กด์žฌํ•˜๊ฒŒ ๋˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋””์Šคํฌ์˜ ์—ฌ๋Ÿฌ ๋ธ”๋ก ์— ์กด์žฌํ•˜๋ฏ€๋กœ ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” I/O ๋Ÿ‰์ด ๋งŽ์•„์ง€๊ฒŒ ๋˜์–ด์„ฑ๋Šฅ์ด ์ €ํ•˜ ๋  ์ˆ˜ ์ž‡๋‹ค.

4) ๋ฐ์ดํ„ฐ ๋กœ์šฐ๊ฐ€ ๊ณผ๋„ํ•˜๊ฒŒ ๋ฐ€์ง‘๋˜์ง€ ์•Š๋„๋ก ์Šคํ‚ค๋งˆ ๊ตฌ์กฐ์™€ ๋™์ผํ•˜๊ฒŒ ํŒŒํ‹ฐ์…˜์„ ๋ถ„ํ• ํ•œ๋‹ค.

 

๋ฌธ์ œ 10. ํ…Œ์ด๋ธ” ๋ฐ˜์ •๊ทœํ™” ๊ธฐ๋ฒ• ์ค‘ ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ์ด ์•„๋‹Œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) 1:1 ๊ด€๊ณ„ ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ

2) 1:M ๊ด€๊ณ„ ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ

3) ์Šˆํผ/์„œ๋ธŒ ํƒ€์ž… ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ

4) ํ†ต๊ณ„ ํ…Œ์ด๋ธ” ์ถ”๊ฐ€

 

๋ฌธ์ œ 11. ์•„๋ž˜์˜ ANSI JOIN SQL์—์„œ ๊ฐ€์žฅ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) SELECT EMP.DEPTNO, EMPNO, ENAME, DNAME FROM EMP INNER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO;

2) SELECT EMP.DEPTNO, EMPNO, ENAME, DNAME FROM EMP NATURAL JOIN DEPT;

3) SELECT*FROM DEPT JOIN DEPT_TEMP USING(DEPTNO);

4) SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME FROM EMP E INNER JOIN DEPT D ON (E.DEPTNO = D.DEPTNO);

 

๋ฌธ์ œ 12. ์•„๋ž˜์˜ SQL ๊ตฌ๋ฌธ ์ค‘ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) SELECT C1, C2 FROM SQLD_31_26_01 NATURAL JOIN SQLD_31_26_02;

2) SELECT NO, A.C1, B.C2 FROM SQLD_31_26_01 A JOIN SQLD_31_26_02 B USING (NO);

3) SELECT A.NO, A.C1, B.C2 FROM SQLD_31_26_01 A JOIN SQLD_31_26_02 B ON (A.NO = B.NO);

4) SELECT A.NO, A.C1, B.C2 FROM SQLD_31_26_01 A CROSS JOIN SQLD_31_26_02 B;

 

๋ฌธ์ œ 13. UNION์— ๋Œ€ํ•œ ์„ค๋ช… ์ค‘ ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ํ–‰์„ ์ œ๊ฑฐํ•œ๋‹ค.

2) ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ํ–‰์„ ํฌํ•จํ•œ๋‹ค.

3) ์ •๋ ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.

4) ๋‘ ํ…Œ์ด๋ธ”์— ๋ชจ๋‘ ํฌํ•จ๋œ ํ–‰์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค.

 

๋ฌธ์ œ 14. ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ SQL์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

[SQLD_14]
--------------------------------
 NUM     CODE     COL1     COL2
 1         A       100      350
 2         A       130      300
 3         B       150      400
 4         A       200      300
 5         B       250      200
 6         A       300      150

 

1) SELECT*FROM SQLD_14 WHERE 1=1 AND CODE IN('A','B') AND COL1 BETWEEN 200 AND 400;

2) SELECT*FROM SQLD_14 WHERE 1=1 AND (CODE='A' AND 200 BETWEEN COL1 AND COL2) OR (CODE='B' AND 200 BETWEEN COL1 AND COL2);

3) SELECT*FROM SQLD_14 WHERE 1=1 AND 200 BETWEEN COL1 AND COL2;

4) SELECT*FROM SQLD_14 WHERE 1=1 AND COL1 <= 200 AND COL2 >= 200;

 

๋ฌธ์ œ 15. ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ํŠธ๋žœ์žญ์…˜์˜ ํŠน์ง•์ด ์•„๋‹Œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ์›์ž์„ฑ

2) ์ผ๊ด€์„ฑ

3) ์—ฐ๊ด€์„ฑ

4) ๊ณ ๋ฆฝ์„ฑ

 

๋ฌธ์ œ 16. ๋‹ค์Œ ์ค‘ ์•„์ง COMMIT ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์ž˜๋ชป๋œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ROLLBACK ๋ช…๋ น์–ด๋กœ ๋ฐ”๋กœ ์ง์ „์— COMMITํ•œ ์ง€์ ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

2) ๋‚˜ ์ž์‹ ์ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

3) ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์—†๋‹ค.

4) ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ COMMIT๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์น  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฌธ์ œ 17. ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ COL1 NULL์ด ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” SQL๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€?์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) SELECT COL1 FROM WHERE T1 WHERE COL1 <> ''

2) SELECT COL1 FROM WHERE T1 WHERE COL1 != ''

3) SELECT COL1 FROM WHERE T1 WHERE COL1 IS NOT NULL

4) SELECT COL1 FROM WHERE T1 WHERE COL1 NOT IN (NULL)

 

๋ฌธ์ œ 18. ๋‹ค์Œ ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์—์„œ ์•„๋ž˜์˜ ๊ฒฐ๊ณผ๊ฐ’๊ณผ ๊ฐ™์ด "_" ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

[SQLD_18]
ID      NAME
------------
1        ___A
2        B
3        ___C
4        D
5        E
6        ___F

[๊ฒฐ๊ณผ๊ฐ’]
ID      NAME
------------
1        _A
3        __C
6        ___F
1) SELECT*FROM SQLD_18 WHERE NAME LIKE '%%';

2) SELECT*FROM SQLD_18 WHERE NAME LIKE '%#_%';

3) SELECT*FROM SQLD_18 WHERE NAME LIKE '%@_%' ESCAPE '@';

4) SELECT*FROM SQLD_18 WHERE NAME LIKE '%_%' ESCAPE '_';

 

๋ฌธ์ œ 19. ๋‹ค์Œ ์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ”์—์„œ ์ˆ˜ํ–‰ํ•œ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์ž˜๋ชป๋œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

[SQLD_19]
EMPNO     ENAME     SAL
-----------------------
1         'NOAH'    1000
2         'LIAM'    2000
3         'AIDEN'   3000
4         'JAMES'   4000
5         'ETHAN'   5000
6         'OLIVER'  6000
(1)                                (3)
SELECT ENAME, SAL                  SELECT ENAME, SAL
FROM (SELECT ENAME, SAL FROM       FROM (SELECT ENAME, SAL FROM SQLD_19
SQLD_19 ORDER BY SAL DESC)         ORDER BY SAL DESC)
WHERE ROWNUM = 1;                  WHERE ROWNUM > 0;
=> ๋งจ ๋์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”์ถœ๋œ๋‹ค.            => ๋ฐ‘์—์„œ๋ถ€ํ„ฐ ์œ„๊นŒ์ง€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”์ถœ๋œ๋‹ค.


(2)                                 (4)
SELECT ENAME, SAL                  SELECT ENAME, SAL
FROM (SELECT ENAME, SAL            FROM (SELECT ENAME, SAL FROM SQLD_19
FROM SQLD_19 ORDER BY SAL DESC)    ORDER BY SAL DESC)
WHERE ROWNUM = 2;                  WHERE ROWNUM <= 3;
=> ๋์—์„œ 2๊ฑด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”์ถœ๋œ๋‹ค.         => ๋์—์„œ 3๊ฑด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”์ถœ๋œ๋‹ค.

 

๋ฌธ์ œ 20. ๋‹ค์Œ ์ฃผ์–ด์ง„ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD_20]
COL1     COL2      COL3
-----------------------
A        300        50
B        300        150
C        NULL       300
D        300        100

SELECT NVL(COL2, COL3) AS ๊ธˆ์•ก1,
      COALESCE(COL2, COL3) AS ๊ธˆ์•ก2,
   NULLIF(COL2, COL3) AS ๊ธˆ์•ก3,
   CASE WHEN COL2 IS NOT NULL THEN
COL2 ELSE COL3 END AS ๊ธˆ์•ก4
FROM SQLD_20;
1) ๊ธˆ์•ก 1

2) ๊ธˆ์•ก 2

3) ๊ธˆ์•ก 3

4) ๊ธˆ์•ก 4

 

๋ฌธ์ œ 21. ๋‹ค์Œ ์ค‘ ์ฐจ์ง‘ํ•ฉ์„ ๊ตฌํ•˜๋Š” ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž๋Š” ๋ฌด์—‡์ธ๊ฐ€?์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) UNION

2) UNION ALL

3) EXCEPT

4) INTERSECT

 

๋ฌธ์ œ 22. ์•„๋ž˜์˜ WINDOW FUNCTION์„ ์‚ฌ์šฉํ•œ SQL ์ค‘ ๊ฐ€์žฅ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) SUM(SAL) OVER()

2) SUM(SAL) OVER(PARTITION BY JOB ORDER BY EMPNO RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) SAL1

3) SUM(SAL) OVER(PARTITION BY JOB ORDER BY JOB RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) SAL2

4) SUM(SAL) OVER(PARTITION BY JOB ORDER BY EMPNO RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING) SAL3

 

๋ฌธ์ œ 23. ์ธ๋ฑ์Šค์— ๋Œ€ํ•œ ํŠน์ง•์œผ๋กœ ์ž˜๋ชป๋œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) Insert, Update, Delete ๋“ฑ๊ณผ ๊ฐ™์€ DML ์ž‘์—…์€ ํ…Œ์ด๋ธ”๊ณผ ์ธ๋ฑ์Šค๋ฅผ ํ•จ๊ป˜ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค.

2) ์ธ๋ฑ์Šค ์‚ฌ์šฉ์˜ ๋ชฉ์ ์€ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์˜ ์ตœ์ ํ™”์ด๋‹ค.

3) ์ธ๋ฑ์Šค ๋ฐ์ดํ„ฐ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์นผ๋Ÿผ์˜ ๊ฐ’์œผ๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

4) ์ธ๋ฑ์Šค๋Š” Equal ์กฐ๊ฑด๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฌธ์ œ 24. ๋‹ค์Œ()์— ํ•ด๋‹น๋˜๋Š” Subquery์˜ ์ด๋ฆ„์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

SELECT (ใ„ฑ)
FROM (ใ„ด)
WHERE = (ใ„ท);
1) ์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ, ์ธ๋ผ์ธ๋ทฐ, ์„œ๋ธŒ์ฟผ๋ฆฌ

2) ์ธ๋ผ์ธ๋ทฐ, ์ธ๋ผ์ธ๋ทฐ, ์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ

3) ๋ฉ”์ธ์ฟผ๋ฆฌ, ์ธ๋ผ์ธ๋ทฐ, ์„œ๋ธŒ์ฟผ๋ฆฌ

4) ์„œ๋ธŒ์ฟผ๋ฆฌ, ์ธ๋ผ์ธ๋ทฐ, ๋ฉ”์ธ์„œ๋ธŒ์ฟผ๋ฆฌ

 

๋ฌธ์ œ 25. ๋‹ค์Œ ์ค‘ PL/SQL์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ๊ฐ€์žฅ ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜ ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜ SQL ๋ฌธ์žฅ์„ ์‹คํ–‰ํ•  ๋•Œ WHERE์ ˆ์˜ ์กฐ๊ฑด ๋“ฑ ์œผ๋กœ ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

2) Procedure, User Defined Function, Trigger ๊ฐ์ฒด๋ฅผ PL/SQL๋กœ ์ž‘์„ฑ ํ•  ์ˆ˜ ์žˆ๋‹ค.

3) Procedure ๋‚ด๋ถ€์— ์ž‘์„ฑ๋œ ์ ˆ์ฐจ์  ์ฝ”๋“œ๋Š” PL/SQL ์—”์ง„์ด ์ฒ˜๋ฆฌํ•˜๊ณ  ์ผ๋ฐ˜์ ์ธ SQL ๋ฌธ์žฅ์€ SQL ์‹คํ–‰๊ธฐ๊ฐ€ ์ฒ˜๋ฆฌํ•œ๋‹ค.

4) PL/SQL ๋ฌธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋กœ DECLARE, BEGIN ~ END, EXCEPTION์€ ํ•„์ˆ˜์ ์œผ๋กœ ์จ์•ผ ํ•œ๋‹ค.

 

๋ฌธ์ œ 26. ๋‹ค์Œ ์ค‘ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ€์žฅ ๋ถ€์ ์ ˆํ•œ ๊ฒƒ์€?  ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

2) Trigger

3) Lock

4) ์ œ์•ฝ์กฐ๊ฑด

 

๋ฌธ์ œ 27. ์•„๋ž˜์˜ SQL๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜์˜€์„ ๋•Œ์˜ ๊ฒฐ๊ณผ๊ฐ€ Result์™€ ๊ฐ™์„ ๋•Œ Result์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์ ์ ˆํ•˜์ง€ ์•Š์€๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQL>
SELECT CONNECT BY ROOT LAST_NAME AS BOSS
MANAGER_ID, EMPLOYEE_ID, LAST_NAME,
LEVEL,
CONNECT BY_ISLEAF,
SYS_CONNECT_BY_PATH(LAST_NAME.'-')"PATH",
FROM SQLD_27
WHERE 1=1 START WITH MANAGER_ID IS NULL
CONNECT BY PRIOR EMPLOYEE_ID = MANAGER_ID
[RESULT]
BOSS   MANAGER_ID   EMPLOYEE_ID   LAST_NAME  LEVEL  CONNECT_BY_ISLEAFPATH
----------------------------------------------------------------------
[  ]                     100           A       0          -A
A          100           101           B       0          -A-B
A          101           108           C       0          -A-B-C
A          101           205           L       0          -A-B-L
A          108           109           D       1          -A-B-C-D
A          108           110           E       1          -A-B-C-E
A          108           111           F       1          -A-B-C-F
A          108           112           G       1          -A-B-C-G
A          108           113           H       1          -A-B-C-H
A          101           200           I       1          -A-B-I
A          101           203           J       1          -A-B-J
A          101           204           K       1          -A-B-K
A          205           206           M       1          -A-B-L-M
1) [   ]๋Š” A์ด๋‹ค.
2) LEAF ๋ฉด 1์„ LEAF๊ฐ€ ์•„๋‹ˆ๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
3) ์ž์‹์—์„œ ๋ถ€๋ชจ๋กœ ๊ฐ€๋Š” ์—ญ๋ฐฉํ–ฅ์ด๋‹ค.
4) LEVEL์€ ๊ณ„์ธต์˜ ๊นŠ์ด๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ KING์€ ์ตœ์ƒ์œ„ ๊ณ„์ธต์ด๋‹ค.

 

๋ฌธ์ œ 28. ์•„๋ž˜์˜ SQL๋ฌธ์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

SELECT*FROM SQLD_28
WHERE EMP NAME LIKE 'A%';
1) ํ…Œ์ด๋ธ”์˜ EMP NAME์ด A ๋˜๋Š” a๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ROW

2) ํ…Œ์ด๋ธ”์˜ EMP NAME์ด A๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ROW

3) ํ…Œ์ด๋ธ”์˜ EMP NAME์ด A๋กœ ๋๋‚˜๋Š” ๋ชจ๋“  ROW

4) ํ…Œ์ด๋ธ”์˜ EMP NAME์ด A๋˜๋Š” a๋กœ ๋๋‚˜๋Š” ๋ชจ๋“  ROW

 

๋ฌธ์ œ 29. ๋‹ค์Œ ์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ”์—์„œ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์•Œ๋งž์€ ๊ฒƒ์€?  ์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD_29]
JOB_TITLE    EMP_NAME     SALARY
---------------------------------
CLERK          JACSON     2000
SALESMAN       KING       3000
SALESMAN       BOAN       4000
CLERK          LUCAS      5000
SALESMAN       CADEN      6000
CLERK          GRAYSON    7000
DEVELOPER      LOGAN      8000
CLERK          JIM        9000

[RESULT]
SELECT COUNT(*)
FROM SQLD_29
WHERE JOB_TITLE = 'CLERK'
OR (EMP_NAME LIKE 'K%' AND SALARY >= 3000)

1) 4๊ฑด

2) 5๊ฑด

3) 6๊ฑด

4) 8๊ฑด

 

๋ฌธ์ œ 30. ๋‹ค์Œ ์ค‘ ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋  ๋•Œ ๋นˆ ๊ณต๊ฐ„์œผ๋กœ ์ฑ„์šฐ๋Š” ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) VARCHAR2

2) CHAR

3) DATE

4) NUMBER

 

๋ฌธ์ œ 31. ๋‹ค์Œ ์ค‘ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) SELECT SUBSTR(TO_CHAR('20190504'),5,2) FROM DUAL;

2) SELECT EXTRACT(MONTH FROM DATE '2020-05-01') FROM DUAL;

3) SELECT CONCAT('0', '5') FROM DUAL;

4) SELECT TRIM('05') FROM DUAL;

 

๋ฌธ์ œ 32. ๋‹ค์Œ ์ค‘ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‹ค๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) SELECT UPPER('ebac') FROM DUAL;

2) SELECT RTRIM(' EBAC') FROM DUAL;

3) SELECT SUBSTR('ABCEBACED',4,4) FROM DUAL;

4) SELECT CONCAT('EB','AC') FROM DUAL;

 

๋ฌธ์ œ 33. ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ์•„๋ž˜ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

<SQL>
SELECT SUBSTR('123456788',-4,2)
FROM DUAL;
1) 45

2) 65

3) 43

4) 67

 

๋ฌธ์ œ 34. ์ฃผ์–ด์ง„ SQL๋ฌธ์˜ ๋นˆ์นธ์— ์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋กœ ์˜ณ์ง€ ์•Š๋Š” ๊ฒƒ์€?  ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

[SQLD_34]
DEPT        NAME        SALARY
------------------------------
MARKETING      A           30
SALES          B           40
MARKETING      C           40
SALES          D           50
MANUFACTURE    E           50
MARKETING      F           50
MANUFACTURE    G           60
SALES          H           60
MANUFACTURE    I           70

SELECT*FROM SQLD_34
WHERE SALARY (     );
1) <= (SELECT MAX(SALARY) FROM SQLD_34 GROUP BY DEPT)

2) >= ANY(30,40,50,60,70)

3) <= ALL(30,40,50,60,70)

4) IN (SELECT SALARY FROM SQLD_34 WHERE DEPT = 'MARKETING')

 

๋ฌธ์ œ 35. ๋‹ค์Œ ์ค‘ ์•„๋ž˜์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•œ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

[์š”๊ตฌ์‚ฌํ•ญ]
ํŒ€์ด A์ด๊ฑฐ๋‚˜ B์ด๋ฉด์„œ ๋ฌด๊ฒŒ๊ฐ€ 65๋ณด๋‹ค ํฐ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•ด๋ผ.
(1)
SELECT*FROM PLAYER
WHERE TEAM IN('A','B') AND WEIGHT > 65;

(2)
SELECT*FROM PLAYER
WHERE TEAM = 'A' OR TEAM = 'B' AND
WEIGHT > 65;

(3)
SELECT*FROM PLAYER
WHERE (TEAM = 'A' AND WEIGHT > 65) OR
(TEAM = 'B' AND WEIGHT > 65);

(4)
SELECT *FROM PLAYER
WHERE (TEAM = 'A' OR TEAM = 'B') AND
WEIGHT > 65;

 

๋ฌธ์ œ 36. ๋‹ค์Œ ์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ์ œ์•ฝ์กฐ๊ฑด(CONSTRAINT)์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ๊ฐ€์žฅ ๋ถ€์ ์ ˆํ•œ ๊ฒƒ์€?  

์ •๋‹ตํ™•์ธ๐ŸŒผ

1) Check ์ œ์•ฝ์กฐ๊ฑด์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ํ…Œ์ด๋ธ”์˜ ํŠน์ • ์นผ๋Ÿผ์— ์„ค์ •ํ•˜๋Š” ์ œ์•ฝ์ด๋‹ค.

2) ๊ธฐ๋ณธํ‚ค(Primary Key)๋Š” ๋ฐ˜๋“œ์‹œ ํ…Œ์ด๋ธ” ๋‹น ํ•˜๋‚˜์˜ ์ œ์•ฝ๋งŒ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

3) ๊ณ ์œ ํ‚ค(Unique Key)๋กœ ์ง€์ •๋œ ๋ชจ๋“  ์นผ๋Ÿผ๋“ค์€ Null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.

4) ์™ธ๋ž˜ํ‚ค(Foreign Key)๋Š” ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธํ‚ค(Primary Key)๋ฅผ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค๊ฐ€ ์ฐธ์กฐํ•˜๋„๋ก ์ƒ์„ฑํ•œ๋‹ค.

 

๋ฌธ์ œ 37. ์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ”์—์„œ SQL๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜์˜€์„ ๋•Œ T1, T2, T3์˜ ๊ฒฐ๊ณผ ๊ฑด์ˆ˜๋กœ ์•Œ๋งž์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

[SQLD_37]
COL1
--------
1
2
3

INSERT FIRST
  WHEN C1 >= 2 THEN INTO T1
  WHEN C1 >= 3 THEN INTO T2
  ELSE INTO T3
SELECT*FROM SQLD_37;
1) 0, 1, 2

2) 2, 0, 1

3) 1, 2, 0

4) 0, 2, 1

 

๋ฌธ์ œ 38. ๋ฌธ์ž์—ด ์ค‘ m์œ„์น˜์—์„œ n๊ฐœ์˜ ๋ฌธ์ž ๊ธธ์ด์— ํ•ด๋‹นํ•˜๋Š” ๋ฌธ์ž๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ณ ๋ฅด์‹œ์˜ค. ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) SUBSTR(STR, M, N) / SUBSTRING(STR, M, N)

2) TRIM(STR, M, N)

3) CONCAT(STR, M, N)

4) STRING_SPLIT(STR, M, N)

 

๋ฌธ์ œ 39. ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์ด ์žˆ์„ ๋•Œ ์•„๋ž˜์˜ SQL ๊ฒฐ๊ณผ๋กœ ์•Œ๋งž์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

[SQLD_39]
COL1      COL2
--------------
1          A
1          A
1          A
1          B

SELECT COUNT(COL1), COUNT(COL2)
FROM (
      SELECT DISTINCT COL1, COL2
   FROM SQLD_39
   );
1) 1, 2

2) 2, 1

3) 2, 2

4) 3, 3

 

๋ฌธ์ œ 40. ๋‹ค์Œ ์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์•„๋ž˜์˜ SQL๋ฌธ์˜ ๊ฒฐ๊ณผ ๊ฑด์ˆ˜๋กœ ์•Œ๋งž์€ ๊ฒƒ์€?  ์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD_40]
COL1       COL2
---------------
A           100
B           200
C           300
C           400

SELECT COUNT(*)
FROM SQLD_40
GROUP BY ROLLUP(COL1), COL1;

1) 3

2) 4

3) 6

4) 8

 

๋ฌธ์ œ 41. ๋‹ค์Œ ์ฃผ์–ด์ง„ SQL๋ฌธ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” SQL๋ฌธ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

SELECT*FROM T1
WHERE COL1 BETWEEN A AND B;
(1)
SELECT*FROM T1
WHERE COL1 >= :A AND COL1 <= :B

(2)
SELECT*FROM T1
WHERE COL1 <= :A AND COL1 >= :B

(3)
SELECT*FROM T1
WHERE COL1 >= :A OR COL1 <= :B

(4)
SELECT*FROM T1
WHERE COL1 <= :A OR COL1 <= :B

 

๋ฌธ์ œ 42. ์•„๋ž˜์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค. ๊ฐ ๋ณด๊ธฐ์—์„œ์˜ SQL์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD_42_1]                [SQLD_42_2]
JOB_TITLE     NAME      JOB_TITLE       NAME
------------------      --------------------
MANAGER       A         MANAGER         A
CLERK         B
SALESMAN      C         SALESMAN        C
DEVELOPER     D
(1)                                  (2)
SELECT A.JOB_TITLE, A.NAME           SELECT A.JOB_TITLE, A.NAME
FROM SQLD_42_1 A, SQLD_42_2 B        FROM SQLD_42_1 A LEFT OUTER JOIN SQLD_42_2 B
WHERE A.JOB_TITLE = B.JOB_TITLE;     ON A.JOB_TITLE = B.JOB_TITLE;
<RESULT>                             <RESULT>
JOB_TITLE     NAME                   JOB_TITLE     NAME
------------------                   ------------------
MANAGER       A                      DEVELOPER     D
SALESMAN      C

(3)                                  (4)
SELECT A.JOB_TITLE, A.NAME           SELEC A.JOB_TITLE, A.NAME
FROM SQLD_42_1 A                     FROM SQLD_42_1 A INNER JOIN SQLD_42_2 B
RIGHT OUTER JOIN SQLD_42_2 B         ON A.JOB_TITLE = B.JOB_TITLE;
ON A.JOB_TITLE = B.JOB_TITLE;
<RESULT>                             <RESULT>
JOB_TITLE     NAME                   JOB_TITLE     NAME
------------------                   ------------------
MANAGER       A                      CLERK
SALESMAN      C                      SALESMAN      C

 

- - - - - - - - ์ฃผ๊ด€์‹ - - - - - - - -

๋ฌธ์ œ 43. ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ SQL์˜ ๊ฒฐ๊ณผ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์„ ๋•Œ SQL๋ฌธ์˜ ๋นˆ์นธ์„ ์™„์„ฑํ•˜์‹œ์˜ค.์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD_43]
์ด๋ฆ„    ๋ถ€์„œ       ์ง์ฑ…     ๊ธ‰์—ฌ
----------------------------
์กฐ์กฐ    ๊ฒฝ์˜์ง€์›๋ถ€   ๋ถ€์žฅ     300
์œ ๋น„    ๊ฒฝ์˜์ง€์›๋ถ€   ๊ณผ์žฅ     290
์ œ๊ฐˆ๋Ÿ‰   ์ธ์‚ฌ๋ถ€      ๋Œ€๋ฆฌ     250
์‚ฌ๋งˆ์˜   ์ธ์‚ฌ๋ถ€      ๋Œ€๋ฆฌ     250
๊ด€์šฐ    ์˜์—…๋ถ€      ์‚ฌ์›     230
์žฅ๋น„    ์˜์—…๋ถ€      ์‚ฌ์›     220

- - - - - - - - - - - - - - - - -

SELECT(     ) OVER (ORDER BY ๊ธ‰์—ฌ DESC)
AS ์ˆœ์œ„,
์ด๋ฆ„, ๋ถ€์„œ, ์ง์ฑ…, ๊ธ‰์—ฌ
FROM SQLD_43;

[Result1]
์ˆœ์œ„    ์ด๋ฆ„    ๋ถ€์„œ       ์ง์ฑ…     ๊ธ‰์—ฌ
-----------------------------------
1      ์กฐ์กฐ    ๊ฒฝ์˜์ง€์›๋ถ€   ๋ถ€์žฅ     300
2      ์œ ๋น„    ๊ฒฝ์˜์ง€์›๋ถ€   ๊ณผ์žฅ     290
3      ์ œ๊ฐˆ๋Ÿ‰   ์ธ์‚ฌ๋ถ€      ๋Œ€๋ฆฌ     250
3      ์‚ฌ๋งˆ์˜   ์ธ์‚ฌ๋ถ€      ๋Œ€๋ฆฌ     250
5      ๊ด€์šฐ    ์˜์—…๋ถ€      ์‚ฌ์›     230
6      ์žฅ๋น„    ์˜์—…๋ถ€      ์‚ฌ์›     220

- - - - - - - - - - - - - - - - -

SELECT(     ) OVER (ORDER BY ๊ธ‰์—ฌ DESC)
AS ์ˆœ์œ„,
์ด๋ฆ„, ๋ถ€์„œ, ์ง์ฑ…, ๊ธ‰์—ฌ
FROM SQLD_43;

[Result2]
์ˆœ์œ„    ์ด๋ฆ„    ๋ถ€์„œ       ์ง์ฑ…     ๊ธ‰์—ฌ
-----------------------------------
1      ์กฐ์กฐ    ๊ฒฝ์˜์ง€์›๋ถ€   ๋ถ€์žฅ     300
2      ์œ ๋น„    ๊ฒฝ์˜์ง€์›๋ถ€   ๊ณผ์žฅ     290
3      ์ œ๊ฐˆ๋Ÿ‰   ์ธ์‚ฌ๋ถ€      ๋Œ€๋ฆฌ     250
4      ์‚ฌ๋งˆ์˜   ์ธ์‚ฌ๋ถ€      ๋Œ€๋ฆฌ     250
5      ๊ด€์šฐ    ์˜์—…๋ถ€      ์‚ฌ์›     230
6      ์žฅ๋น„    ์˜์—…๋ถ€      ์‚ฌ์›     220

โœ๏ธ

 

๋ฌธ์ œ 44. ์•„๋ž˜์˜ SQL์„ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQL>
SELECT ROUND(3.45. 1) AS COL1 FROM DUAL;

โœ๏ธ

 

๋ฌธ์ œ 45. ๋‹ค์Œ ๋ณด๊ธฐ์—์„œ ์„ค๋ช…ํ•˜๋Š” ์กฐ์ธ์€ ๋ฌด์—‡์ธ๊ฐ€?

- Equal Join(๋™๋“ฑ ์กฐ์ธ)์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
- ๋Œ€์šฉ๋Ÿ‰ ์ฒ˜๋ฆฌ์— ์œ ๋ฆฌํ•˜๋‹ค.
- ๊ฐ ํ…Œ์ด๋ธ”์— INDEX๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
- ๋ฐ์ดํ„ฐ ๊ฑด์ˆ˜๊ฐ€ ์ ์€ ํ…Œ์ด๋ธ”์„ ์„ ํ–‰ ํ…Œ์ด๋ธ”๋กœ ๋‘๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•˜๋‹ค.

โœ๏ธ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

๋ฌธ์ œ 46. ์•„๋ž˜ ๋‘ ๊ฐœ์˜ SQL์ด ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก SQL์„ ์™„์„ฑํ•˜์‹œ์˜ค.

[SQLD_46]
์ƒํ’ˆ๋ช…    ์ƒํ’ˆ์ฝ”๋“œ      ๋‹จ๊ฐ€
-------------------------
๊ฐ€       A           1000
๋‚˜       D           2000
๋‹ค       G           3000
๊ฐ€       B           4000
๋‚˜       E           5000
๊ฐ€       C           6000
๋‹ค       H           7000
๋‚˜       F           8000

- - - - - - - - - - - - - - - 

SELECT ์ƒํ’ˆ๋ช…, SUM(๋‹จ๊ฐ€)
FROM SQLD_46
WHERE ์ƒํ’ˆ๋ช… = '๊ฐ€'
GROUP BY ROLLUP(์ƒํ’ˆ๋ช…);

SELECT ์ƒํ’ˆ๋ช…, SUM(๋‹จ๊ฐ€)
FROM SQLD_46
WHERE ์ƒํ’ˆ๋ช… = '๊ฐ€'
GROUP BY GROUPING SETS(      );

โœ๏ธ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

๋ฌธ์ œ 47. ์•„๋ž˜์˜ ์„ค๋ช…์—์„œ ๊ด„ํ˜ธ์— ์•Œ๋งž์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ INSERT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ž…๋ ฅํ•œ ์ •๋ณด ์ค‘์— ์ž˜๋ชป ์ž…๋ ฅ๋˜๊ฑฐ๋‚˜
๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•˜์—ฌ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ (    )๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๋˜ํ•œ ํ…Œ์ด๋ธ”์˜ ์ •๋ณด๊ฐ€ ํ•„์š” ์—†๊ฒŒ ๋˜์—ˆ์„ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋ฅผ ์œ„ํ•˜์—ฌ DELETE๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

โœ๏ธ

 

๋ฌธ์ œ 48. ๋ฐ์ดํ„ฐ์˜ ์ž…๋ ฅ/์‚ญ์ œ/์ˆ˜์ • ๋“ฑ์˜ DML ์ˆ˜ํ–‰ ํ›„ ์›์ƒ ๋ณต๊ตฌ๋ฅผ ์œ„ํ•œ ๋ช…๋ น์–ด๋ฅผ ์“ฐ์‹œ์˜ค.

 

โœ๏ธ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

๋ฌธ์ œ 49. ์•„๋ž˜์˜ SQL์— ๋Œ€ํ•œ Column Header๋ฅผ ์ ์œผ์‹œ์˜ค(DBMS : Oracle)

<SQL>
SELECT employee_id, DEPARTMENT_ID, SALARY AS " salary"
FROM SQLD_49
WHERE EMPLOYEE_ID < 110;

โœ๏ธ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

๋ฌธ์ œ 50. ์•„๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ SQL๊ฒฐ๊ณผ๋ฅผ ์ ์œผ์‹œ์˜ค.

[SQLD_50]
COL1     COL2
--------------
1
2
3        1
4        1
5        2
6        2
7        3
8        4
9        5
10       6

- - - - - - -

SELECT COUNt(*)
FROM SQLD_50
WHERE COL1 <> 4
START WITH COL1 = 1
CONNECT BY PRIOR COL1 = COL2;

โœ๏ธ์ •๋‹ตํ™•์ธ๐ŸŒผ


๐Ÿ“SQLD. ์ œ 35 ํšŒ ๊ธฐ์ถœ ๋ฌธ์ œ(์ด 50) - ์ •๋‹ต / ํ•ด์„ค

 

1. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ๋ฐ˜์ •๊ทœํ™”๋ฅผ ํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ํ•ด์นœ๋‹ค.

 

๊ตฌ๋ถ„ ์„ค๋ช…
๋ฐ˜์ •๊ทœํ™”์˜ ๋Œ€์ƒ ๋ถ„์„ - ๋””์Šคํฌ I/O๋Ÿ‰์ด ๋งŽ์•„ ์„ฑ๋Šฅ์ €ํ•˜
- ๊ฒฝ๋กœ๊ฐ€ ๋„ˆ๋ฌด ๋ฉ€์–ด ์กฐ์ธ์œผ๋กœ ์„ฑ๋Šฅ์ €ํ•˜
- ์ปฌ๋Ÿผ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ฝ์„ ๋•Œ ์„ฑ๋Šฅ ์ €ํ•˜
๋ฐ˜์ •๊ทœํ™” ๊ฐœ๋… - ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ, ๊ฐœ๋ฐœ ๋ฐ ์šด์˜์˜ ํŽธ์˜์„ฑ ๋“ฑ์„ ์œ„ํ•ด ์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ํ†ตํ•ฉ, ์ค‘๋ณต, ๋ถ„๋ฆฌํ•˜๋Š” ๊ณผ์ •์œผ๋กœ ์˜๋„์ ์œผ๋กœ ์ •๊ทœํ™” ์›์น™์„ ์œ„๋ฐฐํ•˜๋Š” ํ–‰์œ„
- ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜๊ณ  ๊ด€๋ฆฌ ํšจ์œจ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ค์ง€๋งŒ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ ๋ฐ ์ •ํ•ฉ์„ฑ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค.
- ๊ณผ๋„ํ•œ ๋ฐ˜์ •๊ทœํ™”๋Š” ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚จ๋‹ค.
- ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์ „์— ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ์šฐ์„ ์œผ๋กœ ํ• ์ง€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ๊ณผ ๋‹จ์ˆœํ™”๋ฅผ ์šฐ์„ ์œผ๋กœ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค.
- ๋ฐฉ์ •๊ทœํ™” ๋ฐฉ๋ฒ•์—๋Š” ํ…Œ์ด๋ธ” ํ†ตํ•ฉ, ํ…Œ์ด๋ธ” ๋ถ„ํ• , ์ค‘๋ณต ํ…Œ์ด๋ธ” ์ถ”๊ฐ€, ์ค‘๋ณต ์†์„ฑ ์ถ”๊ฐ€ ๋“ฑ์ด ์žˆ๋‹ค.
ํ…Œ์ด๋ธ” ํ†ตํ•ฉ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์ž์ฃผ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ, ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•˜์—ฌ ํ•ญ์ƒ ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ํ…Œ์ด๋ธ” ํ†ตํ•ฉ์„ ๊ณ ๋ คํ•œ๋‹ค.

 

2. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ๋ถ„์‚ฐ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์™„์ „ํžˆ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

3. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 

์™ธ๋ถ€ ์Šคํ‚ค๋งˆ : ์‚ฌ์šฉ์ž ๊ด€์ 

๊ฐœ๋… ์Šคํ‚ค๋งˆ : ํ†ตํ•ฉ ๊ด€์ 

๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ : ๋ฌผ๋ฆฌ์  ๊ด€์ 

 

4. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ๊ด€๊ณ„๋ฅผ ํ‘œ๊ธฐ๋ฒ•์€ ๊ด€๊ณ„๋ช…, ๊ด€๊ณ„์ฐจ์ˆ˜, ๊ด€๊ณ„์„ ํƒ์‚ฌ์–‘ ์„ธ ๊ฐ€์ง€๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

๊ด€๊ณ„๋ช…(Membership)

๊ด€๊ณ„๋ช…์€ ์—”ํ„ฐํ‹ฐ๊ฐ„ ๊ด€๊ณ„์— ๋งบ์–ด์ง„ ํ˜•ํƒœ ๋œปํ•œ๋‹ค.

๊ด€๊ณ„๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์ชฝ์„ "๊ด€๊ณ„์‹œ์ž‘์ (The Beginning)"์ด๋ผ ์นญํ•˜๋ฉฐ ๋ฐ›๋Š”์ชฝ์„ "๊ด€๊ณ„๋์ (The End)"๋ผ๊ณ  ์นญํ•œ๋‹ค.

๋˜ํ•œ ๊ด€์ ์— ๋”ฐ๋ผ ๋Šฅ๋™์ (Active)์ด๊ฑฐ๋‚˜ ์ˆ˜๋™์ (Passive)์œผ๋กœ ๋ช…๋ช…๋œ๋‹ค.

 

๊ด€๊ณ„์ฐจ์ˆ˜(Degree/Cardinality)

๊ด€๊ณ„์ฐจ์ˆ˜๋ž€ ๋‘ ์—”ํ„ฐํ‹ฐ๊ฐ„ ๊ด€๊ณ„์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋œปํ•œ๋‹ค.

by yunamom

 

๊ด€๊ณ„์„ ํƒ์‚ฌ์–‘(Optionality)

๊ด€๊ณ„์—์„œ ํ•ญ์ƒ ์ฐธ์—ฌํ•˜๋Š”์ง€ ์•„๋‹ˆ๋ฉด ์ฐธ์—ฌํ•  ์ˆ˜๋„ ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•๋”ฐ๋ผ ํ•„์ˆ˜์ฐธ์—ฌ ๊ด€๊ณ„(Mandatory), ์„ ํƒ์ฐธ์—ฌ ๊ด€๊ณ„(Optional)๋กœ ๋‚˜๋‰œ๋‹ค.

 

๊ณ ๊ฐ๊ณผ ์ฃผ๋ฌธ ์—”ํ„ฐํ‹ฐ ๊ด€๊ณ„๋ฅผ ์‚ดํŽด๋ณด์ž. 3๋ช…์˜ ์†๋‹˜์˜ ๊ฐ€๊ฒŒ์— ๋“ค์–ด์™”๋‹ค. ํ•˜์ง€๋งŒ 2๋ช…์˜ ์†๋‹˜๋งŒ ์ฃผ๋ฌธ์„ ์‹œํ‚ฌ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

์ฃผ๋ฌธ์€ ๊ผญ ์†๋‹˜์— ์˜ํ•ด์„œ ์ˆ˜ํ–‰์ด ๋˜์ง€๋งŒ, ์†๋‹˜์€ ์ฃผ๋ฌธ์„ ์‹œํ‚ฌ์ˆ˜๋„ ์žˆ๊ณ  ์•ˆ ์‹œํ‚ฌ์ˆ˜๋„ ์žˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ์ฃผ๋ฌธ์€ ์†๋‹˜์—์˜ํ•ด ์ˆ˜ํ–‰์ด ๋ ์ˆ˜๋„ ์žˆ๊ณ  ์•ˆ ๋ ์ˆ˜๋„ ์žˆ์–ด์„œ ์„ ํƒ์ฐธ์—ฌ ๊ด€๊ณ„์ด๊ณ  ์ฃผ๋ฌธ๋œ ํ•ญ๋ชฉ์€ ๊ผญ ์†๋‹˜์— ์˜ํ•ด์„œ ์ˆ˜ํ–‰์ด ๋˜์–ด์ ธ์•ผ ํ•˜๋ฏ€๋กœ ํ•„์ˆ˜์ฐธ์—ฌ ๊ด€๊ณ„์ด๋‹ค. 

 

์„ ํƒ์ฐธ์—ฌ๊ด€๊ณ„์ผ ๊ฒฝ์šฐ ERD์—์„œ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์„ ์—์„œ ์„ ํƒ์ฐธ์—ฌํ•˜๋Š” ์—”ํ„ฐํ‹ฐ์ชฝ์— ์›์„ ํ‘œ์‹œํ•ด์•ผํ•œ๋‹ค.

 

5. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 

๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
์žฅ ์  -์ง€์—ญ ์ž์น˜์„ฑ, ์ ์ฆ์  ์‹œ์Šคํ…œ ์šฉ๋Ÿ‰ ํ™•์žฅ
-์‹ ๋ขฐ์„ฑ๊ณผ ๊ฐ€์šฉ์„ฑ
-ํšจ์šฉ์„ฑ๊ณผ ์œตํ†ต์„ฑ
-๋น ๋ฅธ ์‘๋‹ต์†๋„์™€ ํ†ต์‹ ๋น„์šฉ ์ ˆ๊ฐ
-๋ฐ์ดํ„ฐ์˜ ๊ฐ€์šฉ์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ ์ฆ๊ฐ€
-์‹œ์Šคํ…œ ๊ทœ๋ชจ์˜ ์ ์ ˆํ•œ ์กฐ์ ˆ
-๊ฐ ์ง€์—ญ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์ˆ˜์šฉ ์ฆ๋Œ€
๋‹จ ์  -์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋น„์šฉ
-์˜ค๋ฅ˜์˜ ์ž ์žฌ์„ฑ ์ฆ๋Œ€
-์ฒ˜๋ฆฌ๋น„์šฉ์˜ ์ฆ๋Œ€
-์„ค๊ณ„, ๊ด€๋ฆฌ์˜ ๋ณต์žก์„ฑ๊ณผ ๋น„์šฉ
-๋ถˆ๊ทœ์น™ํ•œ ์‘๋‹ต ์†Œ๊ณ 
-ํ†ต์ œ์˜ ์–ด๋ ค์›€
-๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์— ๋Œ€ํ•œ ์œ„ํ˜‘

 

6. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : '๊ฐ€' ๋ชจ๋ธ์˜ ์ˆ˜๊ฐ•๊ณผ๋ชฉ ์—”ํ„ฐํ‹ฐ๋ฅผ ๋ณด๋ฉด 1์ •๊ทœํ˜•์„ ์œ„๋ฐ˜ํ•œ ๊ฒƒ์ด ๋ณด์ธ๋‹ค.

 

7. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ํ…Œ์ด๋ธ” ์กฐ์ธ ์กฐ๊ฑด ๊ณ„์‚ฐ( n - 1 )

Student, Grade๋ฅผ ๋น„์‹๋ณ„์ž ๊ด€๊ณ„๋กœ ์„ค๊ณ„ํ•˜๋ฉด Grade, Module์€ ์‹๋ณ„์ž ๊ด€๊ณ„์ด๋ฏ€๋กœ Student, Module์„ ์„ค๊ณ„ ํ•  ๋•Œ ์˜คํžˆ๋ ค ์กฐ์ธ์˜ ๋ณต์žก์„ฑ์ด ์ปค์งˆ ์ˆ˜ ์žˆ๋‹ค.

์‹๋ณ„์ž ๋ถ„๋ฅ˜ ์‹๋ณ„์ž ์„ค๋ช…
๋Œ€ํ‘œ์„ฑ์—ฌ๋ถ€

์ฃผ์‹๋ณ„์ž - ์—”ํ„ฐํ‹ฐ ๋‚ด์—์„œ ๊ฐ ํ–‰์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ๋ถ„์ž์ด๋ฉฐ, ํƒ€ ์—”ํ„ฐํ‹ฐ์™€ ์ฐธ์กฐ๊ด€๊ณ„๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์‹๋ณ„์ž (ex. ์‚ฌ์›๋ฒˆํ˜ธ, ๊ณ ๊ฐ๋ฒˆํ˜ธ)
๋ณด์กฐ์‹๋ณ„์ž - ์—”ํ„ฐํ‹ฐ ๋‚ด์—์„œ ๊ฐ ํ–‰์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ๋ถ„์ž์ด๋‚˜ ๋Œ€ํ‘œ์„ฑ์„ ๊ฐ€์ง€์ง€ ๋ชปํ•ด ์ฐธ์กฐ๊ด€๊ณ„ ์—ฐ๊ฒฐ์„ ๋ชปํ•จ(ex. ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ)
์Šค์Šค๋กœ
์ƒ์„ฑ์—ฌ๋ถ€
๋‚ด๋ถ€์‹๋ณ„์ž - ์—”ํ„ฐํ‹ฐ ๋‚ด๋ถ€์—์„œ ์Šค์Šค๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ์‹๋ณ„์ž(ex. ๊ณ ๊ฐ๋ฒˆํ˜ธ)
์™ธ๋ถ€์‹๋ณ„์ž - ํƒ€ ์—”ํ„ฐํ‹ฐ์™€์˜ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ํƒ€ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์˜ค๋Š” ์‹๋ณ„์ž(ex. ์ฃผ๋ฌธ์—”ํ„ฐํ‹ฐ์˜ ๊ณ ๊ฐ๋ฒˆํ˜ธ)
์†์„ฑ์˜ ์ˆ˜ ๋‹จ์ผ์‹๋ณ„์ž - ํ•˜๋‚˜์˜ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์‹๋ณ„์ž(ex. ๊ณ ๊ฐ์—”ํ„ฐํ‹ฐ์˜ ๊ณ ๊ฐ๋ฒˆํ˜ธ )
๋ณตํ•ฉ์‹๋ณ„์ž - ๋‘˜ ์ด์ƒ์˜ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์‹๋ณ„์ž(ex. ์ฃผ๋ฌธ์ƒ์„ธ์—”ํ„ฐํ‹ฐ์˜ ์ฃผ๋ฌธ๋ฒˆํ˜ธ+์ƒ์„ธ์ˆœ๋ฒˆ)
๋Œ€์ฒด์—ฌ๋ถ€ ๋ณธ์งˆ์‹๋ณ„์ž - ์—…๋ฌด์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง€๋Š” ์‹๋ณ„์ž(ex. ๊ณ ๊ฐ๋ฒˆํ˜ธ)
์ธ์กฐ์‹๋ณ„์ž - ์—…๋ฌด์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€์ง€๋Š” ์•Š์ง€๋งŒ ์›์กฐ์‹๋ณ„์ž๊ฐ€ ๋ณต์žกํ•œ ๊ตฌ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธ์œ„์ ์œผ๋กœ ๋งŒ๋“  ์‹๋ณ„์ž(ex. ์ฃผ๋ฌธ์—”ํ„ฐํ‹ฐ์˜ ์ฃผ๋ฌธ๋ฒˆํ˜ธ(๊ณ ๊ฐ๋ฒˆํ˜ธ+์ฃผ๋ฌธ๋ฒˆํ˜ธ+์ˆœ๋ฒˆ))

 

8. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ์™ธ๋ž˜ํ‚ค๊ฐ€ ์„ค๊ณ„๋˜์–ด ์žˆ์ง€๋งŒ ์ธ๋ฑ์Šค๊ฐ€ ์—†๋Š” ์ƒํƒœ๋ผ๋ฉด ์ž…๋ ฅ/์‚ญ์ œ/์ˆ˜์ •์˜ ๋ถ€ํ•˜๊ฐ€ ๋œ ์ƒ๊ธด๋‹ค.

 

9. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ROW์˜ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ SCANํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ๊ฐ์†Œ๋  ์ˆ˜ ์žˆ๋‹ค.

๊ตฌ๋ถ„
Row Chaining
Row Migration
์ •์˜
ํ•˜๋‚˜์˜ Row๋ฅผ ํ•˜๋‚˜์˜ ๋ธ”๋ก์— ์ €์žฅํ•  ์ˆ˜ ์—†์–ด์„œ ์—ฌ๋Ÿฌ ๋ธ”๋ก์— ๊ฑธ์ณ์„œ ์ €์žฅํ•˜๋Š” ํ˜„์ƒ
Update๋กœ ์ธํ•˜์—ฌ ๋Š˜์–ด๋‚˜๋Š” ๊ณต๊ฐ„์„ ์ €์žฅํ•  ๊ณต๊ฐ„์ด ์—†์–ด์„œ ๋‹ค๋ฅธ ๋ธ”๋ก์œผ๋กœ Row๋ฅผ ์˜ฎ๊ธฐ๋Š” ํ˜„์ƒ
ํŠน์„ฑ
Initial Row Piece(ํ–‰ ์กฐ์ž‘)์™€ Row Pointer๋กœ ๋ธ”๋ก ๋‚ด์— ์ €์žฅ๋จ
๊ธฐ์กด ๋ธ”๋ก์—๋Š” Migration๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ row header์™€ ๋ธ”๋ก ์ฃผ์†Œ๊ฐ’์„ ๊ฐ–๊ฒŒ ๋˜๊ณ , ์ƒˆ๋กœ์šด ๋ธ”๋ก์—๋Š” Migration๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋จ
๋ฌธ์ œ์ 
Row์˜ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ Scanํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ๊ฐ์†Œ๋จ
Migration๋œ Row๋ฅผ ์ฝ๊ธฐ ์ „์— ๊ธฐ์กด ๋ธ”๋ก์—์„œ ํ—ค๋”๋ฅผ ํ†ตํ•ด Migration๋œ Row๋ฅผ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ๊ฐ์†Œ๋จ
ํ•ด๊ฒฐ์ฑ…
๋ธ”๋ก์˜ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ๋งŒ๋“ ๋‹ค.
-PCTFREE๋ฅผ ํฌ๊ฒŒ ์„ค์ •
-๊ฐ์ฒด๋ฅผ Exportํ•˜๊ณ  ์‚ญ์ œํ•œ ํ›„ import
-๊ฐ์ฒด๋ฅผ Migrationํ•˜๊ณ 
Truncate

 

10. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ํ†ต๊ณ„ ํ…Œ์ด๋ธ” ์ถ”๊ฐ€๋Š” ํ…Œ์ด๋ธ” ์ถ”๊ฐ€์— ํ•ด๋‹นํ•œ๋‹ค.

๊ธฐ๋ฒ•๋ถ„๋ฅ˜
๊ธฐ๋ฒ•
๋‚ด์šฉ
ํ…Œ์ด๋ธ”
๋ณ‘ํ•ฉ
1:1 ๊ด€๊ณ„ ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ
1:1 ๊ด€๊ณ„๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์„ฑ๋Šฅํ–ฅ์ƒ
1:M ๊ด€๊ณ„ ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ
1:M ๊ด€๊ณ„๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์„ฑ๋Šฅํ–ฅ์ƒ
์Šˆํผ/์„œ๋ธŒํƒ€์ž… ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ
์Šˆํผ/์„œ๋ธŒ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ
ํ…Œ์ด๋ธ”
๋ถ„ํ• 
์ˆ˜์ง๋ถ„ํ• 
์ปฌ๋Ÿผ ๋‹จ์œ„์˜ ํ…Œ์ด๋ธ”์„ ๋””์Šคํฌ I/O๋ฅผ ๋ถ„์‚ฐ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ”์„ 1:1๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์„ฑ๋Šฅํ–ฅ์ƒ(ํŠธ๋žœ์žญ์…˜์˜ ์ฒ˜๋ฆฌ๋˜๋Š” ์œ ํ˜•ํŒŒ์•…์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•จ)
์ˆ˜ํ‰๋ถ„ํ• 
ํ–‰(๋ ˆ์ฝ”๋“œ)๋‹จ์œ„๋กœ ์ง‘์ค‘ ๋ฐœ์ƒ๋˜๋Š” ํŠธ๋žœ์žญ์…˜์„ ๋ถ„์„ํ•˜์—ฌ ๋””์Šคํฌ I/O ๋ฐ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์˜ ํšจ์œจ์„ฑ์„ ๋†’์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•˜๊ธฐ ์œ„ํ•ด ํ–‰ ๋‹จ์œ„๋กœ ํ…Œ์ด๋ธ”์„ ์ชผ๊ฐฌ
ํ…Œ์ด๋ธ”
์ถ”๊ฐ€
์ค‘๋ณตํ…Œ์ด๋ธ” ์ถ”๊ฐ€
๋‹ค๋ฅธ ์—…๋ฌด์ด๊ฑฐ๋‚˜ ์„œ๋ฒ„๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ ๋™์ผํ•œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ์ค‘๋ณตํ•˜์—ฌ ์›๊ฒฉ ์กฐ์ธ์„ ์ œ๊ฑฐํ•˜๊ณ  ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ
ํ†ต๊ณ„ํ…Œ์ด๋ธ” ์ถ”๊ฐ€
SUM, AVG ๋“ฑ์„ ๋ฏธ๋ฆฌ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ณ„์‚ฐํ•ด ๋‘ ์œผ๋กœ์จ ์กฐํšŒ ์‹œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ
์ด๋ ฅํ…Œ์ด๋ธ” ์ถ”๊ฐ€
์ด๋ ฅํ…Œ์ด๋ธ” ์ค‘์—์„œ ๋งˆ์Šคํ„ฐ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์ค‘๋ณตํ•˜์—ฌ ์ด๋ ฅ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ๋ฐฉ๋ฒ•

 

11. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : NATURAL JOIN์—์„œ EMP.DEPTNO์™€ ๊ฐ™์ด OWNER ๋ช…์„ ์‚ฌ์šฉํ•˜๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ

 

12. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 1,2,3๋ฒˆ์€ 2๊ฐœ์˜ ํ…Œ์ด๋ธ”์—์„œ ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง€๋Š” ์นผ๋Ÿผ์— ๋Œ€ํ•ด์„œ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๊ณ  4๋ฒˆ์€ ๋‘ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•˜๋Š” CROSS JOIN ๋ฐฉ์‹์ž„.

 

13. ์ •๋‹ต :  1 

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : UNION์€ ์ค‘๋ณต๋œ ํ–‰์„ ์ œ๊ฑฐํ•˜๊ณ  ์ •๋ ฌํ•œ๋‹ค. UNION ALL์€ ํ•ฉ์ง‘ํ•ฉ

 

14. ์ •๋‹ต :  1

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 1๋ฒˆ์€ 200<= A <=400, 200<= B <=400์˜ ์˜๋ฏธ์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ชจ๋‘ COL1<=200 && COL2>=200๋ฅผ ์˜๋ฏธํ•จ

 

15. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ACID

Atomicity(์›์ž์„ฑ)

Consistency(์ผ๊ด€์„ฑ)

Isolation(๊ณ ๋ฆฝ์„ฑ)

Durability(์˜์†์„ฑ)

 

16. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : COMMIT์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๊ณ ์น  ์ˆ˜ ์—†๋‹ค.(๊ณ ๋ฆฝ์„ฑ)

 

17. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : NULL์€ ์˜ค๋กœ์ง€ IS NULL, IS NOT NULL๋กœ๋งŒ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅ


18. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : LIKE ์—ฐ์‚ฐ์œผ๋กœ %๋‚˜ _๊ฐ€ ๋“ค์–ด๊ฐ„ ๋ฌธ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ESCAPE ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ _๋‚˜ % ์•ž์— ESCAPE๋กœ ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ์ง€์ •ํ•˜๋ฉด ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

19. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ROWNUM = 1์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ•˜์ง€๋งŒ ROWNUM = 2์ธ ๊ฒฝ์šฐ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€

์ถ”์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค.

(ROWNUM์€ WHERE์ ˆ์„ ๋งŒ์กฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ์— ๋ถ™์ด๋Š” ์ˆœ๋ฒˆ์ด๋ฏ€๋กœ ํ•ด์„ํ•ด ๋ณด๋ฉด,

ROWNUM = 2๋Š”, ์ฒ˜์Œ ํ•œ ๊ฑด ์ถ”์ถœํ•ด์„œ ROWNUM์ด 2์ธ์ง€ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์ฒ˜์Œ ๋ ˆ์ฝ”๋“œ๋Š” ROWNUM์ด 1์ด๋ฉฐ, ์กฐ๊ฑด์— ๋งž์ง€ ์•Š๋‹ค.

 

20. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค :

๊ธˆ์•ก1 : 300 -> NVL(=ISNULL) A๊ฐ€ NULL์ด๋ฉด B๋กœ ๊ฐ€๊ณ , ์•„๋‹ˆ๋ฉด A๋ฅผ ์ถœ๋ ฅ

๊ธˆ์•ก2 : 300 -> COALESCE NULL์ด ์•„๋‹Œ ์ตœ์ดˆ๊ฐ’ ์ถœ๋ ฅ

๊ธˆ์•ก3 : NULL -> NULLIF A์™€ B์˜ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด NULL, ์•„๋‹ˆ๋ฉด A๋ฅผ ์ถœ๋ ฅ

๊ธˆ์•ก4 : 300 -> CASE WHEN A IS NOT NULL THEN A ELSE B END : A๊ฐ€ NOT NULL์ด๋ฉด A ์ถœ๋ ฅ, ์•„๋‹ˆ๋ฉด B ์ถœ๋ ฅ

 

21. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : SQL server (EXCEPT) / Oracle (MINUS)

 

22. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 

UNBOUNDED PRECEDING์€ end point์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์—†๋‹ค.

RANGE BETWEEN start_point AND end_point

-start point๋Š” end_point์™€ ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์€ ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค.

-Default๊ฐ’์€ RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW๊ฐ€ ๋œ๋‹ค.

-UNBOUNDED PRECEDING : start_point๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŒŒํ‹ฐ์…˜์˜ first row๊ฐ€ ๋œ๋‹ค.

-UNBOUNDED FOLLOWING : end_point๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŒŒํ‹ฐ์…˜์˜ last_row๊ฐ€ ๋œ๋‹ค.

-CURRENT ROW : start_point, end_point ๋‘˜ ๋‹ค ๊ฐ€๋Šฅํ•˜๋‹ค. ์œˆ๋„์šฐ๋Š” CURRENT ROW์—์„œ startํ•˜๊ฑฐ๋‚˜ endํ•œ๋‹ค.

 

23. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค :์ธ๋ฑ์Šค ์ค‘ B-ํŠธ๋ฆฌ ์ธ๋ฑ์Šค๋Š” Equal ์กฐ๊ฑด๋ฟ ์•„๋‹ˆ๋ผ BETWEEN, > ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์ž๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฒ”์œ„ ๊ฒ€์ƒ‰์—๋„ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

์ธ๋ฑ์Šค์˜ ํŠน์ง•
- ์ธ๋ฑ์Šค๋Š” ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์ฑ…์˜ ์ƒ‰์ธ๊ณผ ์œ ์‚ฌํ•œ ๊ฐœ๋…์ด๋‹ค.
- ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ ํƒ์ ์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ์ด๋‹ค.
- ์ธ๋ฑ์Šค์˜ ๊ธฐ๋ณธ์ ์ธ ๋ชฉ์ ์€ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์˜ ์ตœ์ ํ™”์ด๋‹ค.
- ๊ฒ€์ƒ‰ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ํšจ๊ณผ์ ์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค.
- DML์ž‘์—…์€ ํ…Œ์ด๋ธ”๊ณผ ์ธ๋ฑ์Šค๋ฅผ ํ•จ๊ป˜ ๋ณ€๊ฒฝํ•˜๋ฏ€๋กœ ๋Š๋ ค์ง€๋Š” ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.
- ์ธ๋ฑ์Šค ๋ฐ์ดํ„ฐ๋Š” ์ธ๋ฑ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์นผ๋Ÿผ์˜ ๊ฐ’์œผ๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

24. ์ •๋‹ต :  1

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 

์„œ๋ธŒ์ฟผ๋ฆฌ ์„ค๋ช…
SELECT 
์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ
์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ํ•œ ํ–‰, ํ•œ ์ปฌ๋Ÿผ๋งŒ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
FROM
์ธ๋ผ์ธ *๋ทฐ
์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ FROM ์ ˆ์— ์‚ฌ์šฉ๋˜๋ฉด ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ธ๋ผ์ธ ๋ทฐ๋Š” SQL ๋ฌธ์ด ์‹คํ–‰๋  ๋•Œ๋งŒ ์ž„์‹œ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๋™์ ์ธ ๋ทฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ•ด๋‹น ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
WHERE / HAVING
์„œ๋ธŒ์ฟผ๋ฆฌ
๊ทธ๋ฃนํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋  ๋•Œ ๊ทธ๋ฃนํ•‘๋œ ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด ๋ถ€๊ฐ€์ ์ธ ์กฐ๊ฑด์„ ์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
 ๊ตฌ๋ถ„  ์„ค๋ช…
*๋ทฐ ๊ฐœ๋…
VIEW
ํ…Œ์ด๋ธ”์€ ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ˜๋ฉด, ๋ทฐ๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค.
์งˆ์˜์—์„œ ๋ทฐ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉด ๋ทฐ ์ •์˜๋ฅผ ์ฐธ์กฐํ•ด์„œ DBMS ๋‚ด๋ถ€์ ์œผ๋กœ ์งˆ์˜๋ฅผ ์žฌ์ž‘์„ฑํ•˜์—ฌ ์งˆ์˜๋ฅผ ์ˆ˜ํ–‰
๋ทฐ๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์ง€๋งŒ ํ…Œ์ด๋ธ”์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์ƒ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.
 ๋…๋ฆฝ์„ฑ  ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
 ํŽธ๋ฆฌ์„ฑ  ๋ณต์žกํ•œ ์งˆ์˜๋ฅผ ๋ทฐ๋กœ ์ƒ์„ฑํ•จ์œผ๋กœ์จ ๊ด€๋ จ ์งˆ์˜๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
 ๋ณด์•ˆ์„ฑ  ์ˆจ๊ธฐ๊ณ  ์‹ถ์€ ์ •๋ณด๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ, ๋ทฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ•ด๋‹น ์ปฌ๋Ÿผ์„ ๋นผ๊ณ  ์ƒ์„ฑํ•˜์—ฌ ์ •๋ณด๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

 

25. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋Š” ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค.

 

26. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : Lock/Unlock์€ ๋ณ‘ํ–‰์„ฑ ์ œ์–ด(๋™์‹œ์„ฑ) ๊ธฐ๋ฒ•์ด๋‹ค.

๋ฌด๊ฒฐ์„ฑ : ๋ฐ์ดํ„ฐ ์ž„์˜ ๊ฐฑ์‹ ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ.

์ œ์•ฝ์กฐ๊ฑด์„ ๋„ฃ์–ด์„œ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ฑฐ๋‚˜, Triger ๋กœ์ง ์•ˆ์— ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ์„ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๊ณ , ๊ฐœ๋ฐœ์ž์˜ ์ฝ”๋”ฉ์—์„œ ๋กœ์ง์„ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

 

27. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : MANAGER_ID IS NULL ๋กœ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ์—์„œ ์ž์‹์œผ๋กœ ์กฐํšŒํ•˜๋Š” ์ •๋ฐฉํ–ฅ์ด๋‹ค.

 

28. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค :  _ (ํ•œ๊ธ€์ž), A%(A๋กœ ์‹œ์ž‘ํ•˜๋Š”), %A(A๋กœ ๋๋‚˜๋Š”)

 

29. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : CLERKํ–‰ + K๋กœ ์‹œ์ž‘ํ•˜๋Š” ์—ฐ๋ด‰ 3000์ด์ƒ ๋ฐ˜ํ™˜

 

30. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : CHAR(10)์œผ๋กœ ์นผ๋Ÿผ์„ ์ƒ์„ฑํ•˜๊ณ  8๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋‚˜๋จธ์ง€ 2๊ฐœ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์ž…๋ ฅ๋œ๋‹ค. VARCHAR2๋Š” ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž์—ด ํƒ€์ž…์œผ๋กœ ์ž…๋ ฅํ•œ ํฌ๊ธฐ๋งŒํผ ํ• ๋‹น๋œ๋‹ค.

 

31. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 2๋ฒˆ๋งŒ 5๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” '05'๋ฅผ ๋ฐ˜ํ™˜

SUBSTR ๋ฌธ์ž์—ด ์Šฌ๋ผ์ด์‹ฑ -> '20190504'์˜ 5๋ฒˆ์งธ '0'์—์„œ 2๋ฒˆ์งธ๊นŒ์ง€ -> '05'

EXTRACT (YEAR/MONTH/DAY FROM SYSDATE) ์—ฐ,์›”,์ผ์„ ๋ฝ‘์•„์„œ ์ถœ๋ ฅ -> 5(๋ฌธ์ž์—ด ์•„๋‹˜)

CONCAT ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ -> '05'

TRIM ๊ณต๋ฐฑ ์ œ๊ฑฐ -> '05'

 

32. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 

UPPER ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ -> 'EBAC'

RTRIM ์˜ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ œ๊ฑฐ -> ' EBAC'

SUBSTR ๋ฌธ์ž์—ด ์Šฌ๋ผ์ด์‹ฑ -> 'ABCEBACED'์˜ 4๋ฒˆ์งธ 'EBACED'์—์„œ 4๋ฒˆ์งธ๊นŒ์ง€ -> 'EBAC'

CONCAT ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ -> 'EBAC'

 

33. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ๋’ค์—์„œ 4๋ฒˆ์งธ ์ž๋ฆฌ๊ฐ’์ธ 6๋ถ€ํ„ฐ 2๊ฐœ ๋ฐ˜ํ™˜ -> 67 

 

34. ์ •๋‹ต :  1

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค :

๋‹จ์ผํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ

-์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ํ•ญ์ƒ 1๊ฑด ์ดํ•˜์ธ ์„œ๋ธŒ์ฟผ๋ฆฌ

-ํ•ญ์ƒ ๋น„๊ต์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋œ๋‹ค.

-๋น„๊ต์—ฐ์‚ฐ์ž ๋’ค์—๋Š” ๋‹จ์ผํ–‰์ด ์™€์•ผ ํ•˜๋Š”๋ฐ ๋’ค์— GROUP BY DEPT๋Š” ๋‹ค์ค‘ํ–‰ ํ•จ์ˆ˜๋กœ ๋ฉ€ํ‹ฐํ–‰์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ.

๋‹ค์ค‘ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ

-์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฑด์ธ ์„œ๋ธŒ์ฟผ๋ฆฌ

-๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด ์ ˆ์— ์—ฌ๋Ÿฌ ์นผ๋Ÿผ์„ ๋™์‹œ์— ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค.

-์„œ๋ธŒ์ฟผ๋ฆฌ์™€ ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ์นผ๋Ÿผ ์ˆ˜์™€ ์นผ๋Ÿผ ์ˆœ์„œ๊ฐ€ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค.

 

35. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ๋ชธ๋ฌด๊ฒŒ 65์ธ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ๋ฝ‘๊ณ  A OR B์ธ ํŒ€๋„ ๋ฝ‘์Œ

 

36. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ๊ณ ์œ ํ‚ค๋กœ ์ง€์ •๋œ ๋ชจ๋“  ์นผ๋Ÿผ์€ ์ค‘๋ณต๋œ ๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง„ ์•Š์ง€๋งŒ NULL๊ฐ’์€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

37. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ๋‹ค์ค‘ํ–‰ ์ž…๋ ฅ ์ฟผ๋ฆฌ๋ฌธ์œผ๋กœ Case๋ฌธ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ˆ˜ํ–‰๋˜๋ฉฐ WHEN์„ ๋งŒ์กฑํ•˜๋ฉด ์ข…๋ฃŒํ•œ๋‹ค.

๊ทธ๋ž˜์„œ T1ํ–‰์—๋Š” 2, 3 T2ํ–‰์—๋Š” NULL, T3ํ–‰์—๋Š” 1์ด ์ž…๋ ฅ๋œ๋‹ค.

 

38. ์ •๋‹ต :  1

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : STRING_SPLIT : ์กฐํšŒ๋œ skills ์ปฌ๋Ÿผ์˜ ์‰ผํ‘œ(',') ๊ตฌ๋ถ„์ž๋ฅผ ์ž˜๋ผ์„œ ํ•ด๋‹น ๊ฐœ์ˆ˜๋งŒํผ ํ–‰์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

FROM์ ˆ์—์„œ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

39. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : FROM์ ˆ์—์„œ DISTINCT ๋ช…๋ น์–ด๋กœ ์ค‘๋ณต๋œ COL1, COL2๊ฐ’์€ ์ œ์™ธ๋˜์–ด COL1, COL2๊ฐ€ (1, A), (1,B)์ธ 2๊ฐœ์˜ ํ–‰๋งŒ ๋ฐ˜ํ™˜๋˜๊ณ  ๊ฐ๊ฐ COUNT๊ฐ’ 2๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

40. ์ •๋‹ต :  3

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : a ๊ธฐ์ค€ ์ง‘๊ณ„ ๋‘๋ฒˆ ํ•œ ๊ฒฐ๊ณผ

 

"๋กค์—…์„ ํ•˜๋ฉด ์ด๊ณ„๊ฐ€ ๋‚˜์˜จ๋‹ค"
๋กค์—…์€ ๊ด„ํ˜ธ ์•ˆ์˜ ํ•ญ๋ชฉ๋“ค์„ ์˜ค๋ฅธ์ชฝ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ์ง€์›Œ๋‚˜๊ฐ€๋ฉด์„œ ์ง‘๊ณ„ํ•œ๋‹ค.


์˜ˆ๋ฅผ ๋“ค๋ฉด ROLLUP(a, b) ๋Š”
1. (a, b) ํ•ฉ๊ณ„
2. (a) ํ•ฉ๊ณ„
3. () ํ•ฉ๊ณ„
์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€ ํ˜•ํƒœ์˜ ์ง‘๊ณ„ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

ROLLUP(a), a ๋ฅผ ๋ณด๋ฉด
1. (a), a
2. (), a
์ด๋ ‡๊ฒŒ ๋‘๊ฐ€์ง€ ํ˜•ํƒœ์˜ ์ง‘๊ณ„ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.


a ๊ฐ€ ๋‘๋ฒˆ ๋‚˜์˜ค๋‚˜ ํ•œ๋ฒˆ ๋‚˜์˜ค๋‚˜ ๋‹ค ๊ฐ™์€ a ๊ธฐ์ค€ ์ง‘๊ณ„ ๊ฒฐ๋ก ์€ a ๊ธฐ์ค€ ์ง‘๊ณ„ ๋‘๋ฒˆ ํ•œ ๊ฒฐ๊ณผ

 

 

41. ์ •๋‹ต :  1

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 

์—ฐ์‚ฐ์ž ์—ฐ์‚ฐ์ž์˜ ์˜๋ฏธ
BETWEEN a AND b a์™€ b์˜ ๊ฐ’ ์‚ฌ์ด์— ์žˆ์œผ๋ฉด ๋œ๋‹ค.
(a์™€ b์˜ ๊ฐ’์ด ํฌํ•จ๋จ)
:a<=COL<=B
IN(list) ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๊ฐ’ ์ค‘์—์„œ ์–ด๋Š ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋ฉด ๋œ๋‹ค.
LIKE '๋น„๊ต๋ฌธ์ž์—ด' ๋น„๊ต๋ฌธ์ž์—ด๊ณผ ํ˜•ํƒœ๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ๋œ๋‹ค.
IS NULL NULL ๊ฐ’์ธ ๊ฒฝ์šฐ

 

42. ์ •๋‹ต :  2

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : LEFT OUTER JOIN ์ด๋ฏ€๋กœ SQLD_42_1 ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

 

- - - - - - - - ์ฃผ๊ด€์‹ - - - - - - - -

 

43. ์ •๋‹ต : RANK(), ROW_NUMBER()

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ๊ทธ๋ฃน ๋‚ด ์ˆœ์œ„ํ•จ์ˆ˜

RANK() : ์ค‘๋ณต๊ฐ’์€ ์ค‘๋ณต๋“ฑ์ˆ˜, ๋“ฑ์ˆ˜ ๊ฑด๋„ˆ๋œ€(1์œ„, 1์œ„, 3์œ„, 4์œ„)

DENSE_RANK() : ์ค‘๋ณต๊ฐ’์€ ์ค‘๋ณต๋“ฑ์ˆ˜, ๋“ฑ์ˆ˜ ์•ˆ ๊ฑด๋„ˆ๋œ€(1์œ„, 1์œ„, 2์œ„, 2์œ„)

ROW_NUMBER() : ์ค‘๋ณต๊ฐ’์ด ์žˆ์–ด๋„ ๊ณ ์œ  ๋“ฑ์ˆ˜ ๋ถ€์—ฌ(1์œ„, 2์œ„, 3์œ„, 4์œ„)

 

44. ์ •๋‹ต :  3.5

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ROUND ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๊ฐ’์ธ 3.45๋ฅผ ์†Œ์ˆ˜์  ์ฒซ์งธ ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผ

 

45. ์ •๋‹ต :  HASH JOIN

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค :

HASH JOIN ์ด๋ž€?
-์กฐ์ธ ์ปฌ๋Ÿผ์˜ ์ธ๋ฑ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
-ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— '='๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์กฐ์ธ์œผ๋กœ ๋™๋“ฑ ์กฐ๊ฑด์—๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ
-ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ์ ์šฉ๋  ๋•Œ ๋™์ผํ•œ ๊ฐ’์„ ํ•ญ์ƒ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ํ•ด์‹ฑ๋จ์ด ๋ณด์žฅ๋œ๋‹ค.
-HASH JOIN ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.
-๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์˜ ํฌ๊ธฐ๋ณด๋‹ค ์ปค์ง€๋ฉด ์ž„์‹œ ์˜์—ญ(๋””์Šคํฌ)์— ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•œ๋‹ค.
-HASH JOIN์„ ํ•  ๋•Œ๋Š” ๊ฒฐ๊ณผ ํ–‰์˜ ์ˆ˜๊ฐ€ ์ ์€ ํ…Œ์ด๋ธ”์„ ์„ ํ–‰ ํ…Œ์ด๋ธ”๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
-์„ ํ–‰ ํ…Œ์ด๋ธ”์„ Build input์ด๋ผ ํ•˜๋ฉฐ, ํ›„ํ–‰ ํ…Œ์ด๋ธ”์„ Prove input์ด๋ผ ํ•œ๋‹ค.

 

46. ์ •๋‹ต :  ์ƒํ’ˆ๋ช…, ()

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : 

 

47. ์ •๋‹ต :  UPDATE

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : UPDATE ~ SET ( ์ˆ˜์ • )

INSERT INTO (์ž…๋ ฅ)

DELETE (์‚ญ์ œ)

 

48. ์ •๋‹ต :  ROLLBACK

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ๋ณต๊ตฌ๋ช…๋ น์–ด 

 

49. ์ •๋‹ต :  EMPLOYEE_ID, DEPARTMENT_ID, salary

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค :* ๋ณ„์นญ์ด ์—†๋Š” ์นผ๋Ÿผ์€ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๋€Œ๊ณ , ๋ณ„์นญ์ด ์žˆ๋Š” ์นผ๋Ÿผ์€ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ

(SQL Server์˜ ๊ฒฝ์šฐ๋Š” ๋ณ„์นญ์ด ์—†๋Š” ์นผ๋Ÿผ๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ)

 

50. ์ •๋‹ต :  4

๐Ÿ“–๋ฌธ์ œํ™•์ธ

 

ํ•ด์„ค : ์œ„ ํ…Œ์ด๋ธ”์—์„œ ๊ณ„์ธตํ˜• ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋กœ ์ด 5๊ฑด(1,3,7,4,8)์ด ์กฐํšŒ๋˜๋ฉด ์—ฌ๊ธฐ์„œ WHERE ์กฐ๊ฑด์ ˆ์ธ COL1<>์ธ 4๋ฒˆ์งธ ํ–‰์ด ์ œ์™ธ๋˜์–ด ์ด 4๊ฑด์ด ๋‚˜์˜จ๋‹ค.

 

 

 

sqld 35ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ๋ณต์› / ์ •๋‹ต ์ถœ์ฒ˜ : ๋ฐ์ดํ„ฐ ์ „๋ฌธ๊ฐ€ ํฌ๋Ÿผ 

300x250

์ฝ”๋“œ