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

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

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

 

 

๐Ÿ“–๊ณผ๋ชฉII. ์ œ1์žฅ SQL ๊ธฐ๋ณธ - ์—ฐ์Šต๋ฌธ์ œ


๋ฌธ์ œ 1. ๋‹ค์Œ ์„ค๋ช… ์ค‘ ๋งž๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€?

1) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ๋‹จ ํ•œ ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

2) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์— ํ…Œ์ด๋ธ”์ด๋ž€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

3) ์•„์ฃผ ๋ณต์žกํ•œ ์ž๋ฃŒ๋„ ํ…Œ์ด๋ธ”์€ ํ•˜๋‚˜๋งŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•˜๋‹ค.

4) ๋ชจ๋“  ์ž๋ฃŒ๋Š” ์‹ค์งˆ์ ์œผ๋กœ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๋ฉฐ, ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ์ž๋ฃŒ๋“ค์„ ๊บผ๋‚ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฌธ์ œ 2.  ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ์„ค๋ช… ์ค‘ ํ‹€๋ฆฐ ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€?

1) CHAR ์œ ํ˜•์€ ๊ณ ์ • ๊ธธ์ด ๋ฌธ์žํ˜•์ด๋‹ค.

2) VARCHAR ์œ ํ˜•์€ ๊ฐ€๋ณ€ ๊ธธ์ด ์ˆซ์žํ˜•์ด๋‹ค.

3) NUMERIC ์œ ํ˜•์€ ์ˆซ์žํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

4) DATE ์œ ํ˜•์€ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋ฌธ์ œ 3. ๋‹ค์Œ ๋ ˆ์ฝ”๋“œ ๊ฑด์ˆ˜๊ฐ€ ๋‹ค๋ฅธ SQL ๋ฌธ์€ ๋ฌด์—‡์ธ๊ฐ€?

1) SELECT COUNT(*) FROM EMP WHERE 1=0;

2) SELECT MAX(EMPNO) FROM EMP WHERE 1=0;

3) SELECT NVL(EMPNO, 9999) FROM EMP WHERE 1=0;

4) SELECT NVL(MAX(EMPNO), 0000) FROM EMP WHERE 1=0;

 

๋ฌธ์ œ 4. ๋‹ค์Œ SQL ๋ฌธ์žฅ์˜ ๊ฒฐ๊ณผ ์ถœ๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ฌด์—‡์ธ๊ฐ€?

SELECT PLAYER_NAME ์„ ์ˆ˜๋ช…, E_PLAYER_NAME ์„ ์ˆ˜์˜๋ฌธ๋ช…

        FROM PLAYER

WHERE E_PLAYER_NAME LIKE '_A%';
1) ์„ ์ˆ˜ ์˜๋ฌธ ์ด๋ฆ„์ด A๋กœ ์‹œ์ž‘ํ•˜๋Š” ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„

2) ์„ ์ˆ˜์˜ ์˜๋ฌธ ์ด๋ฆ„์ด A๋‚˜ a๋กœ ์‹œ์ž‘ํ•˜๋Š” ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„

3) ์„ ์ˆ˜์˜ ์˜๋ฌธ ์ด๋ฆ„์˜ ๋‘๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ A์ธ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„

4) ์œ„์น˜์— ์ƒ๊ด€์—†์ด ์„ ์ˆ˜์˜ ์˜๋ฌธ ์ด๋ฆ„์— A๋ฅผ ํฌํ•จํ•˜๋Š” ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„

 

๋ฌธ์ œ 5. ๋ฌธ์ž ์œ ํ˜•๊ณผ ์ˆซ์ž ์œ ํ˜• ๋ชจ๋‘ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ์ง‘๊ณ„ํ•จ์ˆ˜๋Š” ์–ด๋Š ๊ฒƒ์ธ๊ฐ€?

1) COUNT

2) SUM


3) AVG


4) STDDEV

 

๋ฌธ์ œ 6. SQL ๋ฌธ์žฅ์—์„œ ์ง‘ํ•ฉ๋ณ„๋กœ ์ง‘๊ณ„๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์กฐํšŒ ์กฐ๊ฑด์„ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ์ ˆ์€ ์–ด๋Š ๊ฒƒ์ธ๊ฐ€?

1) WHERE ์ ˆ

2) GROUP BY ์ ˆ


3) HAVING ์ ˆ


4) FROM ์ ˆ

 

๋ฌธ์ œ 7. ๋‹ค์Œ๊ณผ ๊ฐ™์€ SQL ๋ฌธ์žฅ์ด ์žˆ๋‹ค. ์˜ˆ์ œ์˜ ORDER BY ์ ˆ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ–๋Š” ๊ตฌ๋ฌธ์€ ์–ด๋–ค ๊ฒƒ์ธ๊ฐ€?

SELECT PLAYER_NAME ์„ ์ˆ˜๋ช…, POSITION ํฌ์ง€์…˜, BACK_NO ๋ฐฑ๋„˜๋ฒ„

         FROM PLAYER

ORDER BY PLAYER_NAME, POSITION, BACK_NO DESC;
1) ORDER BY 1 DESC, 2, ๋ฐฑ๋„˜๋ฒ„

2) ORDER BY ์„ ์ˆ˜๋ช…, 2, DESC ๋ฐฑ๋„˜๋ฒ„


3) ORDER BY PLAYER_NAME ASC, 2, 3


4) ORDER BY ์„ ์ˆ˜๋ช… ASC, ํฌ์ง€์…˜, 3 DESC

 

๋ฌธ์ œ 8. ๋‹ค์Œ SQL ๋ฌธ์žฅ์—์„œ ํ‹€๋ฆฐ ๋ถ€๋ถ„์€ ์–ด๋””์ธ๊ฐ€?

1) SELECT

2) FROM


3) WHERE


4) ORDER
PLAYER.PLAYER_NAME ์„ ์ˆ˜๋ช…,  TEAM.TEAM_NAME ํŒ€๋ช…

PLAYER P, TEAM T

T.TEAM_ID = P.TEAM_ID

BY ์„ ์ˆ˜๋ช…;

 

๋ฌธ์ œ 9. ๋‹ค์Œ ์กฐ์ธ์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•œ ์„ค๋ช… ์ค‘ ํ‹€๋ฆฐ ๊ฒƒ์€ ๋ฌด์—‡์ธ๊ฐ€?

1) EQUI JOIN์€ ๋ฐ˜๋“œ์‹œ PK, FK ๊ด€๊ณ„ ์—์„œ๋งŒ ์„ฑ๋ฆฝ๋œ๋‹ค.

2) NON-EQUI JOIN์€ ๋“ฑ๊ฐ€ ์กฐ๊ฑด์ด ์„ฑ๋ฆฝ๋˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”์— ์กฐ์ธ์„ ๊ฑธ์–ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

3) OUTER JOIN์€ ์กฐ์ธ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์กฐ์ธ ๋ฐฉ๋ฒ•์ด๋‹ค.

4) SELF JOIN์€ ํ•œ ํ…Œ์ด๋ธ”์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ์‹œ์ผœ EQUI JOIN์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

๋ฌธ์ œ 10. 4๊ฐœ์˜ ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ํ•„์š”ํ•œ ์นผ๋Ÿผ์„ ์กฐํšŒํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ตœ์†Œ ๋ช‡ ๊ฐœ์˜ ์กฐ์ธ ์กฐ๊ฑด์ด ํ•„์š”ํ•œ๊ฐ€?

1) 2๊ฐœ

3) 4๊ฐœ
2) 3๊ฐœ

4) 5๊ฐœ

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

 

1. ์ •๋‹ต :  4 

 

ํ•ด์„ค : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ์ž๋ฃŒ์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ N๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค. ๋ชจ๋“  ์ž๋ฃŒ๋“ค์€ ํ…Œ์ด๋ธ”์— ์ž…๋ ฅ๋˜๋ฉฐ, ์กฐํšŒโˆ™์ˆ˜์ •โˆ™์‚ญ์ œ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. ์ •๋‹ต :  2 

 

ํ•ด์„ค : VARCHAR ์œ ํ˜•์€ ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฌธ์žํ˜•์ด๋‹ค.

 

3. ์ •๋‹ต :  3 

 

ํ•ด์„ค : 1=0 ์กฐ๊ฑด์€ ๊ณต์ง‘ํ•ฉ์ด๋ฏ€๋กœ ์ผ๋ฐ˜ ํ•จ์ˆ˜์ธ NVL ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฐ๊ณผ ๊ฑด์ˆ˜๋Š” 0์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ COUNT, MAX์™€ ๊ฐ™์€ ์ง‘๊ณ„ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ๋Š” ๊ฒฐ๊ณผ ๊ฐ’์ด ๊ณต์ง‘ํ•ฉ์ธ ๊ฒฝ์šฐ์—๋„ NULL์„ ์ถœ๋ ฅํ•˜๋ฏ€๋กœ ๊ฒฐ๊ณผ ๊ฑด์ˆ˜๋Š” 1์ด๋‹ค.

 

4. ์ •๋‹ต :  3 

 

ํ•ด์„ค : "_"์™€ "%"๋Š” ์™€์ผ๋“œ์นด๋“œ(WILD CARD)๋กœ ํ•˜๋‚˜์˜ ๊ธ€์ž ๋˜๋Š” ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๋‘ ๋ฒˆ์งธ ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž A์ธ ๊ฒฝ์šฐ๋งŒ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค.

 

5. ์ •๋‹ต :  1 

 

ํ•ด์„ค : ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ฃผ๋กœ ์ˆซ์ž ์œ ํ˜•์— ์‚ฌ์šฉ๋œ๋‹ค. ์ถ”๊ฐ€๋กœ MAX, MIN, COUNTํ•จ์ˆ˜๋Š” ์ˆซ์ž ์œ ํ˜•๋งŒ ์•„๋‹ˆ๋ผ ๋ฌธ์ž ์œ ํ˜•, ๋‚ ์งœ ์œ ํ˜•์—๋„ ์ ์šฉ์ด ๊ฐ€๋Šฅํ•œ ํ•จ์ˆ˜์ด๋‹ค.

 

6. ์ •๋‹ต :  3 

 

ํ•ด์„ค : ์ผ๋ฐ˜์ ์ธ SQL ๋ฌธ์žฅ์—์„œ ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” WHERE ์ ˆ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ๊ทธ๋ฃน๋ณ„๋กœ ์กฐํšŒํ•  ๋•Œ ์ง‘๊ณ„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ œํ•œ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” HAVING ์ ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

7. ์ •๋‹ต :  4 

 

ํ•ด์„ค : ORDER BY ์ ˆ์—์„œ ์ •๋ ฌ ๊ธฐ์ค€์ด ์ƒ๋žต๋˜๋ฉด Default๋กœ ASC(์˜ค๋ฆ„์ฐจ์ˆœ) ์ •๋ ฌ๋˜๋ฉฐ, ORDER BY ์ ˆ์—๋Š” ์นผ๋Ÿผ(Column)๋ช… ๋Œ€์‹ ์— SELECT ์ ˆ์— ๊ธฐ์ˆ ํ•œ ์นผ๋Ÿผ(Column)์˜ ์ˆœ์„œ ๋ฒˆํ˜ธ๋‚˜ ์นผ๋Ÿผ(Column)์˜ ALIAS๋ช…์„ ๋Œ€์‹ ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

8. ์ •๋‹ต :  1 

 

ํ•ด์„ค : FROM์ ˆ์— ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ALIAS๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ, ์ค‘๋ณต๋œ ์ด๋ฆ„์ด ์žˆ๋Š” ๊ฒฝ์šฐ SELECT ์ ˆ์—์„œ๋Š” ๋ฐ˜๋“œ์‹œ ALIAS ๋ช…์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

9. ์ •๋‹ต :  1 

 

ํ•ด์„ค : EQUI JOIN์€ ๋ฐ˜๋“œ์‹œ PK, FK ๊ด€๊ณ„์— ์˜ํ•ด์„œ๋งŒ ์„ฑ๋ฆฝ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์กฐ์ธ ์นผ๋Ÿผ์ด 1:!๋กœ ๋งตํ•‘์ด ๊ฐ€๋Šฅํ•˜๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

10. ์ •๋‹ต :  2 

 

ํ•ด์„ค : ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ „์ฒด ํ…Œ์ด๋ธ” ๊ฐœ์ˆ˜์—์„œ ์ตœ์†Œ N-1๊ฐœ ๋งŒํผ์˜ JOIN์กฐ๊ฑด์ด ํ•„์š”ํ•˜๋‹ค.

300x250

์ฝ”๋“œ