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

[SQL ์ „๋ฌธ๊ฐ€] ๊ณผ๋ชฉII. ์ œ2์žฅ SQL ํ™œ์šฉ - ์—ฐ์Šต๋ฌธ์ œ

by yunamom 2022. 4. 15.
๋ฐ˜์‘ํ˜•

๐Ÿ“–๊ณผ๋ชฉII. ์ œ2์žฅ SQL ํ™œ์šฉ - ์—ฐ์Šต๋ฌธ์ œ (์ด 10๋ฌธ์ œ)


๋ฌธ์ œ 1. ์ผ๋ฐ˜์ ์œผ๋กœ FROM ์ ˆ์— ์ •์˜๋œ ํ›„ ๋จผ์ € ์ˆ˜ํ–‰๋ผ, SQL ๋ฌธ์žฅ ๋‚ด์—์„œ ์ ˆ์ฐจ์„ฑ์„ ์ฃผ๋Š” ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์–ด๋–ค ์œ ํ˜•์˜ ์„œ๋ธŒ ์ฟผ๋ฆฌ ๋ฌธ์žฅ์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) SCALAR SUBQUERY

2) NESTED SUBQUERY

3) CORRELATED SUBQUERY

4) INLINE VIEW

 

๋ฌธ์ œ 2. ๋‹ค์Œ ์„œ๋ธŒ ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์„ค๋ช… ์ค‘ ํ‹€๋ฆฐ ๊ฒƒ์„ ๊ณ ๋ฅด์‹œ์˜ค. ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ๋‹ค์ค‘ ํ–‰ ์—ฐ์‚ฐ์ž๋Š” IN, ANY, ALL์ด ์žˆ์œผ๋ฉฐ, ์„œ๋ธŒ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋กœ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ RETURN๋˜๋Š” ์„œ๋ธŒ ์ฟผ๋ฆฌ๋‹ค.

2) Top N ์„œ๋ธŒ ์ฟผ๋ฆฌ๋Š” INLINE VIEW์˜ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ROWNUM์„ ์ด์šฉํ•ด ๊ฒฐ๊ณผ ํ–‰์ˆ˜๋ฅผ ์ œํ•œํ•˜๊ฑฐ๋‚˜,TOP(N) ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ธŒ ์ฟผ๋ฆฌ๋‹ค.

3) INLINE VIEW๋Š” FROM ์ ˆ์— ์‚ฌ์šฉ๋˜๋Š” ์„œ๋ธŒ ์ฟผ๋ฆฌ๋กœ์„œ ์‹ค์งˆ์ ์ธ OBJECT๋Š” ์•„๋‹ˆ์ง€๋งŒ, SQL ๋ฌธ์žฅ์—์„œ ๋งˆ์น˜ VIEW๋‚˜ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์‚ฌ์šฉ๋˜๋Š” ์„œ๋ธŒ ์ฟผ๋ฆฌ๋‹ค.

4) ์ƒํ˜ธ์—ฐ๊ด€ ์„œ๋ธŒ ์ฟผ๋ฆฌ๋Š” ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฅด๋ฏ€๋กœ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

๋ฌธ์ œ 3. ๋‹ค์Œ SET ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•œ ์„ค๋ช… ์ค‘ ํ‹€๋ฆฐ ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) UNION ์—ฐ์‚ฐ์ž๋Š” ์กฐํšŒ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ํ•ฉ์ง‘ํ•ฉ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์ž๋™์œผ๋กœ ์ •๋ ฌํ•ด์ค€๋‹ค.

2) UNION ALL ์—ฐ์‚ฐ์ž๋Š” ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ ฌํ•˜๊ณ  ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ๋งŒ ํ‘œํ˜„ํ•œ๋‹ค.

3) INTERSECT ์—ฐ์‚ฐ์ž๋Š” ์กฐํšŒ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ๊ต์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.

4) EXCEPT ์—ฐ์‚ฐ์ž๋Š” ์กฐํšŒ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์ฐจ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.

 

๋ฌธ์ œ 4. ์†Œ๊ณ„, ์ค‘๊ณ„, ํ•ฉ๊ณ„์ฒ˜๋Ÿผ ๊ณ„์ธต์  ๋ถ„๋ฅ˜๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘๊ณ„์— ์ ํ•ฉํ•œ GROUP ํ•จ์ˆ˜ ๋‘ ๊ฐ€์ง€๋Š” ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ROLLUP, SUM

2) ROLLUP, CUBE

3) GROUPING, SUM

4) CUBE, SUM

 

๋ฌธ์ œ 5. ๊ทธ๋ฃน ๋‚ด ์ˆœ์œ„ ๊ด€๋ จ WINDOW ํ•จ์ˆ˜์˜ ํŠน์ง•์ด ํ‹€๋ฆฐ ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) RANK ํ•จ์ˆ˜๋Š” ๋™์ผํ•œ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค(๊ฐ™์€ ๋“ฑ์ˆ˜์— ์—ฌ๋Ÿฟ์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ์ˆ˜๊ฐ€ SKIP ๋  ์ˆ˜ ์žˆ์Œ)

2) DENSE_RANK ํ•จ์ˆ˜๋Š” RANK ํ•จ์ˆ˜์™€ ํก์‚ฌํ•˜๋‚˜, ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ํ•˜๋‚˜์˜ ๊ฑด์ˆ˜๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์ด ํ‹€๋ฆฐ์ ์ด๋‹ค(๊ฐ™์€ ๋“ฑ์ˆ˜์— ์—ฌ๋Ÿฟ์ด ์กด์žฌํ•ด๋„ ๋“ฑ์ˆ˜๊ฐ€ SKIP๋˜์ง€ ์•Š์Œ)

3) CUMM_RANK ํ•จ์ˆ˜๋Š” ๋ˆ„์ ๋œ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค(๋“ฑ์ˆ˜๋ฅผ ๋ˆ„์  ์ˆœ์œ„๋กœ ํ‘œํ˜„ํ•จ)

4) RANK ํ•จ์ˆ˜๊ฐ€ ๋™์ผํ•œ ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๋Š”๋ฐ ๋ฐ˜ํ•ด, ROW_NUMBER ํ•จ์ˆ˜๋Š” ๊ณ ์œ ํ•œ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค(๊ฐ™์€ ๋“ฑ์ˆ˜๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์—†์Œ)

 

๋ฌธ์ œ 6. ๋‹ค์Œ SQL ๋ฌธ์žฅ์€ ๋ช‡ ํ–‰์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ


VAR V_PR NUMBER = 5;
VAR V_PN NUMBER = 2;

SELECT EMPNO, SAL, RN
     FROM (SELECT EMPNO, SAL, ROWNUM AS RN
                         FROM (SELECT EMPNO, SAL FROM EMP ORDER BY SAL, EMPNO)
                      WHERE ROWNUM <= :V_PR * V_PN)
WHERE RN >= (:V_PR * (:V_PN - 1)) + 1;

1) 0ํ–‰ 2) 2ํ–‰ 3) 5ํ–‰ 4) 10ํ–‰

 

๋ฌธ์ œ 7. ๋‹ค์Œ ์ค‘ SELF JOIN์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๋•Œ๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ๋‘ ํ…Œ์ด๋ธ”์— ๊ณตํ†ต ์นผ๋Ÿผ์ด ์กด์žฌํ•˜๊ณ  ๋‘ ํ…Œ์ด๋ธ”์ด ์—ฐ๊ด€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค.

2) ๋‘ ํ…Œ์ด๋ธ”์— ์—ฐ๊ด€๋œ ์นผ๋Ÿผ์€ ์—†์œผ๋‚˜ ์กฐ์ธํ•ด์•ผ ํ•œ๋‹ค.

3) ํ•œ ํ…Œ์ด๋ธ” ๋‚ด์—์„œ ๋‘ ์นผ๋Ÿผ์ด ์—ฐ๊ด€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค.

4) ํ•œ ํ…Œ์ด๋ธ” ๋‚ด์—์„œ ์—ฐ๊ด€๋œ ์นผ๋Ÿผ์€ ์—†์œผ๋‚˜ ์กฐ์ธํ•ด์•ผ ํ•œ๋‹ค.

 

๋ฌธ์ œ 8. ๋‹ค์Œ SQL ๋ฌธ์žฅ์˜ ๊ฒฐ๊ณผ์—์„œ ename์ด SCOTT์ธ pt ๊ฐ’์€ ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ


SELECT  ename, SYS_CONNECT_BY_PATH (ename, ',') AS pt

             FROM emp
START WITH mgr IS NULL
CONNECT BY mgr = PRIOR empno;

1) ,KING 2) ,KING,JONES
3) ,KING,JONES,SCOTT 4) ,KING,JONES,SCOTT,ADAMS

 

๋ฌธ์ œ 9. ๋‹ค์Œ SQL ๋ฌธ์žฅ์—์„œ sal ๊ฐ’์€ ์–ด๋–ค ์—ด๋กœ ์ง‘๊ณ„๋˜๋Š”๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ


SELECT *
         FROM (SELECT TO_CHAR (hiredate, 'YYYY') AS yyyy, job, deptno, sal FROM emp)
        PIVOT (SUM (sal) FOR deptno IN (10, 20, 30))
ORDER BY 1, 2;

1) ์ „์ฒด 2) yyyy 3) yyyy. job 4) yyyy. job, deptno

 

๋ฌธ์ œ 10. ๋‹ค์Œ SQL ๋ฌธ์žฅ์˜ ๊ฒฐ๊ณผ๋กœ์„œ ์ถœ๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ฌด์—‡์ธ๊ฐ€?์ •๋‹ตํ™•์ธ๐ŸŒผ


SELECT REGEXP_COUNT ('123123123123123', '123', 1) AS c1
   FROM DUAL;

1) 3 2) 4 3) 5 4) 6

๐Ÿ“๊ณผ๋ชฉII. ์ œ2์žฅ SQL ํ™œ์šฉ ์—ฐ์Šต๋ฌธ์ œ(์ด 10) - ์ •๋‹ต / ํ•ด์„ค

1. ์ •๋‹ต :  4 

 

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

ํ•ด์„ค : FROM ์ ˆ์— ์ •์˜๋œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” INLINE VIEW์ด๋‹ค. INLINE VIEW๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”์ธ์ฟผ๋ฆฌ๋ณด๋‹ค ๋จผ์ € ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ SQL ๋ฌธ์žฅ ๋‚ด์—์„œ ์ ˆ์ฐจ์„ฑ์„ ์ฃผ๋Š” ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

 

2. ์ •๋‹ต :  4

 

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

ํ•ด์„ค : ์ƒํ˜ธ ์—ฐ๊ด€ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ํ–‰ ์ˆ˜๋งŒํผ ์‹คํ–‰๋˜๋Š” ์ฟผ๋ฆฌ๋กœ์„œ ์‹คํ–‰ ์†๋„๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ๋–จ์–ด์ง€๋Š” SQL ๋ฌธ์žฅ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณต์žกํ•œ ์ผ๋ฐ˜ ๋ฐฐ์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ฑด์— ๋งž๋Š”๋‹ค๋ฉด ์ ๊ทน์ ์ธ ๊ฒ€ํ† ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 

3. ์ •๋‹ต :  2

 

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

ํ•ด์„ค : UNION ALL ์—ฐ์‚ฐ์ž๋Š” ์กฐํšŒ ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ์ •๋ ฌ ์ž‘์—…์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋˜ํ•œ ์ค‘๋ณต ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ๋„ ์‚ญ์ œํ•˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ๋ฒˆ ์ค‘๋ณต ํ‘œํ˜„ํ•œ๋‹ค.

 

4. ์ •๋‹ต :  2 

 

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

ํ•ด์„ค : ROLLUP, CUBE๋Š” GROUP BY์˜ ํ™•์žฅ๋œ ํ˜•ํƒœ์ด๋ฉฐ ๋ณ‘๋ ฌ๋กœ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ํšจ๊ณผ์ ์ด๋‹ค. ๋‹ค์ฐจ์›์ ์ธ ์ง‘๊ณ„๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋Š” CUBE๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

5. ์ •๋‹ต :  3

 

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

ํ•ด์„ค : ๊ทธ๋ฃน ๋‚ด ์ˆœ์œ„ ๊ด€๋ จ WINDOW FUNCTION์œผ๋กœ๋Š” RANK, DENSE_RANK, ROW_NUMBER ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค. (3)์˜ ์ง€๋ฌธ์€ DENSE_RANK ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋ฉฐ, CUMM_RANK ํ•จ์ˆ˜๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

6. ์ •๋‹ต :  3

 

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

ํ•ด์„ค : ์ธ๋ผ์ธ ๋ทฐ์—์„œ 10ํ–‰์„ ์กฐํšŒํ•˜๊ณ , ๋ฉ”์ธ ์ฟผ๋ฆฌ์—์„œ 5ํ–‰์œผ๋กœ ์ œํ•œํ•˜๋ฏ€๋กœ 5ํ–‰์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

 

7. ์ •๋‹ต :  3

 

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

ํ•ด์„ค : SELF JOIN์€ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์—์„œ ๋‘ ๊ฐœ์˜ ์นผ๋Ÿผ์ด ์—ฐ๊ด€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.

 

8. ์ •๋‹ต :  4

 

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

ํ•ด์„ค : SYS_CONNECT_BY_PATH ํ•จ์ˆ˜๋Š” ๊ณ„์ธต์˜ ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ ,KING,JONES,SCOTT์ด ์ถœ๋ ฅ๋œ๋‹ค.

 

9. ์ •๋‹ต :  3

 

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

ํ•ด์„ค : ์ง‘๊ณ„ ํ•จ์ˆ˜์— ์‚ฌ์šฉํ•œ sal, FOR ์ ˆ์— ์‚ฌ์šฉํ•œ deptno๋ฅผ ์ œ์™ธํ•œ yyyy. job์œผ๋กœ ์ง‘๊ณ„๋œ๋‹ค.

 

10. ์ •๋‹ต :  3

 

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

ํ•ด์„ค : 123 ํŒจํ„ด์ด 5๋ฒˆ ๋ฐ˜๋ณต๋œ๋‹ค.




300x250

์ฝ”๋“œ