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

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

by yunamom 2022. 4. 26.
728x90
300x250

 

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


๋ฌธ์ œ 1. ๋„๋ฉ”์ธ์˜ ํŠน์ง•์œผ๋กœ ์•Œ๋งž์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ์—”ํ„ฐํ‹ฐ ๋‚ด์—์„œ ์†์„ฑ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค.

2) ์—”ํ„ฐํ‹ฐ ๋‚ด์—์„œ ์†์„ฑ์— ๋Œ€ํ•œ NOT NULL ์„ ์ง€์ •ํ•œ๋‹ค.

3) ์—”ํ„ฐํ‹ฐ ๋‚ด์—์„œ ์†์„ฑ์— ๋Œ€ํ•œ Check ์กฐ๊ฑด์„ ์ง€์ •ํ•œ๋‹ค.

4) ํ…Œ์ด๋ธ”์˜ ์†์„ฑ ๊ฐ„ FK ์ œ์•ฝ ์กฐ๊ฑด์„ ์ง€์ •ํ•œ๋‹ค.

 

๋ฌธ์ œ 2. ์•„๋ž˜์˜ ๊ทธ๋ฆผ์— ๋Œ€ํ•œ ์‹๋ณ„์ž์˜ ๋ถ„๋ฅ˜๋ฅผ ์•Œ๋งž๊ฒŒ ์ง์ง€์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ์ฃผ์‹๋ณ„์ž - ๋ณธ์งˆ์‹๋ณ„์ž - ๋ณด์กฐ์‹๋ณ„์ž - ๋ณตํ•ฉ์‹๋ณ„์ž

2) ๋ณธ์งˆ์‹๋ณ„์ž - ์ฃผ์‹๋ณ„์ž - ๋ณด์กฐ์‹๋ณ„์ž - ๋ณตํ•ฉ์‹๋ณ„์ž

3) ์ฃผ์‹๋ณ„์ž - ๋ณด์กฐ์‹๋ณ„์ž - ๋ณธ์งˆ์‹๋ณ„์ž - ๋ณตํ•ฉ์‹๋ณ„์ž

4) ์ฃผ์‹๋ณ„์ž - ๋ณด์กฐ์‹๋ณ„์ž - ์ธ์กฐ์‹๋ณ„์ž - ๋ณตํ•ฉ์‹๋ณ„์ž

 

๋ฌธ์ œ 3. ๋‹ค์Œ ์ค‘ ์ฃผ์‹๋ณ„์ž๋ฅผ ๋„์ถœํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ค€์œผ๋กœ ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ํ•ด๋‹น ์—…๋ฌด์—์„œ ์ž์ฃผ ์ด์šฉ๋˜๋Š” ์†์„ฑ์„ ์ฃผ์‹๋ณ„์ž๋กœ ์ง€์ •ํ•œ๋‹ค.

2) ๋ช…์นญ, ๋‚ด์—ญ ๋“ฑ๊ณผ ๊ฐ™์ด ์ด๋ฆ„์œผ๋กœ ๊ธฐ์ˆ ๋˜๋Š” ๊ฒƒ๋“ค์€ ๊ฐ€๋Šฅํ•˜๋ฉด ์ฃผ์‹๋ณ„์ž๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.

3) ๋ณตํ•ฉ์œผ๋กœ ์ฃผ์‹๋ณ„์ž๋กœ ๊ตฌ์„ฑํ•  ๊ฒฝ์šฐ ๋„ˆ๋ฌด ๋งŽ์€ ์†์„ฑ์ด ํฌํ•จ๋˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค

4) ์ง€์ •๋œ ์ฃผ์‹๋ณ„์ž์˜ ๊ฐ’์€ ๋ณ€๊ฒฝ๋  ์ˆ˜๋„ ์žˆ๋‹ค.


๋ฌธ์ œ 4. ๋‹ค์Œ ์ค‘ ์•„๋ž˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ์—”ํ„ฐํ‹ฐ๋กœ ๊ฐ€์žฅ ์ ์ ˆํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 
<์‹œ๋‚˜๋ฆฌ์˜ค>
S ๋ณ‘์›์€ ์—ฌ๋Ÿฌ ๋ช…์˜ ํ™˜์ž๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ฐ ํ™˜์ž์— ๋Œ€ํ•œ ์ด๋ฆ„, ์ฃผ์†Œ ๋“ฑ์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค
(๋‹จ, ์—…๋ฌด๋ฒ”์œ„์™€ ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์€ ์ƒ๊ธฐ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๊ธฐ์ˆ ๋˜์–ด ์žˆ๋Š” ์‚ฌํ•ญ๋งŒ์„ ๊ทผ๊ฑฐํ•˜์—ฌ ํŒ๋‹จํ•ด์•ผ ํ•จ)
1) ๋ณ‘์›

2) ํ™˜์ž

3) ์ด๋ฆ„

4) ์ฃผ์†Œ

 

๋ฌธ์ œ 5. ์ฃผ์‹๋ณ„์ž์˜ ํŠน์ง•์œผ๋กœ ๊ฐ€์žฅ ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ์œ ์ผ์„ฑ : ์ฃผ์‹๋ณ„์ž์— ์˜ํ•ด ์—”ํ„ฐํ‹ฐ๋‚ด์—์„œ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋“ค์„ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•จ

2) ์ตœ์†Œ์„ฑ : ์ฃผ์‹๋ณ„์ž๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ์˜ ์ˆ˜๋Š” ์œ ์ผ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์ตœ์†Œ์˜ ์ˆ˜๊ฐ€ ๋˜์–ด์•ผ ํ•จ

3) ๋ถˆ๋ณ€์„ฑ : ์ฃผ์‹๋ณ„์ž๊ฐ€ ํ•œ ๋ฒˆ ํŠน์ • ์—”ํ„ฐํ‹ฐ์— ์ง€์ •๋˜๋ฉด ๊ทธ ์‹๋ณ„์ž์˜ ๊ฐ’์€ ๋ณ€ํ•˜์ง€ ์•Š์•„์•ผ ํ•จ

4) ์กด์žฌ์„ฑ : ์ฃผ์‹๋ณ„์ž๊ฐ€ ์ง€์ •๋˜๋ฉด ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ (NULL ํ—ˆ์šฉ)

 

๋ฌธ์ œ 6. ๋‹ค์Œ ์ค‘ ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ๋ฐ˜์ •๊ทœํ™” ๊ธฐ๋ฒ•์œผ๋กœ ๊ฐ€์žฅ ์ ์ ˆํ•˜์ง€ ์•Š์€๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ์ค‘๋ณต์นผ๋Ÿผ์„ ์ถ”๊ฐ€ - ์กฐ์ธ๊ฐ์†Œ๋ฅผ ์œ„ํ•ด ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ๋™์ผํ•œ ์นผ๋Ÿผ์„ ๊ฐ–๋„๋ก ํ•œ๋‹ค.

2) ํŒŒ์ƒ์นผ๋Ÿผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค - ์กฐํšŒ ์„ฑ๋Šฅ์„ ์šฐ์ˆ˜ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฏธ๋ฆฌ ๊ณ„์‚ฐ๋œ ์นผ๋Ÿผ์„ ๊ฐ–๋„๋ก ํ•œ๋‹ค.

3) ์ด๋ ฅํ…Œ์ด๋ธ”์— ๊ธฐ๋Šฅ ์นผ๋Ÿผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค - ์ตœ์‹ ๊ฐ’์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ด๋ ฅ์˜ ํŠน์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ธฐ๋Šฅ์„ฑ ์นผ๋Ÿผ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

4) FK์— ๋Œ€ํ•œ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค - FK๊ด€๊ณ„ ์— ํ•ด๋‹นํ•˜๋Š” ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์กฐ์ธ ์„ฑ๋Šฅ์„ ๋†’์ธ๋‹ค.

 

๋ฌธ์ œ 7. ์•„๋ž˜์˜ ERD ์— ๋Œ€ํ•œ ๋ฐ˜์ •๊ทœํ™” ๊ธฐ๋ฒ•์œผ๋กœ ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ๋ฐฐ์†ก ํ…Œ์ด๋ธ”์—์„œ ๊ณ ๊ฐ์˜ ์ •๋ณด๋ฅผ ์ฐพ๋Š” ๋นˆ๋„๊ฐ€ ๋†’์„ ๊ฒฝ์šฐ ๊ณ ๊ฐ๊ณผ ๋ฐฐ์†ก ํ…Œ์ด๋ธ”์˜ ๊ด€๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ด€๊ณ„์˜ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ํ•œ๋‹ค.

2) ์ฃผ๋ฌธ๋ชฉ๋ก ํ…Œ์ด๋ธ”์—์„œ ๊ณ ๊ฐ์ด ์ •๋ณด๋ฅผ ์ฐพ๋Š” ๋นˆ๋„๊ฐ€ ๋†’์„ ๊ฒฝ์šฐ ๊ณ ๊ฐ๊ณผ ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์˜ ๋น„์‹๋ณ„์ž ๊ด€๊ณ„๋ฅผ ์‹๋ณ„์ž ๊ด€๊ณ„๋กœ ํ•œ๋‹ค.

3) ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์—์„œ ํ•ญ์ƒ ๊ณ ๊ฐ๋ช…์„ ๊ฐ™์ด ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ ๊ณ ๊ฐ ํ…Œ์ด๋ธ”์˜ ๊ณ ๊ฐ๋ช…์„ ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์— ๋„ฃ์ปฌ๋Ÿผ์˜ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ํ•œ๋‹ค.

4) ์ฃผ๋ฌธ๊ณผ ์ฃผ๋ฌธ๋ชฉ๋ก, ๋ฐฐ์†ก ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ๊ณ ๊ฐ (์ตœ์ƒ์œ„ ํ…Œ์ด๋ธ”) ํ…Œ์ด๋ธ”์— ๋ชจ๋‘ ๋„ฃ๋Š” ๋ฐ˜์ •๊ทœํ™”๋ฅผ ํ•œ๋‹ค.

 

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

1) ์ฃผ๋ฌธ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ œํ’ˆ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ , ์ œํ’ˆ์€ ํ•˜๋‚˜์˜ ์ฃผ๋ฌธ์—๋งŒ ์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

2) ์ œํ’ˆ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฃผ๋ฌธ์— ์†ํ•  ์ˆ˜ ์žˆ๊ณ , ์ฃผ๋ฌธ์€ ํ•˜๋‚˜์˜ ์ œํ’ˆ๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

3) ์ฃผ๋ฌธ 1๊ฐœ๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ œํ’ˆ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ œํ’ˆ 1๊ฐœ๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ฃผ๋ฌธ์— ์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

4) ์ฃผ๋ฌธ์€ ์ œํ’ˆ์„ ํ•˜๋‚˜๋„ ์•ˆ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

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

<SQLD_34_09>
1) ์‚ฝ์ž…์ด์ƒ : ์ƒํ’ˆ์„ ์ฃผ๋ฌธํ•˜์ง€ ์•Š์€ ๊ณ ๊ฐ์˜ ์ •๋ณด๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์—†๋‹ค.

2) ๊ฐฑ์‹ ์ด์ƒ : ์Šค๋งˆํŠธํฐ์˜ ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ๊ฒฝ์šฐ ์œ ๋น„์˜ ์Šค๋งˆํŠธํฐ๋งŒ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด ๋œ๋‹ค.

3) ๊ฐฑ์‹ ์ด์ƒ : ๋…ธํŠธ๋ถ์˜ ๊ฐ€๊ฒฉ์„ ์—…๋ฐ์ดํŠธ ํ•  ๊ฒฝ์šฐ ๊ด€์šฐ์˜ ๋…ธํŠธ๋ถ๋งŒ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด ๋œ๋‹ค.

4) ์‚ญ์ œ์ด์ƒ : ์žฅ๋น„์˜ ๊ณ ๊ฐ์ •๋ณด๊ฐ€ ์‚ญ์ œ๋˜๋ฉด LEN ์นด๋“œ ์ƒํ’ˆ์˜ ์ •๋ณด๋„ ์‚ญ์ œ๋œ๋‹ค.

 

๋ฌธ์ œ 10. ์†์„ฑ์˜ ํŠน์ง•์œผ๋กœ ๊ฐ€์žฅ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ์—”ํ„ฐํ‹ฐ๋Š” ํ•œ ๊ฐœ์˜ ์†์„ฑ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค.

2) ์—”ํ„ฐํ‹ฐ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์ธ์Šคํ„ด์Šค์˜ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋œ๋‹ค.

3) ํ•˜๋‚˜์˜ ์†์„ฑ์—๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์†์„ฑ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

4) ์†์„ฑ์˜ ํŠน์„ฑ์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜์—๋Š” PK ์†์„ฑ, FK ์†์„ฑ, ์ผ๋ฐ˜ ์†์„ฑ์ด ์žˆ๋‹ค.

 

๋ฌธ์ œ 11. TRUNCATE TABLE ๋ช…๋ น์–ด์˜ ํŠน์ง•์œผ๋กœ ๊ฐ€์žฅ ์ ์ ˆํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 
1) ํ…Œ์ด๋ธ” ์ž์ฒด๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด๋กœ DROP TABLE ๊ณผ ๋™์ผํ•œ ๋ช…๋ น์–ด์ด๋‹ค.

2) ํŠน์ • ๋กœ์šฐ๋ฅผ ์„ ํƒํ•˜์—ฌ ์ง€์šธ ์ˆ˜ ์—†๋‹ค.

3) DELETE TABLE ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ TRUNCATE TABLE์˜ ๊ฒฝ์šฐ ์ •์ƒ์ ์ธ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

4) DELETE TABLE ๋ณด๋‹ค ์‹œ์Šคํ…œ ๋ถ€ํ•˜๊ฐ€ ๋” ํฌ๋‹ค.

 

๋ฌธ์ œ 12. ๋‹ค์Œ์˜ SCRIPT ๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ ๋ณด๊ธฐ์˜ SQL ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ž˜๋ชป๋œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

<SCRIPT>
CREATE TABLE SQLD_34_12 (N1 NUMBER, N2 NUMBER);
INSERT INTO SQLD_34_12 VALUES (1,10);
INSERT INTO SQLD_34_12 VALUES (2,20);

1) SELECT N1 FROM SQLD_34_12 ORDER BY N2;

2) SELECT*FROM SQLD_34_12 ORDER BY 2;

3) SELECT N1 FROM (SELECT*FROM SQLD_34_12) ORDER BY N2;

4) SELECT N1 FROM (SELECT*FROM SQLD_34_12) ORDER BY 2;

 

๋ฌธ์ œ 13. PROCEDURE, TRIGGER ์— ๋Œ€ํ•œ ์„ค๋ช… ์ค‘ ๊ฐ€์žฅ ์ž˜๋ชป๋œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) PROCEDURE, TRIGGER ๋ชจ๋‘ EXECUTE ๋ช…๋ น์–ด๋กœ ์ˆ˜ํ–‰๋œ๋‹ค.

2) PROCEDURE, TRIGGER ๋ชจ๋‘ CREATE ๋ช…๋ น์–ด๋กœ ์ƒ์„ฑํ•œ๋‹ค.

3) PROCEDURE ๋Š” COMMIT, ROLLBACK ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

4) TRIGGER ๋Š” COMMIT, ROLLBACK ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

๋ฌธ์ œ 14. ์•„๋ž˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์Œ์˜ SQL ์„ ์ˆ˜ํ–‰ํ•˜์˜€์„๋•Œ์˜ ์„ค๋ช…์œผ๋กœ ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

<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 HR.EMPLOYEES
WHERE 1=1
START WITH MANAGER_ID IS NULL
CONNECT BY PRIOR EMPLOYEE_ID = MANAGER_ID

<RESULT>

1) [    ] ๋Š” KING ์ด๋‹ค.

2) CONNECT_BY_ISLEAF ๋Š” LEAF๋ฉด 1์„ ์•„๋‹ˆ๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

3) ์ž์‹์—์„œ ๋ถ€๋ชจ๋กœ ๊ฐ€๋Š” ์—ญ๋ฐฉํ–ฅ์ด๋‹ค.

4) LEVEL์€ ๊ณ„์ธต์˜ ๊นŠ์ด๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ KING์€ ์ตœ์ƒ์œ„ ๊ณ„์ธต์ด๋‹ค.

 

๋ฌธ์ œ 15. PLAYER ํ…Œ์ด๋ธ”์—์„œ ์„ ์ˆ˜๋ช…๊ณผ ํŒ€๋ช…์€ ์˜ค๋ฆ„์ฐจ์ˆœ, ์—ฐ๋ด‰์€ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜๋Š” SQL ๋กœ ๋ฐ”๋ฅธ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) SELECT ์„ ์ˆ˜๋ช…, ํŒ€๋ช…, ์—ฐ๋ด‰ FROM ORDER BY ์„ ์ˆ˜๋ช… DESC, ํŒ€๋ช… DESC, ์—ฐ๋ด‰ ASC

2) SELECT ์„ ์ˆ˜๋ช…, ํŒ€๋ช…, ์—ฐ๋ด‰ FROM ORDER BY ์„ ์ˆ˜๋ช… ASC, ํŒ€๋ช… ASC, ์—ฐ๋ด‰

3) SELECT ์„ ์ˆ˜๋ช…, ํŒ€๋ช…, ์—ฐ๋ด‰ FROM ORDER BY ์„ ์ˆ˜๋ช… ASC, ํŒ€๋ช…, 3 DESC

4) SELECT ์„ ์ˆ˜๋ช…, ํŒ€๋ช…, ์—ฐ๋ด‰ FROM ORDER BY ์„ ์ˆ˜๋ช…, ํŒ€๋ช…, DESC ์—ฐ๋ด‰

 

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

1) ์„ฑ๋Šฅํ–ฅ์ƒ์„ ์œ„ํ•ด HASH JOIN์„ NESTED LOOP JOIN ์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

2) SQL์˜ ์‹คํ–‰ ์ˆœ์„œ๋Š” 2->3->1->0 ์ด๋‹ค.

3) DEPARTMENTS ํ…Œ์ด๋ธ”์ด EMPLOYEES๋ณด๋‹ค ์†Œ๋Ÿ‰์œผ๋กœ ์„ ํ–‰์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

4) ์กฐ์ธ ์กฐ๊ฑด์ด Non-Equal ์ผ ๊ฒฝ์šฐ HASH JOIN ์œผ๋กœ ์ˆ˜ํ–‰๋˜์ง€ ๋ชปํ•˜๊ณ  MERGE JOIN์œผ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค.

 

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

<SQL>
1) SELECT SUM(COL1+COL2+COL3+COL4) FROM SQLD_34_17;

2) SELECT SUM(COL1)+SUM(COL2)+SUM(COL3)+SUM(COL4) FROM SQLD_34_17;

1) 4, NULL

2) NULL, 22

3) 4, 22

4) NULL, NULL

 

๋ฌธ์ œ 18. ์•„๋ž˜์˜ SQL์—์„œ NULL์„ ๋ฐ˜ํ™˜ํ•˜๋Š” SQL์€ ์–ด๋–ค๊ฒƒ์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 
1) SELECT COALESCE(NULL,'2') FROM DUAL

2) SELECT NULLIF('A','A') FROM DUAL

3) SELECT NVL(NULL,0) + 10 FROM DUAL

4) SELECT NVL(NULL,'A') FROM DUAL

 

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

<SQLD_34_19>

1) SELECT C1, C2, N1,N2 FROM SQLD_34_19 WHERE N1=4 START WITH N2 IS NULL CONNECT BY PRIOR N1 = N2 ;

2) SELECT C1, C2, N1,N2 FROM SQLD_34_19 START WITH C2 ='B' CONNECT BY PRIOR N1 = N2 AND C2 <>'D'

3) SELECT C1, C2, N1,N2 FROM SQLD_34_19 START WITH C1 ='B' CONNECT BY PRIOR N1 = N2 AND PRIOR C2 ='B'

4) SELECT C1, C2, N1,N2 FROM SQLD_34_19 WHERE C1 <>'B' START WITH N1 =2 CONNECT BY PRIOR N1 = N2 AND PRIOR N1 =2;

 

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

<SQLD_34_20>

<SQL>
SELECT ID, DEPT_NM, SUM(SALARY)
FROM SQLD_34_20
GROUP BY ROLLUP(ID,DEPT_NM);

 

๋ฌธ์ œ 21. SCRIPT ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ์ˆ˜ํ–‰ํ•œ SQL์˜ ๋นˆ์นธ์— ๋„ฃ์„ ์•Œ๋งž์€ ๊ทธ๋ฃนํ•จ์ˆ˜๋Š”?์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQL>
SELECT ID, DEPT_NM, SUM(AMT)
FROM SQLD_34_21
GORUP BY (    )

<RESULT>

1) CUBE (ID, DEPT_NM)

2) ROLLUP (ID, DEPT_NM)

3) GROUPING SETS (ID, DEPT_NM)

4) CUBE (ID)

 

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

1) CUBE๋Š” ๊ฒฐํ•ฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐ’์— ๋Œ€ํ•˜์—ฌ ๋‹ค์ฐจ์› ์ง‘๊ณ„๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

2) ROLLUP์€ ๊ณ„์ธต๊ตฌ์กฐ๊ฐ€ ํ‰๋“ฑํ•œ ๊ด€๊ณ„์ด๋ฏ€๋กœ ์ธ์ˆ˜์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค.

3) ROLLUP, CUBE, GROUPING SETS ์€ ํŠน์ • ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ์ •๋ ฌ์€ ๊ฐ€๋Šฅํ•˜๋‚˜ ๊ณ„์ธต๊ฐ„ ์ •๋ ฌ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

4) ROLLUP์€ CUBE์— ๋น„ํ•ด ์‹œ์Šคํ…œ์— ๋งŽ์€ ๋ถ€๋‹ด์„ ์ฃผ๋ฏ€๋กœ ์‚ฌ์šฉ์— ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

 

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

<SQL>
SELECT COUNT(*)
FROM SQLD_34_23
HAVING COUNT(*) > 4
1) ๊ณต์ง‘ํ•ฉ์ด๋‹ค (0 Rows)

2) 0

3) 1

4) 2

 

๋ฌธ์ œ 24. ์•„๋ž˜์˜ ํŠธ๋žœ์žญ์…˜ ํŠน์„ฑ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—ฐ๊ฒฐํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

<์„ค๋ช…>
(แ„€) : ํŠธ๋žœ์žญ์…˜์—์„œ ์ •์˜๋œ ์—ฐ์‚ฐ๋“ค์€ ๋ชจ๋‘ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ ๋˜๋˜์ง€ ์•„๋‹ˆ๋ฉด ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
(แ„‚) : ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๋Š” ๋„์ค‘์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.
(แ„ƒ) : ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉด ๊ทธ ํŠธ๋žœ์žญ์…˜์ด ๊ฐฑ์‹ ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์€ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค.
(แ„…) : ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰ ๋˜๊ธฐ ์ „์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์šฉ์ด ์ž˜๋ชป ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋œ ์ดํ›„์—๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์— ์ž˜๋ชป์ด
์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค
1) ์ผ๊ด€์„ฑ, ์›์ž์„ฑ, ์ง€์†์„ฑ, ๊ณ ๋ฆฝ์„ฑ

2) ์›์ž์„ฑ, ์ผ๊ด€์„ฑ, ์ง€์†์„ฑ, ๊ณ ๋ฆฝ์„ฑ

3) ์›์ž์„ฑ, ๊ณ ๋ฆฝ์„ฑ, ์ง€์†์„ฑ, ์ผ๊ด€์„ฑ

4) ๊ณ ๋ฆฝ์„ฑ, ์›์ž์„ฑ, ์ผ๊ด€์„ฑ, ์ง€์†์„ฑ

 

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

<SQL>
SELECT DISTINCT COL1
FROM SQLD_34_25_01
UNION ALL
SELECT COL1
FROM SQLD_34_25_02
1) 4

2) 6

3) 8

4) 10

 

๋ฌธ์ œ 26. ์•„๋ž˜์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„์˜ ๊ฒฐ๊ณผ๋กœ ๊ฐ€์žฅ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€?  ์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQLD_34_26_01>   <SQLD_34_26_02>   <SQLD_34_26_03>   <SQLD_34_26_04>

COL1               COL1               COL1               COL1
----               ----               ----               ----
1                   1                   1                  1
2                   2                   NULL               2
3                   3                   3                  5
4                   NULL                5                  6

<SQL>
SELECT COUNT(*) FROM 
   SQLD_34_26_01 T1,
   SQLD_34_26_02 T2,
   SQLD_34_26_03 T3,
   SQLD_34_26_04 T4
WHERE T1.COL1 = T2.COL1(+)
      AND T2.COL1 = T3.COL1(+)
      AND T3.COL1 = T4.COL1;

1) 1

2) 2

3) 3

4) 4

 

300x250

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

<SQLD_34_27>

<SQL>
SELECT DEPT_ID, SALARY
FROM ( SELECT ROW_NUMBER()
         OVER(PARTITION BY DEPT_ID
         ORDER BY SALARY DESC) RN,
       DEPT_ID, SALARY
       FROM SQLD_34_27
     )
WHERE RN = 1;

1)
SELECT DEPT_ID, SALARY FROM (

SELECT RANK() OVER(PARTITION BY DEPT_ID ORDER BY SALARY DESC) RN , DEPT_ID, SALARY
FROM SQLD_34_27 ) WHERE RN = 1
2)
SELECT DEPT_ID, MAX(SALARY) AS SALARY FROM SQLD_34_27
GROUP BY DEPT_ID
3)
SELECT DEPT_ID, SALARY
FROM SQLD_34_27
WHERE ROWNUM =1
ORDER BY DEPT_ID, SALARY DESC ;
4)
SELECT DEPT_ID, SALARY
FROM SQLD_34_27
WHERE SALARY = (SELECT MAX(SALARY) FROM SQLD_34_27 )

 

๋ฌธ์ œ 28. ์ˆœ๋ฒˆ์„ ๊ตฌํ•˜๋Š” ๊ทธ๋ฃนํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) RANK

2) ROW_NUMBER

3) DENSE_RANK

4) RATIO_TO_REPORT

 

๋ฌธ์ œ 29. ์•„๋ž˜์˜ SCRIPT ์—์„œ ์ตœ์ข…๊ฒฐ๊ณผ๋กœ ์•Œ๋งž์€ ๊ฒƒ์€?  ์ •๋‹ตํ™•์ธ๐ŸŒผ

<SCRIPT>
CREATE TABLE SQLD_34_29 (N1 NUMBER, N2 NUMBER) ;
-------------------------------------------------------------------------- 
INSERT INTO SQLD_34_29 VALUES (1,1);
INSERT INTO SQLD_34_29 VALUES (2,2);
SAVEPOINT SV1;

UPDATE SQLD_34_29 SET N1=4 WHERE N2=1; 
SAVEPOINT SV1;

DELETE SQLD_34_29 WHERE N1 >= 2; 
ROLLBACK TO SAVEPOINT SV1;

SELECT MAX(N1) FROM SQLD_34_29;

1) NULL

2) 4

3) 2

4) ๋‹ต ์—†์Œ

 

๋ฌธ์ œ 30. ์•„๋ž˜์˜ SQL์„ ORACLE ๊ณผ SQL SERVER์—์„œ ์ˆ˜ํ–‰ํ•  ๋•Œ SQL์— ๋Œ€ํ•ด ํ‹€๋ฆฐ ์„ค๋ช…์€? (AUTO COMMIT์€ FALSE๋กœ ์„ค์ •) ์ •๋‹ตํ™•์ธ๐ŸŒผ

<SCRIPT>
UPDATE SQLD_34_30 SET N1=3 WHERE N2=1; 
CREATE TABLE SQLD_34_30_TEMP (N1 NUMBER); 
ROLLBACK;
1) SQL SERVER ์˜ ๊ฒฝ์šฐ ROLLBACK ์ด ๋œ ํ›„ UPDATE ์™€ CREATE ๊ตฌ๋ฌธ ๋ชจ๋‘ ์ทจ์†Œ๋œ๋‹ค

2) SQL SERVER ์˜ ๊ฒฝ์šฐ ROLLBACK ์ด ๋œ ํ›„ SQLD_34_21_TEMP ๋Š” ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.

3) ORACLE ์˜ ๊ฒฝ์šฐ ROLLBACK ์ด ๋œ ํ›„ UPDATE ์™€ CREATE ๊ตฌ๋ฌธ ๋ชจ๋‘ ์ทจ์†Œ๋œ๋‹ค.

4) ORACLE ์˜ ๊ฒฝ์šฐ UPDATE ๋Š” ์ทจ์†Œ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

๋ฌธ์ œ 31. ์•„๋ž˜์˜ ERD ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๋ณด๊ธฐ์˜ SQL์ค‘ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š”? ์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQL>
SELECT ๊ณ ๊ฐID, ์ด์šฉ์ผ์ž 
FROM SQLD_34_31_01 
UNION
SELECT ๊ณ ๊ฐID, ์ด์šฉ์ผ์ž 
FROM SQLD_34_31_02

๋ฌธ์ œ 32. ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์ด ์žˆ์„ ๋•Œ ์ค‘๋ณต๋˜๋Š” ์ด๋ฆ„ ์ค‘ ์•„์ด๋””๊ฐ€ ์ œ์ผ ์ž‘์€๊ฒƒ๋งŒ ๋‚จ๋„๋ก ํ•˜๋Š” SQL์„ ์™„์„ฑํ•˜์‹œ์˜ค์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQLD_34_32>

<SQL>
DELETE SQLD_34_32
WHERE ID NOT IN (           )

<RESULT>
    ID      NAME
   --------------
    1         A
    1         C
    1         D

1) SELECT MAX(ID) FROM SQLD_34_32 GROUP BY NAME

2) SELECT MIN(ID) FROM SQLD_34_32 GROUP BY NAME

3) SELECT MAX(ID) FROM SQLD_34_32 GROUP BY ID

4) SELECT MIN(ID) FROM SQLD_34_32 GROUP BY ID

 

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

<SQL>
SELECT*
FROM SQLD_34_33
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

 

๋ฌธ์ œ 34. ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ๋ฌผ๋ฆฌ์  ํ…Œ์ด๋ธ”๋ช…์œผ๋กœ ๊ฐ€์žฅ ์ ์ ˆํ•œ ๊ฒƒ์€?  ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) TAB_100

2) 100_TAB

3) TAB-100

4) 100-TAB

 

๋ฌธ์ œ 35. ๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ๋ฐ˜์˜ฌ๋ฆผ ํ•จ์ˆ˜๋กœ ์•Œ๋งž์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ROUND

2) CEIL

3) TRUNC

4) ABS

 

๋ฌธ์ œ 36. ์•„๋ž˜์˜ SQL๋ฌธ์„ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋กœ ์ž˜๋ชป๋œ ๊ฒƒ์€?  ์ •๋‹ตํ™•์ธ๐ŸŒผ

CREATE TABLE ์ฃผ๋ฌธ (
    C1 NUMBER(10),
    C2 DATE,
    C3 VARCHAR(10),
    C4 NUMBER DEFAULT 100
);

INSERT INTO ์ฃผ๋ฌธ (C1,C2,C3) VALUES (1, SYSDATE, 'TEST1');
1) INSERT INTO ์ฃผ๋ฌธ VALUES(2, SYSDATE, 'TEST2')

2) DELETE ์ฃผ๋ฌธ

3) DELETE FROM ์ฃผ๋ฌธ;

4) UPDATE ์ฃผ๋ฌธ SET C1=1;

 

๋ฌธ์ œ 37. ORDER BY ์˜ ํŠน์ง•์œผ๋กœ ๊ฐ€์žฅ ์ ์ ˆํ•˜์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ORDER BY ์˜ ๊ธฐ๋ณธ ์ •๋ ฌ์€ ๋‚ด๋ฆผ์ฐจ์ˆœ์ด๋‹ค
2) SELECT ๊ตฌ๋ฌธ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ปฌ๋Ÿผ๋„ OERDER BY ๊ตฌ๋ฌธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
3) ORDER BY 1, COL1 ๊ณผ ๊ฐ™์ด ์ˆซ์ž์™€ ์ปฌ๋Ÿผ์„ ํ˜ผ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค
4) ORACLE ์€ NULL ์„ ๊ฐ€์žฅ ํฐ ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ORDER BY ์‹œ ๋งจ ๋’ค๋กœ ์ •๋ ฌ๋˜๊ณ  SQL SERVER ๋ฐ˜๋Œ€๋กœ ๊ฐ€์žฅ ์•ž์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

 

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

<SQL>
SELECT A.ํšŒ์›๋ฒˆํ˜ธ, B.๋“ฑ๊ธ‰
FROM (SELECT ํšŒ์›๋ฒˆํ˜ธ, SUM(AMT)
   FROM SQLD_34_38_01
   GROUP BY ํšŒ์›๋ฒˆํ˜ธ) A , SQLD_34_38_02 B 
WHERE 1=1
AND A.AMT BETWEEN B.MIN_AMT AND B.MAX_AMT

 

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

1) Hash Join ์€ ์ •๋ ฌ ์ž‘์—…์ด ์—†์–ด ์ •๋ ฌ์ด ๋ถ€๋‹ด๋˜๋Š” ๋Œ€๋Ÿ‰๋ฐฐ์น˜์ž‘์—…์— ์œ ๋ฆฌํ•˜๋‹ค.

2) ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ๋‘๊ฐœ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•  ๋•Œ Hash Join ๋ณด๋‹ค Nested Loop Join ์ด ๋” ์œ ๋ฆฌํ•˜๋‹ค 

3) ์˜ตํ‹ฐ๋งˆ์ด์ €๋Š” ์กฐ์ธ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด Nested Loop Join ์„ ์„ ํ˜ธํ•œ๋‹ค.

4) Nested Loop Join ๊ธฐ๋ฒ•์€ ๋ฐฐ์น˜์ž‘์—…์—์„œ ์„ ํ˜ธํ•˜๋Š” ์กฐ์ธ๊ธฐ๋ฒ•์ด๋‹ค.

 

๋ฌธ์ œ 40. ์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ”์—์„œ ์•„๋ž˜์˜ SQL๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜์˜€์„ ๋•Œ ์‚ฌ์›๊ณผ ๊ด€๋ฆฌ์ž, ๊ทธ๋ฆฌ๊ณ  ์ตœ์ƒ์œ„ ๊ด€๋ฆฌ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ž‘์„ฑ๋œ SQL์„ ์™„์„ฑํ•˜์‹œ์˜ค. ์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQL >
SELECT A.EMPLOYEE_ID,
    A.MANAGER_ID AS A_MANAGER_ID, 
    B.EMPLOYEE_ID AS B_EMPLOYEE_ID, 
    B.MANAGER_ID AS B_MANAGER_ID, 
    A.LAST_NAME
FROM HR.EMPLOYEES A
       ( ) HR.EMPLOYEES B ON ( )
WHERE 1=1
AND A.EMPLOYEE_ID < 200 
ORDER BY EMPLOYEE_ID ;

1) INNER JOIN , A.MANAGER_ID = B.EMPLOYEE_ID

2) INNER JOIN , A.EMPLOYEE_ID = B.MAANGER_ID

3) LEFT OUTER JOIN , A.MANAGER_ID = B.EMPLOYEE_ID

4) LEFT OUTER JOIN , A.EMPLOYEE_ID = B.MAANGER_ID

 

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

1) ๊ฒฐ๊ณผ์˜ ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ์ค‘๋ณต๋œ ํ–‰์„ ๋ชจ๋‘ ํฌํ•จํ•œ๋‹ค.

2) ๊ฒฐ๊ณผ์˜ ํ•ฉ์ง‘ํ•ฉ์œผ๋กœ ์ค‘๋ณต๋œ ํ–‰์€ ํ•˜๋‚˜์˜ ํ–‰์œผ๋กœ ํ‘œ์‹œํ•œ๋‹ค

3) ๊ฒฐ๊ณผ์˜ ๊ต์ง‘ํ•ฉ์œผ๋กœ ์ค‘๋ณต๋œ ํ–‰์„ ํ•˜๋‚˜์˜ ํ–‰์œผ๋กœ ํ‘œ์‹œํ•œ๋‹ค

4) ๊ฒฐ๊ณผ์˜ ๊ต์ง‘ํ•ฉ์œผ๋กœ ์ค‘๋ณต๋œ ํ–‰์„ ๋ชจ๋‘ ํฌํ•จํ•œ๋‹ค

 

๋ฌธ์ œ 42. ๋‹ค์Œ์ค‘ Window function ์— ๋Œ€ํ•œ ์„ค๋ช…์ค‘ ์ ์ ˆํ•œ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) Partition ๊ณผ Group By ๊ตฌ๋ฌธ์€ ์˜๋ฏธ์ ์œผ๋กœ ์™„์ „ํžˆ ๋‹ค๋ฅด๋‹ค

2) Sum,max, min ๋“ฑ๊ณผ ๊ฐ™์€ ์ง‘๊ณ„ window function์„ ์‚ฌ์šฉํ•  ๋•Œ window ์ ˆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์ง‘๊ณ„์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ ˆ์ฝ”๋“œ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค

3) Window function ์ฒ˜๋ฆฌ๋กœ ์ธํ•ด ๊ฒฐ๊ณผ ๊ฑด์ˆ˜๊ฐ€ ์ค„์–ด๋“ค ์ˆ˜ ์žˆ๋‹ค

4) GROUP BY ๊ตฌ๋ฌธ๊ณผ Window function ์€ ๋ณ‘ํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค

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

๋ฌธ์ œ 43. ๋ถ€์„œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ ์ž ํ•œ๋‹ค. ๋ถ€์„œ๋ช…, ๋ถ€์„œ์— ์†Œ์†๋œ ์‚ฌ์›๋ช…, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ ์ž ํ•˜๋ฉฐ, ์‚ฌ์›์ด ์—†๋Š” ๋ถ€์„œ๋„ ๋ณด์—ฌ์ฃผ๊ณ ์ž ํ•  ๋•Œ ์•„๋ž˜์˜ SQL์„ ์™„์„ฑํ•˜์‹œ์˜ค.์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQL>
SELECT A.DEPT_NM, B.EMP_NM, A.DEPT_ID
FROM DEPT A ( ) EMP B ON (A.DEPT_ID = B.DEPT_ID )

โœ๏ธ

 

๋ฌธ์ œ 44. ์•„๋ž˜์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์ด ์žˆ์„ ๋•Œ ์•„๋ž˜์˜ SQL์„ ์ˆ˜ํ–‰ํ–ˆ์„ ๋•Œ ๋‘๋ฒˆ์งธ๋กœ ๋‚˜์˜ค๋Š” ๊ฐ’์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQL>
SELECT CODE
FROM SQLD_34_44
START WITH SUPER_ID IS NULL 
CONNECT BY PRIOR ID = SUPER_ID 
ORDER SIBLINGS BY CODE DESC;

โœ๏ธ

 

๋ฌธ์ œ 45. ์•„๋ž˜์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์ด ์žˆ์„ ๋•Œ ์—ฐ๋ด‰์ด 2๋ฒˆ์งธ, 3๋ฒˆ์งธ๋กœ ๋†’์€ ์‚ฌ์›์˜ ์ •๋ณด๋ฅผ ๊ตฌํ•˜๊ณ  ํ•œ๋‹ค. ์•„๋ž˜์˜ SQL์„ ์™„์„ฑํ•˜์‹œ์˜ค.

<SQL> SELECT * 
FROM (
   SELECT EMPLOYEE_ID, LAST_NAME, SALARY, RANK() OVER(ORDER BY SALARY DESC ) RN 
   FROM SQLD_34_45
   WHERE 1=1
   AND SALARY < (SELECT ( ? ) (SALARY) FROM SQLD_34_45 ) )
WHERE RN < 3;

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

 

๋ฌธ์ œ 46. SELECT UPPER(sqldeveloper) FROM DUAL ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ ์œผ์‹œ์˜ค.

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

 

๋ฌธ์ œ 47. ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์ด ์žˆ์„ ๋•Œ SQL์˜ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์ ์œผ์‹œ์˜ค. ์ •๋‹ตํ™•์ธ๐ŸŒผ

<SQLD_34_47>

<SQL>
WITH WITH_TAB (last_name, EMP_ID, MGR_ID, sum_salary ) 
AS (
   SELECT last_name,EMPLOYEE_ID,MANAGER_ID, salary 
   FROM HR.EMPLOYEES
   WHERE MANAGER_ID IS NULL
UNION ALL
   SELECT a.last_name, a.EMPLoYEE_ID, a.MANAGER_ID, a.salary + b.sum_salary 
   FROM HR.EMPLOYEES A, WITH_TAB B
   WHERE B.EMP_ID = A.MANAGER_ID 
   )
SELECT SUM_SALARY FROM WITH_TAB 
WHERE EMP_ID = 105;

โœ๏ธ

 

๋ฌธ์ œ 48. ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์ด ์žˆ์„ ๋•Œ SQL์˜ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

<SQLD_34_48>

<SQL>
SELECT COUNT(*)
FROM SQLD_34_48 
WHERE SALARY > 200
   OR MGR_ID IS NULL 
 AND CODE ='B'

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

 

๋ฌธ์ œ 49. ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ SQL์„ ์ˆ˜ํ–‰ํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. SQL์„ ์™„์„ฑํ•˜์‹œ์˜ค.

<SQL>
SELECT VAL, COUNT(*) AS CNT
  FROM (
       SELECT ( )(4) OVER (ORDER BY COL1) AS VAL 
       FROM SQLD_34_X7
       ) 
WHERE 1=1
GROUP BY VAL 
ORDER BY 1;

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

 

๋ฌธ์ œ 50. ์•„๋ž˜์˜ SQL ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” SQL์„ ์™„์„ฑํ•˜์‹œ์˜ค.

SELECT EMPLOYEE_ID, 
     DEPARTMENT_ID, 
     LAST_NAME, 
     SALARY,
     LAG(SALARY, (   )) OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY)
AS BEFORE_SALARY
FROM SQLD_50
WHERE EMPLOYEE_ID < 190;

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


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

 

1. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : ๋„๋ฉ”์ธ์˜ ํŠน์ง• ๋ฐ์ดํ„ฐ ํƒ€์ž…, ํฌ๊ธฐ ์ง€์ •

 

2. ์ •๋‹ต :  3

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

 

ํ•ด์„ค :

์ฃผ์‹๋ณ„์ž / ๋ณด์กฐ์‹๋ณ„์ž : ๋Œ€ํ‘œ์„ฑ ์œ ๋ฌด

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

๋‚ด๋ถ€ ์‹๋ณ„์ž : ์Šค์Šค๋กœ ์ƒ์„ฑ

์™ธ๋ถ€ ์‹๋ณ„์ž : ๋ฐ›์•„์˜ด

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

๋‹จ์ผ ์‹๋ณ„์ž : ์†์„ฑ 1๊ฐœ

๋ณตํ•ฉ ์‹๋ณ„์ž : ์†์„ฑ N๊ฐœ

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

๋ณธ์งˆ ์‹๋ณ„์ž : ์—…๋ฌด์— ์˜ํ•ด ์ƒ์„ฑ

์ธ์กฐ ์‹๋ณ„์ž : ์ธ์œ„์ ์œผ๋กœ

 

3. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : ์ฃผ์‹๋ณ„์ž ํŠน์ง• : ์œ ์ตœ๋ถˆ์กด

์œ ์ผ์„ฑ : ์œ ์ผํ•˜๊ฒŒ ์ธ์Šคํ„ด์Šค ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ

์ตœ์†Œ์„ฑ : ์ฃผ์‹๋ณ„์ž ์†์„ฑ ์ˆ˜ = ์ตœ์†Œ 

๋ถˆ๋ณ€์„ฑ : ์ฃผ์‹๋ณ„์ž ๊ฐ’์€ ๋ณ€๊ฒฝ X

์กด์žฌ์„ฑ : ๋ฐ˜๋“œ์‹œ ๊ฐ’์ด ๋“ค์–ด์™€์•ผํ•œ๋‹ค (NOT NULL)

 

4. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ์—”ํ„ฐํ‹ฐ (์—…๋ฌด์ƒ ๊ด€๋ฆฌํ•˜๋ ค๋Š” ๋Œ€์ƒ)

 

5. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : 

 

6. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : ๋ฐ˜์ •๊ทœํ™” ์ข…๋ฅ˜ (ํ…Œ์ด๋ธ”, ์†์„ฑ, ๊ด€๊ณ„)

 

7. ์ •๋‹ต :  4 

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

 

ํ•ด์„ค : 

 

8. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : ์—ฌ๋Ÿฌ์ œํ’ˆ(N)์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ถœ์ฒ˜ : https://ppomelo.tistory.com/51

 

9. ์ •๋‹ต :  2 

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

 

ํ•ด์„ค : 

 

10. ์ •๋‹ต :  2 

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

 

ํ•ด์„ค : 

1) ์—”ํ„ฐํ‹ฐ๋Š” 2๊ฐœ ์ด์ƒ์˜ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ

2) ์—”ํ„ฐํ‹ฐ๋ฅผ ์„ค๋ช…ํ•˜๊ณ , ์ธ์Šคํ„ด์Šค์˜ ๊ตฌ์„ฑ์š”์†Œ์ด๋‹ค. O

3) ํ•˜๋‚˜์˜ ์†์„ฑ์€ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค.

4) ์†์„ฑ์˜ ํŠน์„ฑ : ๊ธฐ๋ณธ ์†์„ฑ (๋ชจ๋“  ์ผ๋ฐ˜์  ์†์„ฑ)

                         ์„ค๊ณ„ ์†์„ฑ (์ƒˆ๋กœ ๋งŒ๋“ ๋‹ค.)

                         ํŒŒ์ƒ ์†์„ฑ (์˜ํ–ฅ์„๋ฐ›์•„ ๋ฐœ์ƒ, ๋น ๋ฅธ ์„ฑ๋Šฅ, ๊ณ„์‚ฐ)

 

11. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : 

DROP : ๊ตฌ์กฐ๊นŒ์ง€ ๋ชจ๋‘ ์‚ญ์ œ

TRUNCATE : ๊ตฌ์กฐ ์œ ์ง€ (๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œ)

DELETE : ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œ, ๋ณต๊ตฌ ๊ฐ€๋Šฅ, ์šฉ๋Ÿ‰์ด ์ค„์ง€์•Š๊ณ  ๋Š๋ฆผ

 

12. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : ORA-01785 ์—๋Ÿฌ : SELECT ์ ˆ์— ์—†๋Š” ์ปฌ๋Ÿผ์˜ ์ž๋ฆฌ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

 

13. ์ •๋‹ต :  1 

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

 

ํ•ด์„ค : 

Procedure Trigger
EXECUTE ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ ์ž๋™ ์‹คํ–‰ (์ด๋ฒคํŠธ ๋ฐœ์ƒ์‹œ)
CREATE Procedure CREATE Trigger
COMMIT, ROLLBACK ๊ฐ€๋Šฅ COMMIT, ROLLBACK ๋ถˆ๊ฐ€๋Šฅ

 

14. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : PRIOR ์ž์‹ = ๋ถ€๋ชจ ๋ฉด ์ˆœ๋ฐฉํ–ฅ์ž„ MANAGER ๊ฐ€ ๋ถ€๋ชจ, EMPLOYEE ๊ฐ€ ์ž์‹

 

15. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : ์„ ์ˆ˜๋ช… ASC(์˜ค๋ฆ„์ฐจ์ˆœ),ํŒ€๋ช…(default ์˜ค๋ฆ„์ฐจ์ˆœ), 3 DESC(3๋ฒˆ์งธ ์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ)

 

16. ์ •๋‹ต :  1 

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

 

ํ•ด์„ค : WHERE ์ ˆ์— ๋ณ„๋„์˜ ์กฐ๊ฑด์ ˆ์ด ์—†์„ ๊ฒฝ์šฐ NESTED LOOP JOIN ์ด ๋ฐ˜๋“œ์‹œ ์ข‹๋‹ค๊ณ  ํ•  ์ˆ˜ ์—†์Œ

NL Join Sort Merge Join Hash Join
๋žœ๋ค ์•ก์„ธ์Šค ๋“ฑ๊ฐ€, ๋น„๋“ฑ๊ฐ€ ์กฐ์ธ ๊ฐ€๋Šฅ ๋“ฑ๊ฐ€์กฐ์ธ๋งŒ ๊ฐ€๋Šฅ
๋Œ€์šฉ๋Ÿ‰ sort ์ž‘์—… ์œ ๋ฆฌ ์กฐ์ธํ‚ค ๊ธฐ์ค€ ์ •๋ ฌ ๋Œ€๋Ÿ‰ ์ž‘์—… ์œ ๋ฆฌ, ํ•จ์ˆ˜์ฒ˜๋ฆฌ

 

17. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : (a + b + c + d) ์˜ ๊ฒฝ์šฐ๋Š” ํ•ด๋‹น ๋กœ์šฐ์— ๋Œ€ํ•ด์„œ ๊ณ„์‚ฐ์ด ๋˜๊ณ  ๋‚œ ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด์„œ Sum ์ด ์ˆ˜ํ–‰๋จ, (a) + (b) .. ์˜ ๊ฒฝ์šฐ ๊ฐ๊ฐ์˜ sum ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ์‚ฌ์น™์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋จ


18. ์ •๋‹ต :  2 

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

 

ํ•ด์„ค : 1) 2 , 3) 10 , 4) A

 

19. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : B A 2 1 / ๋‚˜๋จธ์ง€ : D B 4 2 

 

20. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ๋กค์—…์€ ์ธ์ˆ˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”(ID ์ดํ•ฉ๊ณผ ์ „์ฒด ์ดํ•ฉ ์ถœ๋ ฅ), CUBE๋Š” ID์ดํ•ฉ,DPET_NM ์ดํ•ฉ, ์ „์ฒด์ดํ•ฉ , GroupingSets๋Š” ์ดํ•ฉ X

 

21. ์ •๋‹ต :  1 

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

 

ํ•ด์„ค : ID,DEPT_NM ๊ฐ๊ฐ ์ดํ•ฉ, ์ „์ฒด ์ดํ•ฉ ์ถœ๋ ฅ

CUBE(ID,DEPT_NM)

 

22. ์ •๋‹ต :  1 

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

 

ํ•ด์„ค : 

ROLLUP : ์ธ์ˆ˜ ์ˆœ์„œ์ค‘์š”(๊ณ„์ธต์ ), Order by ๋กœ ์ •๋ ฌ

CUBE : ๋ชจ๋“ ๊ฐ’์— ๋‹ค์ฐจ์›์ง‘๊ณ„ ์ƒ์„ฑ / ์‹œ์Šคํ…œ์— ๋งŽ์€ ๋ถ€ํ•˜

GroupingSets : ์ธ์ˆ˜ ์ˆœ์„œ๋ฌด๊ด€ (ํ‰๋“ฑ)

 

23. ์ •๋‹ต :  1

 

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

ํ•ด์„ค : ์—†์Œ NULL (๊ณต์ง‘ํ•ฉ) ๊ณต์ง‘ํ•ฉ๊ณผ 0์€ ๋‹ค๋ฅด๋‹ค.

 

24. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : ํŠธ๋žœ์žญ์…˜ ํŠน์„ฑ

1. ์›์ž์„ฑ : ํŠธ๋žœ์žญ์…˜์—์„œ ์—ฐ์‚ฐ๋“ค์ด ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ์‹คํŒจ ํ•ด์•ผํ•จ. (๊ณ„์ขŒ์ด์ฒด)

2. ์ผ๊ด€์„ฑ : ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ „ DB ๋‚ด์šฉ์ด ์ž˜๋ชป ๋˜์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰ ํ›„๋„ ์ž˜๋ชป ๋˜์ง€ ์•Š์•„์•ผ ํ•จ

3. ๊ณ ๋ฆฝ์„ฑ : ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ๋„์ค‘ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

4. ์ง€์†์„ฑ : ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉด DB์˜ ๋‚ด์šฉ์€ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค.

 

25. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : UNION ALL (ํ•ฉ์ง‘ํ•ฉ) 

 

26. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : 

 

27. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : 

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

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

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

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

PARTITION BY DEPT_ID / ORDER BY SALARY DESC

-- DEPT_ID ๋กœ ๊ทธ๋ฃน๋ฌถ๊ณ , SALARY ๋งŽ์€ ์ˆœ์œผ๋กœ ์ •๋ ฌ

WHERE RN = 1

-- ๊ฐ๊ทธ๋ฃน(DEPT_ID)์— ์›”๊ธ‰ ๋งŽ์€ 1๋“ฑ ์ถœ๋ ฅ

 

28. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : RATIO_TO_REPORT (์ „์ฒด SUM๊ฐ’์— ๋Œ€ํ•œ ํ–‰๋ณ„ ์นผ๋Ÿผ๊ฐ’, 0~1 ์‚ฌ์ด๊ฐ’)

 

29. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ๊ฐ™์€ ์ด๋ฆ„์˜ SAVEPOINT๊ฐ€ ์ €์žฅ๋  ๊ฒฝ์šฐ ๋‚˜์ค‘์— ์ €์žฅ๋œ SAVEPOINT ๋กœ ROLLBACK(๋ณต์›) ํ•จ.

 

30. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : oracle ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๊ฐ’์ด auto commit off ๋กœ ddl ์ด ์ผ์–ด๋‚  ๊ฒฝ์šฐ ๋ฌต์‹œ์  commit ์ด ๋จ (์„ค์ • ๋ถˆ๊ฐ€), sql server ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๊ฐ’์ด auto commit on ์œผ๋กœ false ๊ฐ€ ๋  ๊ฒฝ์šฐ ddl ๋„ ๋ฌต์‹œ์  commit ์ด ๋˜์ง€ ์•Š์Œ

1) SQL ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ, AUTO COMMIT ๊บผ๋‘๋ฉด UPDATE, CREATE ๋ชจ๋‘ ์ทจ์†Œ๋˜๊ณ  ๋‹ค์‹œ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์Œ

2) ์˜ค๋ผํด์€ DDL์˜ AUTO COMMIT์ด ๊ธฐ๋ณธ์ด๊ธฐ ๋•Œ๋ฌธ์— CREATE ์ทจ์†Œ๋˜์ง€ ์•Š๊ณ , UPDATE๋„ ์ทจ์†Œ X

 

31. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : UNION(ํ•ฉ์ง‘ํ•ฉ, ์ค‘๋ณตํ—ˆ์šฉ X) / A, B ๊ณ ๊ฐ ID, ์ด์šฉ์ผ์ž ์ค‘๋ณต์—†์ด ๋ชจ๋‘ ์„ ํƒํ•ด์„œ CROSS JOIN

 

32. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : 

 

33. ์ •๋‹ต :  2

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

 

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

 

34. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : 

 

35. ์ •๋‹ต :  1 

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

 

ํ•ด์„ค : ROUND (๋ฐ˜์˜ฌ๋ฆผ), CEIL (์˜ฌ๋ฆผ)

 

36. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : ORA-00947 ์—๋Ÿฌ

 

37. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : ORDER BY default ์˜ค๋ฆ„์ฐจ์ˆœ

 

38. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : ์ˆœ์„œ ( FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY )

FROM ์ ˆ ํšŒ์›๋ฒˆํ˜ธ๋กœ ๊ทธ๋ฃน ๋ฌถ๊ณ , ํšŒ์›๋ฒˆํ˜ธ์™€ ๊ทธ๋ฃน AMT ํ•ฉ์„ A , 2๋ฒˆ์งธ ํ‘œ ์ „์ฒด ์„ ํƒ ํšŒ์›๋ฒˆํ˜ธ๋ž‘ ๋“ฑ๊ธ‰ SELECT

AND ์ ˆ : B์˜ MIN_AMT โ‰ค A์˜ AMT ํ•ฉ โ‰ค B์˜ MAX_AMT

 

39. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : 

 

40. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : ์ตœ์ƒ์œ„ ๊ด€๋ฆฌ์ž๊ฐ€ ๋‚˜์˜ฌ๋ ค๋ฉด left outer join ์ด ๋˜์–ด์•ผ ํ•จ. ์ตœ์ƒ์œ„ ๊ด€๋ฆฌ์ž๋Š” manager_id ๊ฐ€ null ์ด๊ฑฐ๋‚˜ ์—†๊ธฐ ๋•Œ๋ฌธ.

 

41. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : 

ํ•ฉ์ง‘ํ•ฉ : UNION (๋Š๋ฆผ)

์ค‘๋ณตํ—ˆ์šฉ ํ•ฉ์ง‘ํ•ฉ : UNION ALL (๋น ๋ฆ„)

์ฐจ์ง‘ํ•ฉ : MINUS(์˜ค๋ผํด), EXCEPT(SQL ์„œ๋ฒ„)

๊ต์ง‘ํ•ฉ : INTERSECT

 

42. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : 

1) Partition by ์™€ Group by ๋Š” ํŒŒํ‹ฐ์…˜ ๋ถ„ํ• ํ•œ๋‹ค๋Š” ์ ์—์„œ ์œ ์‚ฌ

2) ์ง‘๊ณ„ Window Function(sum, max, min)์„ Window์ ˆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋ ˆ์ฝ”๋“œ ๋ฒ”์œ„(์ง‘๊ณ„๋Œ€์ƒ) ์ง€์ •๊ฐ€๋Šฅ

3) Window Function ์œผ๋กœ ๊ฒฐ๊ณผ ๊ฑด์ˆ˜ ์ค„์ง€ ์•Š์Œ

4) group by, Window Function ๋ณ‘ํ–‰ ๋ถˆ๊ฐ€

 

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

 

43. ์ •๋‹ต :  LEFT OUTER JOIN

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

 

ํ•ด์„ค : ์‚ฌ์› ์—†๋Š” ๋ถ€์„œ๋„ ์ถœ๋ ฅ 

 

44. ์ •๋‹ต :  C

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

 

ํ•ด์„ค : 

Start with SUPER_ID IS NULL

->(1, NULL, A) ์„ ํƒ(๋ฃจํŠธ LEVEL1)

CONNECT BY PRIOR ID = SUPER_ID

-> ID๊ฐ€ ์ž์‹ SUPER_ID ๊ฐ€ ๋ถ€๋ชจ / ID=2,3์€ SUPER_ID=1 ์˜ ์ž์‹ / ID=4๋Š” SUPER_ID=2์˜ ์ž์‹

ORDER SIBLINGS BY ๋Š” ๊ฐ™์€ ๋ ˆ๋ฒจ ๋‚ด์—์„œ ์ •๋ ฌ

-> ID=2,3์€ ๋‘˜๋‹ค LEVEL=1 ์ด๋ฏ€๋กœ ์ •๋ ฌ, CODE DESC ์ฝ”๋“œ ๋’ท์ˆœ์„œ ๋ถ€ํ„ฐ ์ •๋ ฌ

2๋ฒˆ์งธ ๊ฐ’ C 

CODE
----------
A
C
B
D

 

45. ์ •๋‹ต :  MAX

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

 

ํ•ด์„ค : SALARY < (SELECT (MAX)(SALARY) FROM SQLD_34_45))

-> ์ตœ๋Œ“๊ฐ’๋ณด๋‹ค ์ž‘์€ ์›”๊ธ‰

 

46. ์ •๋‹ต :  SQLDEVELOPER

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

 

ํ•ด์„ค : UPPER ( ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ), LOWER ( ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ ), INITCAP ( ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๋งŒ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ )

 

47. ์ •๋‹ต :  54800

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

 

ํ•ด์„ค : a.salary + b.sum_salary (ํ˜„์žฌ ๋…ธ๋“œ์—์„œ ๋ฃจํŠธ ๋…ธ๋“œ๊นŒ์ง€์˜ salary ํ•ฉ)

emp_id ๊ฐ€ 105

(with ์ ˆ์•ˆ์— B.EMP_ID = A.MANAGER_ID ์กฐ๊ฑด ์ด ์žˆ์œผ๋ฏ€๋กœ)

105์˜ ๋งค๋‹ˆ์ €๋Š” 103

103์˜ ๋งค๋‹ˆ์ €๋Š” 102

102์˜ ๋งค๋‹ˆ์ €๋Š” 100

๋”ฐ๋ผ์„œ 105์˜ sum_salary ๋Š” 103, 102, 100์„ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค.

4800 + 9000 + 17000 + 24000 = 54800

 

48. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : NOT - AND - OR ์ˆœ์œผ๋กœ ์—ฐ์‚ฐ

 

49. ์ •๋‹ต :  NTILE

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

 

ํ•ด์„ค : NTILE (์ „์ฒด ๊ฑด์ˆ˜๋ฅผ ์ธ์ˆ˜๊ฐ’์œผ๋กœ N๋“ฑ๋ถ„ํ•จ)

 

50. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : LAG๋Š” ์ด์ „ N๋ฒˆ์งธ ํ–‰์„ ๊ฐ€์ ธ์˜ด (ํ•ด๋‹น ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ฉด ๋‘๋ฒˆ์งธ ์ด์ „์˜ salary ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋ฏ€๋กœ ๋‹ต์€ 2 ๊ฐ€ ๋œ๋‹ค.)

DEPARTMENT_ID ๊ทธ๋ฃน, SALARY ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

 

 

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

728x90
300x250

์ฝ”๋“œ