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

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

by yunamom 2022. 5. 19.
728x90
300x250
โณ๋‚จ์€์‹œ๊ฐ„ : 89๋ถ„41์ดˆ

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


๋ฌธ์ œ 1. ํŠน์ • ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์›์นผ๋Ÿผ, ๋ถ€์„œ์นผ๋Ÿผ๋งŒ ์ถ”์ถœํ•˜๋Š” ๊ฒฝ์šฐ์— DISK I/O๋ฅผ ๊ฒฝ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ˜์ •๊ทœํ™” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

1) ์ˆ˜ํ‰ ๋ถ„ํ• 

2) ์ˆ˜์ง ๋ถ„ํ• 

3) ์ค‘๋ณต ํ…Œ์ด๋ธ” ์ถ”๊ฐ€

4) ์ˆ˜์ง ๋ฐ ์ˆ˜ํ‰ ๋ถ„ํ•  ์ˆ˜ํ–‰

 

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

 
1) ํ•ด๋‹น ๋ฆด๋ ˆ์ด์…˜์— ๊ธฐ๋ณธํ‚ค๋ฅผ ์‹๋ณ„ํ•œ๋‹ค.

2) ๊ธฐ๋ณธํ‚ค๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ‚ค๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์— ๋ถ€๋ถ„ํ•จ์ˆ˜ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•œ๋‹ค.

3) ์กฐ์ธ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•œ๋‹ค.

4) ์ดํ–‰ํ•จ์ˆ˜ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•œ๋‹ค.

 

๋ฌธ์ œ 3. ๋‹ค์Œ์€ ABC์ฆ๊ถŒํšŒ์‚ฌ์˜ ํšŒ์›์ •๋ณด๋ฅผ ๋ชจ๋ธ๋ง ํ•œ ๊ฒƒ์ด๋‹ค. ํšŒ์›์ •๋ณด๋Š” ์ˆ˜ํผํƒ€์ž…์ด๊ณ  ๊ฐœ์ธํšŒ์›๊ณผ ๋ฒ•์ธํšŒ์› ์ •๋ณด๋Š” ์„œ๋ธŒํƒ€์ž…์ด๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํšŒ์›์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ํ•ญ์ƒ ๊ฐœ์ธํšŒ์›๊ณผ ๋ฒ•์ธํšŒ์›์„ ๋™์‹œ์— ์กฐํšŒํ•˜๋Š” ํŠน์„ฑ์ด ์žˆ์„ ๋•Œ ์ˆ˜ํผํƒ€์ž…๊ณผ ์„œ๋ธŒํƒ€์ž…์„ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ€์žฅ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ONE TO ONE

2) PLUS TYPE

3) SINGLE TYPE

4) ์ •๋‹ต ์—†์Œ


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

์ฆ๊ถŒํšŒ์‚ฌ์—์„œ ์ฃผ๋ฌธ์„ ๋ฐœ์ฃผ ํ•  ๋•Œ ํ•ด๋‹น ์ข…๋ชฉ์— ๋Œ€ํ•œ ํ˜ธ๊ฐ€๋‹จ์œ„๊ฐ€ ์žˆ๋‹ค. 
์ฆ‰, ์ฃผ๋ฌธ์€ 10ํ˜ธ๊ฐ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐœ์ฃผํ•  ์ˆ˜๊ฐ€ ์žˆ์–ด์„œ 
์–ด๋–ค ์ข…๋ชฉ์„ ์ฃผ๋ฌธํ•  ๋•Œ 1003์›๊ณผ ๊ฐ™์€ ๊ธˆ์•ก์œผ๋กœ๋Š” ๋ฐœ์ฃผํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.
์ด์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ’์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

1) ์‹œ์Šคํ…œ์นดํƒˆ๋กœ๊ทธ

2) ๋‹ค์ค‘ ๊ฐ’ ์†์„ฑ

3) ์„ ํƒ๋„

4) ๋„๋ฉ”์ธ(Domain)

 

๋ฌธ์ œ 5. ๋‹ค์Œ์˜ ์ •๊ทœํ™” ๋‹จ๊ณ„์—์„œ ์ฃผ์‹๋ณ„์ž์™€ ๊ด€๋ จ์„ฑ์ด ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ์ œ1์ •๊ทœํ™”

2) ์ œ2์ •๊ทœํ™”

3) ์ œ3์ •๊ทœํ™”

4) BCNF

 

๋ฌธ์ œ 6. ์—”ํ„ฐํ‹ฐ์˜ ์ข…๋ฅ˜ ์ค‘ ๋‹ค:๋‹ค ๊ด€๊ณ„๋ฅผ ํ•ด์†Œํ•˜๋ ค๋Š” ๋ชฉ์ ์œผ๋กœ ์ธ์œ„์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์—”ํ„ฐํ‹ฐ๋Š” ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ๊ธฐ๋ณธ ์—”ํ„ฐํ‹ฐ

2) ํ–‰์œ„ ์—”ํ„ฐํ‹ฐ

3) ๊ต์ฐจ ์—”ํ„ฐํ‹ฐ

4) ์ข…์† ์—”ํ„ฐํ‹ฐ

 

๋ฌธ์ œ 7. ๋‹ค์Œ์€ ABC์ฆ๊ถŒํšŒ์‚ฌ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง์ด๋‹ค. ๋ชจ๋ธ๋ง์€ ๊ณ ๊ฐ๊ณผ ๊ณ„์ขŒ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ์˜ ๋ณด๊ธฐ ์ค‘์—์„œ ๊ทธ ์„ค๋ช…์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ



1) ๊ณ„์ขŒ๋ฅผ ๊ฐœ์„คํ•˜์ง€ ์•Š์€ ๊ณ ๊ฐ์€ ABC์ฆ๊ถŒ ํšŒ์‚ฌ์— ๊ณ ๊ฐ์ด ๋  ์ˆ˜๊ฐ€ ์—†๋‹ค.

2) ๊ณ„์ขŒ๋ฒˆํ˜ธ๋Š” ์ „์ฒด ๊ณ ๊ฐ๋งˆ๋‹ค ์œ ์ผํ•œ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ€์—ฌ๋œ๋‹ค.

3) ๊ณ ๊ฐ๋งˆ์Šคํ„ฐ์™€ ๊ณ„์ขŒ๋งˆ์Šคํ„ฐ์˜ ๊ด€๊ณ„๋Š” ์‹๋ณ„๊ด€๊ณ„์ด๋‹ค.

4) ํ•œ ๋ช…์˜ ๊ณ ๊ฐ์— ํ•˜๋‚˜์˜ ๊ณ ๊ฐ๋“ฑ๊ธ‰๋งŒ ๋ถ€์—ฌ๋œ๋‹ค.

 

๋ฌธ์ œ 8. ๋‹ค์Œ ERD(Entity Relationship Diagram) ์ž‘์„ฑ ์ˆœ์„œ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์„ ๊ณ ๋ฅด์‹œ์˜ค. ์ •๋‹ตํ™•์ธ๐ŸŒผ

๊ฐ€) ์—”ํ„ฐํ‹ฐ๋ฅผ ๊ทธ๋ฆฐ๋‹ค.
๋‚˜) ์—”ํ„ฐํ‹ฐ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๋ฐฐ์น˜ํ•œ๋‹ค.
๋‹ค) ์—”ํ„ฐํ‹ฐ ๊ฐ„์— ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•œ๋‹ค.
๋ผ) ๊ด€๊ณ„๋ช…์„ ๊ธฐ์ˆ ํ•œ๋‹ค.
๋งˆ) ๊ด€๊ณ„์˜ ์ฐธ์—ฌ๋„๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค.
๋ฐ”) ๊ด€๊ณ„์˜ ํ•„์ˆ˜ ์—ฌ๋ถ€๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค.
1) ๊ฐ€) โ†’ ๋‚˜) โ†’ ๋‹ค) โ†’ ๋ผ) โ†’ ๋งˆ) โ†’ ๋ฐ”)

2) ๋‚˜) โ†’ ๊ฐ€) โ†’ ๋‹ค) โ†’ ๋ผ) โ†’ ๋งˆ) โ†’ ๋ฐ”)

3) ๊ฐ€) โ†’ ๋‚˜) โ†’ ๋ผ) โ†’ ๋‹ค) โ†’ ๋งˆ) โ†’ ๋ฐ”)

4) ๊ฐ€) โ†’ ๋‚˜) โ†’ ๋‹ค) โ†’ ๋งˆ) โ†’ ๋ฐ”) โ†’ ๋ผ)

 

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

 

๊ณ ๊ฐ๋งˆ์Šคํ„ฐ ํ…Œ์ด๋ธ”์˜ ๊ณ ๊ฐ๋ฒˆํ˜ธ๋Š”
๋Œ€ํ‘œ์„ฑ์— ๋”ฐ๋ฅธ ์‹๋ณ„์ž ๋ถ„๋ฅ˜๋กœ ( ใ„ฑ )์ด๊ณ 
์Šค์Šค๋กœ ์ƒ์„ฑํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ์„œ๋Š” ( ใ„ด )์ด๋‹ค.
๋˜ํ•œ ๊ณ„์ขŒ๋งˆ์Šคํ„ฐ์˜ ๊ณ ๊ฐ๋ฒˆํ˜ธ๋Š” ์Šค์Šค๋กœ ์ƒ์„ฑ์—ฌ๋ถ€์— ๋”ฐ๋ผ์„œ
( ใ„ท ) ์ด๋‹ค.
1) ใ„ฑ-๋ณด์กฐ ์‹๋ณ„์ž, ใ„ด-์™ธ๋ถ€ ์‹๋ณ„์ž, ใ„ท-๋‹จ์ผ ์‹๋ณ„์ž

2) ใ„ฑ-์ฃผ์‹๋ณ„์ž, ใ„ด-๋‚ด๋ถ€ ์‹๋ณ„์ž, ใ„ท-์™ธ๋ถ€ ์‹๋ณ„์ž

3) ใ„ฑ-๋ณด์กฐ ์‹๋ณ„์ž, ใ„ด-๋‚ด๋ถ€ ์‹๋ณ„์ž, ใ„ท-์™ธ๋ถ€ ์‹๋ณ„์ž

4) ใ„ฑ-๋‚ด๋ถ€ ์‹๋ณ„์ž, ใ„ด-๋‹จ์ผ ์‹๋ณ„์ž, ใ„ท-๋ณด์กฐ ์‹๋ณ„์ž

 

๋ฌธ์ œ 10. ์‹๋ณ„์ž ์ค‘์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค์— ์˜ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง€๋Š” ์‹๋ณ„์ž๋กœ ๋Œ€์ฒด์—ฌ๋ถ€๋กœ ๋ถ„๋ฆฌ๋˜๋Š” ์‹๋ณ„์ž๋Š” ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ๋ณธ์งˆ ์‹๋ณ„์ž

2) ๋‹จ์ผ ์‹๋ณ„์ž

3) ๋‚ด๋ถ€ ์‹๋ณ„์ž

4) ์ธ์กฐ ์‹๋ณ„์ž

 

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

[SQLD_39_11]
name    deptname   position   sal
----------------------------------
์กฐ์กฐ      ITํŒ€       ๋ถ€์žฅ        5000
์—ฌํฌ      ITํŒ€       ๋Œ€๋ฆฌ        3000
์œ ๋น„      ๋ณด์•ˆํŒ€      ์ฐจ์žฅ        4000
๊ด€์šฐ      ๋ณด์•ˆํŒ€      ์‚ฌ์›        2000
์žฅ๋น„      ์ด๋ฌดํŒ€      ๋ถ€์žฅ        5000
๋™ํƒ      ์ธ์‚ฌํŒ€      ์ฐจ์žฅ        4000

[RESULT]
์ˆœ์œ„  ์ด๋ฆ„   ๋ถ€์„œ   ์ง์ฑ…   ๊ธ‰์—ฌ
--------------------------
1    ์กฐ์กฐ  ITํŒ€   ๋ถ€์žฅ   5000
1    ์žฅ๋น„  ์ด๋ฌดํŒ€  ๋ถ€์žฅ   5000
3    ๋™ํƒ  ์ธ์‚ฌํŒ€  ์ฐจ์žฅ   4000
3    ์œ ๋น„  ๋ณด์•ˆํŒ€  ์ฐจ์žฅ   4000
5    ์—ฌํฌ  ITํŒ€   ๋Œ€๋ฆฌ   3000
6    ๊ด€์šฐ  ๋ณด์•ˆํŒ€  ์‚ฌ์›   2000
[SQL]

SELECT
(       ) OVER (ORDER BY sal DESC)
AS rank, name, deptname, position, sal
FROM SQLD_39_11;
1) RANK()

2) DENSE_RANK()

3) ROW_NUMBER()

4) NTILE()

 

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

[SQLD_39_12]
COL1      COL2
---------------
100       100
NULL      60
NULL      NULL


[SQL]
SELECT COALESCE(COL1,COL2*50,50)
FROM SQLD_39_12;
1) 100,3000,50

2) 100,NULL,50

3) 100,60,50

4) 100,3000,NULL

 

๋ฌธ์ œ 13. T_MEMBER ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  kind์— ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” DDL๋ฌธ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

[T_MEMBER : ๊ธฐ๋ณธํ‚ค(PK) memberid]

memberid varchar(20)
name varchar(100) not null
kind varchar(10)
regdate date

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

(1)                                      (2)
CREATE TABLE T_MEMBER(                     CREATE TABLE T_MEMBER(
memberid varchar(20) PRIMARY KEY,          memberid varchar(20),
name varchar(100) NOT NULL,                name varchar(100) NOT NULL,
kind varchar(10),                          kind varchar(10),
regdate date                               regdate date
);                                         );
CREATE index indmember on T_MEMBER(kind);  CREATE index indmember on T_MEMBER(kind);


(3)                                      (4)
CREATE TABLE T_MEMBER(                     CREATE TABLE T_MEMBER(
memberid varchar(20) PRIMARY KEY,          memberid varchar(20),
name varchar(100) NOT NULL,                name varchar(100) NOT NULL,
kind varchar(10),                          kind varchar(10),
regdate date                               regdate date
);                                         );
ALTER index indmember on T_MEMBER(kind);   CREATE index indmember as T_MEMBER(kind);
 

 

๋ฌธ์ œ 14. ์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ”๋“ค์— ๋Œ€ํ•ด์„œ ์•„๋ž˜์˜ SQL๋ฌธ์„ ์ˆ˜ํ–‰ํ•˜์˜€์„ ๋•Œ ๋ฐ˜ํ™˜๋˜๋Š” ROW๊ฐ’์˜ ์ˆ˜๋Š” ์–ผ๋งˆ์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

[SQLD39_14_1]
----
COL
1
2
3
4
5
6

[SQLD39_14_2]
----
COL
3
7
8

[SQLD39_14_3]
----
COL
4
5
6

[SQL]
SELECT*FROM SQLD39_14_1
UNION ALL
SELECT*FROM SQLD39_14_2
MINUS
SELECT*FROM SQLD39_14_3;

 

1) 2

2) 3

3) 4

4) 5

 

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

์กฐ์ธ๋˜๋Š” N๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ๋ชจ๋‘ ์ •๋ ฌํ•œ ํ›„์— ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
1) HASH JOIN

2) SORT MERGE JOIN

3) NESTED LOOP JOIN

4) INNER JOIN

 

๋ฌธ์ œ 16. ๋‹ค์Œ SQL๋ฌธ๊ณผ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ›„ (  ?  )์— ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๊ณ ๋ฅด์‹œ์˜ค. ์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQL]

SELECT LEVEL, LPAD(' ',4 * (LEVEL-1)) || EMPNO AS EMPNO,
       MGR,CONNECT_BY_ISLEAF
FROM EMP
START WITH MGR IS NULL
(     ?     ) EMPNO = MGR;

-----------------------------------
[RESULT]

LEVEL  EMPNO       MGR   CONNECT_BY_ISLEAF
1     1000                 0
2       1001       1000    0
3         1005     1001    1
3         1006     1001    0
4           1007   1006    1
4           1008   1006    1
3         1011     1001    1
2       1002       1000    0
3         1009     1002    1
3         1010     1002    1
.
.
์ƒ๋žต
1) CONNECT BY

2) GROUP BY

3) WHERE

4) HAVING

 

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

 

1) RANK ํ•จ์ˆ˜๋Š” ๋™์ผ์ˆœ์œ„ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

2) DENSE_RANK ํ•จ์ˆ˜๋Š” RANK ํ•จ์ˆ˜์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜์ง€๋งŒ ๋™์ผ ๋“ฑ์ˆ˜ ์ˆœ์œ„์— ์˜ํ–ฅ์ด ์—†๋‹ค.

3) ROW_NUMBER ํ•จ์ˆ˜๋Š” ํŠน์ • ๋™์ผ ์ˆœ์œ„๊ฐ€ ๋ถ€์—ฌ๋˜์ง€ ์•Š๋Š”๋‹ค.

4) ์ˆœ์œ„ ํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ ORDER BY์ ˆ์€ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

 

๋ฌธ์ œ 18. ๋‹ค์Œ์˜ GROUP BY๋ฌธ๊ตฌ์™€ ๋™์ผํ•œ SQL๋ฌธ์„ ๊ณ ๋ฅด์‹œ์˜ค. ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

GROUP BY CUBE(DEPTNO, JOB);

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

(1)                       (2)
GROUP BY ROLLUP(DEPTNO);   GROUP BY GROUPING SETS
                           (DEPTNO, JOB, (DEPTNO, JOB), ());
                           
(3)                       (4)
GROUP BY DEPTNO UNION ALL  ํ•ด๋‹น์‚ฌํ•ญ ์—†์Œ.
GROUP BY JOB UNION ALL
GROUP BY (JOB, DEPTNO);

 

๋ฌธ์ œ 19. ์•„๋ž˜์˜ SQL๋ฌธ์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ์กฐํšŒ๋˜๋Š” ํ–‰ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜์˜ค๋Š” SQL๋ฌธ๊ณผ ๊ฐ€์žฅ ์ ๊ฒŒ ๋‚˜์˜ค๋Š” SQL๋ฌธ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

INSERT INTO A1 VALUES(1,4);
INSERT INTO A1 VALUES(2,5);
INSERT INTO A1 VALUES(3,6);
INSERT INTO A1 VALUES(4,7);

INSERT INTO A2 VALUES(1,4);
INSERT INTO A2 VALUES(2,5);
INSERT INTO A2 VALUES(NULL,6);
INSERT INTO A2 VALUES(NULL,7);
(1)                        (2)
SELECT * FROM A1, A2        SELECT * FROM A1 LEFT OUTER JOIN A2
WHERE A1.COL1 = A2.COL1;    ON A1.COL1 = A2.COL1;

(3)                        (4)  
SELECT * FROM A1            SELECT * FROM A1 FULL OUTER JOIN A2
RIGHT OUTER JOIN A2         ON A1.COL1 = A2.COL1;
ON A1.COL1 = A2.COL1;

1) (1), (2)

2) (2), (3)

3) (3), (4)

4) (4), (1)

 

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

CREATE TABLE SQLD39_20(
ID NUMBER PRIMARY KET,
AGE NUMBER NOT NULL,
NAME VARCHAR2(1)
);

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

(1) INSERT INTO SQLD39_20 VALUES(10,20,SYSDATE);

(2) INSERT INTO SQLD39_20 VALUES(20,NULL,'A');

(3) INSERT INTO SQLD39_20(AGE, NAME) VALUES(20,'A');

(4) INSERT INTO SQLD39_20(ID, AGE, NAME) VALUES(20,10,NULL);

 

๋ฌธ์ œ 21. ๋‹ค์Œ ๊ณ„์ธตํ˜• ์ฟผ๋ฆฌ๋ฌธ์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD39_21]

ID   PARENT_ID   NAME   PARENT_NAME   DEPTH
-------------------------------------------
3     0          A                    1
4     0          B                    1
5     3          C       A            2
6     3          D       A            2
7     3          E       A            2
8     3          F       A            2
9     6          G       F            3
10    4          H       B            2
11    4          I       B            2
SELECT ID, PARENT_ID, NAME, PARENT_NAME
FROM SQLD39_21
WHERE PARENT_ID NOT IN(3)
START WITH PARENT_ID = 0
CONNECT BY PRIOR ID = PARENT_ID
ORDER SIBLINGS BY PARENT_ID ASC, ID ASC;
1) PARENT_ID๊ฐ€ 0์ด๋ผ๋„ 3์ด ํฌํ•จ๋˜๋ฉด ์ „๊ฐœ๋ฅผ ๋ฉˆ์ถ˜๋‹ค.

2) ์ˆœ๋ฐฉํ–ฅ ์ „๊ฐœ๋‹ค.

3) ์ค‘๋ณต์ด ์ƒ๊ฒผ์„ ๋•Œ ๋ฃจํ”„๋ฅผ ๋Œ์ง€ ์•Š๊ธฐ ์œ„ํ•ด NO CYCLE ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

4) ORDER SIBLINGS BY๋ฅผ ํ•˜๋ฉด ์ „์ฒด ํ…Œ์ด๋ธ” ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

 

๋ฌธ์ œ 22. ๋‹ค์Œ ๋ณด๊ธฐ์—์„œ ์„ค๋ช…ํ•˜๋Š” ์ธ๋ฑ์Šค ์Šค์บ” ๋ฐฉ์‹์€ ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

[๋ณด๊ธฐ]
์ธ๋ฑ์Šค๋ฅผ ์—ญ์ˆœ์œผ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค.
์ตœ๋Œ“๊ฐ’์„ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
1) INDEX UNIQUE SCAN

2) INDEX RANGE SCAN

3) INDEX RANGE SCAN DESCENDING

4) INDEX FULL SCAN

 

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

[SQLD39_23]
ID    AGE    NAME
-----------------
10    20     A
11    30     B
12    40     C
13    50     D
14    60     E

[SQL]
SELECT ID, AGE
FROM SQLD39_23
ORDER BY (CASE WHEN ID = 10 OR ID = 13 THEN 1 ELSE 2 END),
AGE DESC;
(1)                 (2)
ID   AGE             ID   AGE
--------             --------
13    50             13    50
10    20             10    20
14    60             11    30
12    40             12    40
11    30             14    60
                     13    50
                     10    20
               
(3)                 (4)
ID   AGE             ID   AGE
--------             --------
10    20             10    20
11    30             14    60
12    40             13    50
13    50             12    40
14    60             11    30

 

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

1) VARCHAR(๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์žํ˜•)์€ ๋น„๊ต์‹œ ์„œ๋กœ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋‚ด์šฉ์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค.

2) CHAR(๊ณ ์ •๊ธธ์ด ๋ฌธ์žํ˜•)์€ ๋น„๊ต ์‹œ ์„œ๋กœ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋‚ด์šฉ์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค.

3) ๋ฌธ์žํ˜•๊ณผ ์ˆซ์žํ˜•์„ ๋น„๊ต ์‹œ ๋ฌธ์žํ˜•์„ ์ˆซ์žํ˜•์œผ๋กœ ๋ฌต์‹œ์  ๋ณ€ํ™˜ํ•˜์—ฌ ๋น„๊ตํ•œ๋‹ค.

4) ์—ฐ์‚ฐ์ž ์‹คํ–‰ ์ˆœ์„œ๋Š” ๊ด„ํ˜ธ, NOT, ๋น„๊ต์—ฐ์‚ฐ์ž, AND, OR์ˆœ์ด๋‹ค.

 

๋ฌธ์ œ 25. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋„๋ก SQL๋ฌธ ORDER BY ๋ฌผ์Œํ‘œ์— ๋“ค์–ด๊ฐˆ ๋‹ต์„ ๊ณ ๋ฅด์‹œ์˜ค. ์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD39_25]
ํšŒ์›ID    ์ฃผ๋ฌธ๊ธˆ์•ก
----------------
B        255
C        255
A        450
D        100

[RESULT]
ํšŒ์›ID  RANK  ์ฃผ๋ฌธ๊ธˆ์•ก
----------------
A      1     450
B      2     255
C      2     255
D      3     100

[SQL]
SELECT ํšŒ์›ID,
DENSE_RANK() OVER(ORDER BY ?  )
AS RANK, ์ฃผ๋ฌธ๊ธˆ์•ก
FROM SQLD39_25;
1) ์ฃผ๋ฌธ๊ธˆ์•ก

2) RANK

3) ์ฃผ๋ฌธ๊ธˆ์•ก DESC

4) ํšŒ์›ID

 

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

[SQLD39_26]
ID
---
1000
1000
1000
3000
3000
4000
9999
9999

[SQL]
SELECT ID FROM SQLD39_26
GROUP BY ID
HAVING COUNT(*) = 2
ORDER BY (CASE WHEN ID = 1000 THEN 0 ELSE ID END);
(1)            (2)
ID             ID
----           ----
3000           9999
9999           3000

(3)            (4)
ID             ID
----           ----
1000           999
3000           3000
9999           1000

 

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

1) ๋…๋ฆฝ์„ฑ : ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
2) ํŽธ๋ฆฌ์„ฑ : ๋ณต์žกํ•œ ์งˆ์˜๋ฅผ ๋ทฐ๋กœ ์ƒ์„ฑํ•จ์œผ๋กœ์จ ๊ด€๋ จ ์งˆ์˜๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ํ•ด๋‹น ํ˜•ํƒœ์˜ SQL๋ฌธ์„ ์ž์ฃผ ์‚ฌ์šฉํ•  ๋•Œ ๋ทฐ๋ฅผ ์ด์šฉํ•˜๋ฉด ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
3) ๋ฌผ๋ฆฌ์„ฑ : ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ ๋ฌผ๋ฆฌ์ ์ธ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
4) ๋ณด์•ˆ์„ฑ : ์ง์›์˜ ๊ธ‰์—ฌ์ •๋ณด์™€ ๊ฐ™์ด ์ˆจ๊ธฐ๊ณ  ์‹ถ์€ ์ •๋ณด๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์นผ๋Ÿผ์„ ๋นผ๊ณ  ์ƒ์„ฑํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ๊ฐ์ถœ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฌธ์ œ 28. ๋‹ค์Œ์˜ SQL๋ฌธ์˜ (      )์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

SELECT(      ), COUNT(EMPNO)
FROM EMP
WHERE EMPNO > 0
GROUP BY DEPTNO, SAL;
1) EMPNO

2) DEPTNO

3) SAL

4) DEPTNO์™€ SAL

 

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

1) ํ•™์ƒ

2) ๊ณผ๋ชฉ

3) ์ˆ˜๊ฐ•

4) ํ•™์ƒ, ๊ณผ๋ชฉ

 

๋ฌธ์ œ 30. ๋‹ค์Œ์˜ SUB QUERY์˜ ์œ ํ˜•์€ ๋ฌด์—‡์ธ๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

SELECT A.EMPNO, A.ENAME
FROM EMP A
WHERE A.EMPNO = (SELECT 1 FROM
EMP_T B WHERE A.EMPNO = B.EMPNO);
1) SERVICE ์„œ๋ธŒ์ฟผ๋ฆฌ

2) EARLY FILTERํ˜• ์„œ๋ธŒ์ฟผ๋ฆฌ

3) CORRELATED ์„œ๋ธŒ์ฟผ๋ฆฌ

4) LOOPING ์„œ๋ธŒ์ฟผ๋ฆฌ

 

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

[SQLD39_31_1]
COL1    COL2    COL3
--------------------
1       A       10
2       B       20
3       A       10

[SQLD39_31_2]
COL1    COL2    COL3
--------------------
X       A       10
Y       B       20
Z       B       10


[SQL]
SELECT COUNT(DISTINCT COL1)
FROM SQLD39_31_1
WHERE COL3 = (SELECT COL3
              FROM SQLD39_31_2
              WHERE COL2 = 'A'
              );
1) 1

2) 2

3) 0

4) 3

 

๋ฌธ์ œ 32. ๋‹ค์Œ์˜ VIEW๋ฅผ ์กฐํšŒํ•œ SQL๋ฌธ์˜ ์‹คํ–‰๊ฒฐ๊ณผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD39_32]
COL1     COL2
-------------
A       1000
A       2000
B       1000
B       NULL
NULL    3000
NULL    NULL
[๋ทฐ ์ƒ์„ฑ ์Šคํฌ๋ฆฝํŠธ]
CREATE VIEW V_SQLD39_32
AS
SELECT * FROM SQLD39_32
WHERE COL1 = 'A' OR COL1 IS NULL;
[SQL]
SELECT SUM(COL2) ํ•ฉ๊ณ„
FROM V_SQLD39_32
WHERE COL2 >= 2000;
1) 1000

2) 3000

3) 4000

4) 5000

 

๋ฌธ์ œ 33. ํ…Œ์ด๋ธ”์˜ ์นผ๋Ÿผ์„ ๋ณ€๊ฒฝํ•˜๋Š” DDL๋ฌธ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

TEST ํ…Œ์ด๋ธ”์˜ NAME ์นผ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ 
CHAR์—์„œ VARCHAR๋กœ ๋ณ€๊ฒฝํ•˜๊ณ 
๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ 100์œผ๋กœ ๋Š˜๋ฆฐ๋‹ค.
(1)
ALTER TABLE TEST ALTER COLUMN NAME VARCHAR(100);

(2)
ALTER TABLE TEST MODIFY(NAME VARCHAR(100));

(3)
ALTER TABLE TEST ADD COLUMN NAME VARCHAR(100);

(4)
ALTER TABLE TEST ADD CONSTRAINT COLUMN NAME NAME VARCHAR(100);

 

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

 

1) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ NULL ๊ฐ’์˜ ์˜๋ฏธ๋Š” DBMS ์ข…๋ฅ˜๋ณ„๋กœ ๋‹ค๋ฅด๊ฒŒ ํ•ด์„ํ•œ๋‹ค.

2) MSSQL์—์„œ NULL๊ฐ’์€ 0์ด๋‹ค.

3) ORACLE์—์„œ NULL์€ TRUE ํ˜น์€ FALSE์˜ ์˜๋ฏธ์ด๋‹ค.

4) NULL๊ฐ’์€ ์•„์ง ์•Œ๋ ค์ง€์ง€ ์•Š์€ ๋ฏธ์ง€์˜ ๊ฐ’์ด๋‹ค.

 

๋ฌธ์ œ 35. BSC๋Š” ๊ธฐ์—…์˜ ์„ฑ๊ณผ๋ฅผ ๊ท ํ˜• ์žˆ๊ฒŒ ๊ด€๋ฆฌํ•˜๋Š” ์„ฑ๊ณผ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค. BSC๋Š” KPI๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ธฐ์—…์„ ํ‰๊ฐ€ํ•˜๋Š”๋ฐ KPI๋Š” ์ƒ์œ„, ์ค‘์œ„, ํ•˜์œ„ ๋“ฑ์˜ KPI๋กœ ์„ธ๋ถ„ํ™” ๋œ๋‹ค. ๋‹ค์Œ์˜ KPI-POOL ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ํ•˜๋‚˜์˜ ๊ฐ’์— ๋Œ€ํ•œ ์ž์‹ ์˜ ์ƒ์œ„ KPI๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” SQL๋ฌธ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

[KPIPOOL]
SUBKPI  KPINAME    MAINKPI
--------------------------
10      ๊ณ ๊ฐ๋งŒ์กฑ๋„      0
20      ์ฝœ์„ผํ„ฐ๋งŒ์กฑ๋„    10
30      ๋ถˆ๋งŒ๊ฑด์ˆ˜       20
40      ๋Œ€๊ธฐ์‹œ๊ฐ„       30
50      ๊ฑด์˜๊ฑด์ˆ˜       40
(1)                          (2)
SELECT * FROM                 SELECT * FROM
KPIPOOL                       KPIPOOL
START WITH MAINKPI = 0        WHERE SUBKPI = 30
CONNECT BY PRIOR              START WITH MAINKPI = 0
SUBKPI = MAINKPI;             CONNECT BY PRIOR MAINKPI = SUBKPI;

(3)                           (4)
SELECT * FROM                  SELECT * FROM
KPIPOOL                        KPIPOOL
START WITH MAINKPI = 100       WHERE SUBKPI = 30
CONNECT BY PRIOR               START WITH MAINKPI = 0
SUBKPI = MAINKPI;              CONNECT BY PRIOR
                               SUBKPI = MAINKPI;

 

๋ฌธ์ œ 36. ๋‹ค์Œ์˜ SQL๋ฌธ ์ค‘์—์„œ ๊ฒฐ๊ณผ๊ฐ€ ๋™์ผํ•œ ํ•˜๋‚˜์˜ SQL๋ฌธ์€?  

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

[KPIPOOL]
SUBKPI  KPINAME    MAINKPI
--------------------------
10      ๊ณ ๊ฐ๋งŒ์กฑ๋„      0
20      ์ฝœ์„ผํ„ฐ๋งŒ์กฑ๋„    10
30      ๋ถˆ๋งŒ๊ฑด์ˆ˜       20
40      ๋Œ€๊ธฐ์‹œ๊ฐ„       30
50      ๊ฑด์˜๊ฑด์ˆ˜       40

[SQL]
SELECT * FROM KPIPOOL
WHERE (SUBKPI, MAINKPI)
IN ((20,10),(0,30));
(1)
SELECT*FROM KPIPOOL WHERE SUBKPI=20;

(2)
SELECT*FROM KPIPOOL WHERE SUBKPI IN (20,10);

(3)
SELECT*FROM KPIPOOL WHERE (SUBKPI, MAINKPI) IN ((10,20),(20,30));

(4)
SELECT*FROM KPIPOOL WHERE (SUBKPI, MAINKPI) IN ((20,30),(30,40));

 

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

 

1) ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ๋Š” ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‚ด๋ถ€์— ORDER BY๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค.

2) ๋ฉ”์ธ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์„œ๋ธŒ์ฟผ๋ฆฌ์— ์žˆ๋Š” ์นผ๋Ÿผ์„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ํŽธ๋ฆฌํ•˜๋‹ค.

3) ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ–‰์„ ๋˜๋Œ๋ฆฌ๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋‹ค์ค‘ํ–‰ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

4) EXIST๋Š” TRUE์™€ FALSE๋งŒ ๋˜๋Œ๋ฆฐ๋‹ค.

 

๋ฌธ์ œ 38. ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋‚ด์ผ ๋‚ ์งœ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

(1)
SELECT TO_DATE(SYSDATE+1,'YYYYMMDD')
FROM DUAL;

(2)
SELECT TO_CHAR(SYSDATE+1,'YYYYMMDD')
FROM DUAL;

(3)
SELECT TO_DATE(SYSDATE-1,'YYYYMMDD')
FROM DUAL;

(4)
SELECT TO_CHAR(SYSDATE-1,'YYYYMMDD')
FROM DUAL;

 

๋ฌธ์ œ 39. PL/SQL์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค CURSOR๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ FETCH ์ „์— ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) CURSOR DEFINE

2) CURSOR OPEN

3) CURSOR CLOSE

4) EXIT

 

๋ฌธ์ œ 40. ์ฃผ์–ด์ง„ ํ…Œ์ด๋ธ”์—์„œ ํ•ด๋‹น SQL๋ฌธ์„ ์ˆ˜ํ–‰ ์‹œ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์กฐํšŒ๋˜๋Š” ํ…Œ์ด๋ธ”์„ ๊ณ ๋ฅด์‹œ์˜ค.  ์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD39_40]
C1   C2   C3
------------
A    1    1
B    1    1
B    1    2
C    2    2
Z         1

[SQL]
SELECT C2, SUM(C3)
FROM SQLD39_40
GROUP BY C2
HAVING COUNT(*) >= 2;

(1)           (2)
C2   SUM(C3)   C2   SUM(C3)
-----------    -----------
1       4       1      4
1       1
1       2


(3)           (4)
C2   SUM(C3)   C2   SUM(C3)
-----------    -----------
1       4       1      4
2       2       2      2
                       1

 

๋ฌธ์ œ 41. ๋‹ค์Œ์€ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋‹ค. ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฒƒ์€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ๊ฒฝ์œ ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค.

2) ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‹œ์Šคํ…œ ๊ฐ€์šฉ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.

3) ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

4) ์‚ฌ์šฉ์ž๋Š” ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋ฌธ์ œ 42. HASH ์กฐ์ธ์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?  ์ •๋‹ตํ™•์ธ๐ŸŒผ

 

1) ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ” ์ค‘์—์„œ ์ž‘์€ ํ…Œ์ด๋ธ”์„ HASH๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉํ•˜๊ณ  ๋‘ ๊ฐœ ํ…Œ์ด๋ธ”์˜ ์กฐ์ธํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค.

2) HASHํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฃผ์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ํ•ด๋‹น ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— CPU์—ฐ์‚ฐ์ด ๋งŽ์ด ์ˆ˜ํ–‰๋œ๋‹ค.

3) HASHํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์กฐ์ธ ์‹œ RANDOM ACCESS๋กœ ์ธํ•œ ๋ถ€ํ•˜๋กœ ์„ฑ๋Šฅ์ง€์—ฐ์ด ๋ฐœ์ƒํ• ์ˆ˜ ์žˆ๋‹ค.

4) HASH ์กฐ์ธ ์‹œ์—๋Š” ์„ ํ–‰ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์„œ ์ถฉ๋ถ„ํžˆ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

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

๋ฌธ์ œ 43. ์•„๋ž˜์˜ ERD์—์„œ 3์ฐจ ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•  ๋•Œ ํ•™๊ณผ๋“ฑ๋ก ์—”ํ„ฐํ‹ฐ์˜ ๊ฐœ์ˆ˜๋Š” ๋ช‡ ๊ฐœ๊ฐ€ ๋˜๋Š”๊ฐ€? ์ •๋‹ตํ™•์ธ๐ŸŒผ

[์กฐ๊ฑด]
๊ฐ€) ํ‰๊ฐ€์ฝ”๋“œ, ํ‰๊ฐ€๋‚ด์—ญ์€ ํ•œ๋ฒˆ์— ์ข…์†
๋‚˜) ์ฝ”์Šค๋ช…, ๊ธฐ๊ฐ„์€ ์ฝ”์Šค์ฝ”๋“œ์— ์ข…์†
๋‹ค) ํ‰๊ฐ€์ฝ”๋“œ, ํ‰๊ฐ€๋‚ด์—ญ์€ ์†์„ฑ ๊ฐ„ ์ข…์†์  ๊ด€๊ณ„

[์ฐธ๊ณ ]
1์ฐจ์ •๊ทœํ˜• : ๋ชจ๋“  ์†์„ฑ์€ ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ๊ฐ’, ์†์„ฑ๊ฐ’์˜ ์ค‘๋ณต ์ œ๊ฑฐ

2์ฐจ์ •๊ทœํ˜• : ์‹๋ณ„์ž์— ์ข…์†๋˜์ง€ ์•Š๋Š” ์†์„ฑ์˜ ์ค‘๋ณต ์ œ๊ฑฐ

3์ฐจ์ •๊ทœํ˜• : 2์ฐจ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๋ฉฐ ์‹๋ณ„์ž ์™ธ ์ผ๋ฐ˜ ์นผ๋Ÿผ๊ฐ„์˜ ์ข…์† ์กด์žฌ ์ œ๊ฑฐ

โœ๏ธ

 

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

<SQL>
SELECT ROUND(7.45, 1), 
       ABS(7.45), 
       FLOOR(7.45),
       TRUNC(7.45),
       CEIL(7.1)
FROM DUAL;

โœ๏ธ

 

๋ฌธ์ œ 45. ๋‹ค์Œ(     )์— ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

ABC๊ธฐ์—…์— ์ƒˆ๋กœ์šด DBA๊ฐ€ ์ž…์‚ฌ๋ฅผ ํ–ˆ๋‹ค.
ํŒ€์žฅ์€ DBA์—๊ฒŒ ๊ถŒํ•œ์„ ํ• ๋‹นํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ
GRANT DBA TO USERA; ๋ผ๋Š” SQL๋ฌธ์„ ์‹คํ–‰ ํ–ˆ๋‹ค.
์ด ๋•Œ GRANT๋ฌธ์— ์‚ฌ์šฉ๋œ DBA๋Š” 
๊ถŒํ•œ๋“ค์„ ๋ฌถ์–ด์„œ ํ•œ๊บผ๋ฒˆ์— ๋ถ€์—ฌํ•˜๋Š” (   ) ์ด๋ผ๊ณ  ํ•œ๋‹ค.

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

 

๋ฌธ์ œ 46. ์•„๋ž˜์˜ SQL๋ฌธ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

CREATE TABLE SQLD39_46 (N1 NUMBER);
INSERT INTO SQLD39_46 VALUES(1);
INSERT INTO SQLD39_46 VALUES(2);
CREATE TABLE TMP_SQLD39_46 (N1 NUMBER);
INSERT INTO TMP_SQLD39_46 VALUES(1);
TRUNCATE TABLE TMP_SQLD39_46;
ROLLBACK;
COMMIT;
SELECT SUM(N1) FROM SQLD39_46;

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

 

๋ฌธ์ œ 47. ์•„๋ž˜ ๊ฒฐ๊ณผ๊ฐ’์€ ์ฃผ์–ด์ง„ 2๊ฐœ ํ…Œ์ด๋ธ”์„ ํŠน์ • JOINํ•˜์—ฌ ๋‚˜ํƒ€๋‚œ ๊ฒฐ๊ณผ์ด๋‹ค. ์–ด๋–ค ์กฐ์ธ์ธ์ง€ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ •๋‹ตํ™•์ธ๐ŸŒผ

[SQLD39_47]         [SQLD39_47_2]
COL1   COL2          COL1   COL2
-----------          -----------
1       2              1       2
2       2              2       4
3       3              4       5

[RESULT]
COL1   COL2    COL1     COL2
----------------------------
1       2       1        2
2       2       2        4
NULL    NULL    4        5

[SQL]
SELECT *
FROM SQLD39_47 A(     ) SQLD39_47_2 B
ON A.COL1 = B.COL1;

โœ๏ธ

300x250

 

๋ฌธ์ œ 48. ์•„๋ž˜ ์„ค๋ช… ์ค‘ ๋นˆ์นธ์— ํ•ด๋‹นํ•˜๋Š” ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

ABC ๊ธฐ์—…์— ์ž…์‚ฌํ•œ ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ถŒํ•œ์„
๋ถ€์—ฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ (  ใ„ฑ  )์ด๊ณ 
๊ถŒํ•œ์„ ํšŒ์ˆ˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ (  ใ„ด  )์ด๋‹ค.

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

 

๋ฌธ์ œ 49. ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ์—์„œ ์•„๋ž˜์˜ SQL๋ฌธ์„ ์‹คํ–‰ํ•œ ํ–‰(Row)์˜ ๊ฑด์ˆ˜๋Š”?

[SQLD39_49]
COL1  COL2  COL3
-----------------
1      1      3
1      2      3     
2      1      3
3      1      3
3      2      3

[SQLD39_49_2]
COL1  COL2  COL3
-----------------
1      1      3
1      2      3     
2      1      3
3      1      3
3      2      3

[SQL]
SELECT COUNT(*)
FROM SQLD39_49 A, SQLD39_49_2 B
WHERE A.COL1 = B.COL1;

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

 

๋ฌธ์ œ 50. ์•„๋ž˜์˜ SQL1๊ณผ ๋™์ผํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก SQL2์˜ ๋นˆ์นธ์— ์„œ๋ธŒ์ฟผ๋ฆฌ ์—ฐ์‚ฐ์ž๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

[SQLD39_50_1]    [SQLD39_50_2]
COL1  COL2       COL1  COL2   COL3
100   200        100   200    1000
110   300        110   350    2000
120   400        120   400    3000
130   500        130   550    4000

[SQL1]
SELECT * FROM SQLD39_50_1 A 
   WHERE(A.COL1, A.COL2)
   IN (SELECT B.COL1, B.COL2 
          FROM SQLD39_50_2 B
       WHERE B.COL3 > 2000);
       
[SQL2]
SELECT * FROM SQLD39_50_1 A
   WHERE (         )
   (SELECT 1
       FROM SQLD39_50_2 B
    WHERE A.COL1 = B.COL1 
      AND A.COL2 = B.COL2
      AND B.COL3 > 2000);

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


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

 

1. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ์ˆ˜์ง ๋ถ„ํ• ์€ ํŠน์ • ์นผ๋Ÿผ ๋‹จ์œ„๋กœ ํ…Œ์ด๋ธ”์„ ๋ถ„ํ• ํ•˜์—ฌ ๋””์Šคํฌ I/O(Input/Output)์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

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

[๋„ํ‘œ]์ˆ˜์ง ๋ถ„ํ•  by yunamom

2. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : 

๊ตฌ๋ถ„ ์„ค๋ช…
์ œ 1 ์ •๊ทœํ™” ํ…Œ์ด๋ธ”์˜ ์†์„ฑ ํ•˜๋‚˜๋Š” ํ•˜๋‚˜์˜ ์†์„ฑ๊ฐ’๋งŒ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.
์ œ 2 ์ •๊ทœํ™” ๊ธฐ๋ณธํ‚ค ์ค‘์— ํŠน์ • ์ปฌ๋Ÿผ์—๋งŒ ์ข…์†๋œ ์ปฌ๋Ÿผ์ด ์กด์žฌํ•  ๊ฒฝ์šฐ ํ…Œ์ด๋ธ”์„ ๋ถ„ํ•ดํ•œ๋‹ค.
์ œ 3 ์ •๊ทœํ™” ์ œ 2์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๋Š” ์ƒํƒœ์—์„œ ์ดํ–‰ ํ•จ์ˆ˜ ์ข…์†์„ ์ œ๊ฑฐํ•˜๋Š” ์ •๊ทœํ™” ๊ณผ์ •

 

3. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : SINGLE TYPE

ํ•ญ์ƒ ๊ฐ™์ด ์กฐํšŒํ•œ๋‹ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ ํ†ตํ•ฉํ•ด์„œ ๋งŒ๋“œ๋Š” SINGLE TYPE ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด๋‹ค.

์ˆ˜ํผํƒ€์ž…๊ณผ ์„œ๋ธŒํƒ€์ž…์˜ ๋ณ€ํ™˜ ์‹œ์— ๊ฐ€์žฅ ๊ณ ๋ ค๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ…Œ์ด๋ธ”์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ด๋‹ค.

์˜ˆ) ํšŒ์›๋ฒˆํ˜ธ๊ฐ€ 1์ผ๋•Œ ๊ฐœ์ธํšŒ์›, ํšŒ์›๋ฒˆํ˜ธ๊ฐ€ 2์ผ๋•Œ ๋ฒ•์ธํšŒ์› ์‹์œผ๋กœ ๊ตฌ๋ถ„

by yunamom

์Šˆํผ/์„œ๋ธŒํƒ€์ž… ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๋ณ€ํ™˜ํƒ€์ž… ๋น„๊ต

๊ตฌ๋ถ„ OneToOne Type Plus Type Single Type
ํŠน์ง• ๊ฐœ๋ณ„ ํ…Œ์ด๋ธ” ์œ ์ง€ ์Šˆํผ+์„œ๋ธŒํƒ€์ž… ํ…Œ์ด๋ธ” ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”
ํ™•์žฅ์„ฑ ์šฐ์ˆ˜ํ•จ ๋ณดํ†ต ๋‚˜์จ
์กฐ์ธ์„ฑ๋Šฅ ๋‚˜์จ ๋‚˜์จ ์šฐ์ˆ˜ํ•จ
I/O๋Ÿ‰ ์„ฑ๋Šฅ ์ข‹์Œ ์ข‹์Œ ๋‚˜์จ
๊ด€๋ฆฌ์šฉ์ด์„ฑ ์ข‹์ง€์•Š์Œ ์ข‹์ง€์•Š์Œ ์ข‹์Œ(1๊ฐœ)
ํŠธ๋žœ์žญ์…˜ ์œ ํ˜•์— ๋”ฐ๋ฅธ ์„ ํƒ๋ฐฉ๋ฒ• ๊ฐœ๋ณ„ ํ…Œ์ด๋ธ”๋กœ ์ ‘๊ทผ์ด ๋งŽ์€ ๊ฒฝ์šฐ ์„ ํƒ ์Šˆํผ+์„œ๋ธŒ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ์„ ํƒ ์ „์ฒด๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ ์„ ํƒ

4. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : ๋„๋ฉ”์ธ์€ ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๋ฒ”์œ„์ด๋‹ค. (๊ฐ’์˜ ํ—ˆ์šฉ๋ฒ”์œ„)

 

5. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : ์ œ3์ •๊ทœํ™”๋Š” ์ฃผ์‹๋ณ„์ž๋ฅผ ์ œ์™ธํ•œ ์นผ๋Ÿผ ๊ฐ„์— ์ข…์†์„ฑ์„ ํ™•์ธํ•ด์„œ ์ข…์†์„ฑ์ด ์žˆ์œผ๋ฉด ๋ถ„ํ• ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

 

6. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : ๊ต์ฐจ ์—”ํ„ฐํ‹ฐ ๋Š” M:N ๊ด€๊ณ„๋ฅผ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ธ์œ„์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์—”ํ„ฐํ‹ฐ์ด๋‹ค.

์˜ˆ) ํ•™์ƒ, ๊ณผ๋ชฉ ํ…Œ์ด๋ธ”์„ ์ด์–ด์ฃผ๋Š” ์ˆ˜๊ฐ•ํ…Œ์ด๋ธ”์ด ๊ต์ฐจ ์—”ํ„ฐํ‹ฐ์ด๋‹ค.

์—”ํ„ฐํ‹ฐ์˜ ์ข…๋ฅ˜

์ข…๋ฅ˜ ์„ค๋ช…
๋…๋ฆฝ ์—”ํ‹ฐํ‹ฐ
[Kernel Entity, Master Entity]
์‚ฌ๋žŒ, ๋ฌผ๊ฑด, ์žฅ์†Œ ๋“ฑ๊ณผ ๊ฐ™์ด ํ˜„์‹ค์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” ์—”ํ„ฐํ‹ฐ
์—…๋ฌด์ค‘์‹ฌ ์—”ํ„ฐํ‹ฐ
[Transaction Entity]
Transaction์ด ์‹คํ–‰๋˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ์—”ํ„ฐํ‹ฐ
์ข…์† ์—”ํ„ฐํ‹ฐ
[Dependent Entity]
์ฃผ๋กœ 1์ฐจ ์ •๊ทœํ™”๋กœ ์ธํ•ด ๊ด€๋ จ ์ค‘์‹ฌ์—”ํ‹ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ๋œ ์—”ํ„ฐํ‹ฐ
๊ต์ฐจ ์—”ํ‹ฐํ‹ฐ
[Intersaction Entity]
M:M์˜ ๊ด€๊ณ„๋ฅผ ํ•ด์†Œํ•˜๋ ค๋Š” ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์—”ํ„ฐํ‹ฐ [ex> M:M -> 1:M]

1. ์œ ํ˜•๊ณผ ๋ฌดํ˜•์— ๋”ฐ๋ฅธ ์—”ํ„ฐํ‹ฐ ์ข…๋ฅ˜

     * ์œ ํ˜•๊ณผ ๋ฌดํ˜•์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ธฐ์ค€์€ ๋ฌผ๋ฆฌ์  ํ˜•ํƒœ์˜ ์กด์žฌ ์—ฌ๋ถ€

์ข…    ๋ฅ˜ ์„ค    ๋ช…
์œ ํ˜• ์—”ํ„ฐํ‹ฐ ์—…๋ฌด์—์„œ ๋„์ถœ๋˜๋ฉฐ ์ง€์†์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Entity
๊ฐœ๋… ์—”ํ„ฐํ‹ฐ ๊ฐœ๋…์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Entity
์œ ํ˜• ์—”ํ„ฐํ‹ฐ๋Š” ๋ฌผ๋ฆฌ์  ํ˜•ํƒœ๊ฐ€ ์žˆ์ง€๋งŒ, ๊ฐœ๋… ์—”ํ„ฐ๋‹ˆ๋Š” ๋ฌผ๋ฆฌ์  ํ˜•ํƒœ๊ฐ€ ์—†๋‹ค
์‚ฌ๊ฑด ์—”ํ„ฐํ‹ฐ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ์ƒ์„ฑ๋˜๋Š” Entity

 2. ๋ฐœ์ƒ์‹œ์ ์— ๋”ฐ๋ฅธ ์—”ํ„ฐํ‹ฐ ์ข…๋ฅ˜

์ข…    ๋ฅ˜ ์„ค    ๋ช…
๊ธฐ๋ณธ ์—”ํ„ฐํ‹ฐ
[Basic Entity]
๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ์—”ํ„ฐํ‹ฐ
ํ‚ค ์—”ํ„ฐํ‹ฐ[Key Entity]๋ผ๊ณ ๋„ ํ•จ
์ค‘์‹ฌ ์—”ํ„ฐํ‹ฐ
[Main Entity]
๊ธฐ๋ณธ ์—”ํ„ฐํ‹ฐ์™€ ํ–‰์œ„ ์—”ํ„ฐํ‹ฐ ๊ฐ„์˜ ์ค‘๊ฐ„์— ์žˆ๋Š” ์—”ํ„ฐํ‹ฐ
๊ธฐ๋ณธ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ๋ฐœ์ƒ๋˜๊ณ  ํ–‰์œ„ ์—”ํ„ฐํ‹ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—”ํ„ฐํ‹ฐ
ํ–‰์œ„ ์—”ํ„ฐํ‹ฐ
[Active Entity]
2๊ฐœ ์ด์ƒ์˜ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•˜๋Š” ์—”ํ„ฐํ‹ฐ
์ง€์†์ ์œผ๋กœ ์ •๋ณด๊ฐ€ ์ถ”๊ฐ€๋˜๊ณ  ๋ณ€๊ฒฝ๋˜๋Š” ์—”ํ„ฐํ‹ฐ

 

 

7. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ํ…Œ์ด๋ธ”์ƒ์˜ ๊ณ„์ขŒ๋งˆ์Šคํ„ฐ์˜ ๊ธฐ๋ณธํ‚ค๊ฐ€ ๊ณ„์ขŒ๋ฒˆํ˜ธ์™€ ๊ณ ๊ฐ๋ฒˆํ˜ธ์ด๋ฏ€๋กœ ์ „์ฒด ๊ณ ๊ฐ์—๊ฒŒ ์œ ์ผํ•œ ๋ฒˆํ˜ธ๊ฐ€ ํ• ๋‹น๋˜๋Š”๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

์ฆ‰, ๊ณ ๊ฐ๋ณ„ ์œ ์ผํ•œ ๊ณ„์ขŒ๋ฒˆํ˜ธ๊ฐ€ ๋œ๋‹ค. ๊ณ ๊ฐ๋ณ„๋กœ ๊ณ„์ขŒ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์„์ˆ˜ ์žˆ์ง€๋งŒ (์˜ˆ: ๊ณ ๊ฐ A, ๊ณ„์ขŒ 123 / ๊ณ ๊ฐ B, ๊ณ„์ขŒ 123)

ํ•œ ๋ช…์˜ ๊ณ ๊ฐ์˜ ๊ณ„์ขŒ๋ฒˆํ˜ธ๋Š” ์œ ์ผํ•˜๋‹ค. (์˜ˆ: ๊ณ ๊ฐ A, ๊ณ„์ขŒ 123 / ๊ณ ๊ฐ A, ๊ณ„์ขŒ 124)

 

8. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : ERD(Entity Relationship Diagram) ์ž‘์„ฑ ์ ˆ์ฐจ

๊ฐ€) ์—”ํ„ฐํ‹ฐ๋ฅผ ๊ทธ๋ฆฐ๋‹ค.
๋‚˜) ์—”ํ„ฐํ‹ฐ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๋ฐฐ์น˜ํ•œ๋‹ค.
๋‹ค) ์—”ํ„ฐํ‹ฐ ๊ฐ„์— ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•œ๋‹ค.
๋ผ) ๊ด€๊ณ„๋ช…์„ ๊ธฐ์ˆ ํ•œ๋‹ค.
๋งˆ) ๊ด€๊ณ„์˜ ์ฐธ์—ฌ๋„๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค.
๋ฐ”) ๊ด€๊ณ„์˜ ํ•„์ˆ˜ ์—ฌ๋ถ€๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค.

 

9. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ์ฃผ์‹๋ณ„์ž โ†’ ๋‚ด๋ถ€์‹๋ณ„์ž โ†’ ์™ธ๋ถ€์‹๋ณ„์ž

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

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

 

10. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : ๋Œ€์ฒด์—ฌ๋ถ€์— ๋”ฐ๋ผ์„œ ๋ณธ์งˆ ์‹๋ณ„์ž์™€ ์ธ์กฐ ์‹๋ณ„์ž๋กœ ๋ถ„๋ฅ˜๋˜๊ณ  โ†’ ๋ณธ์งˆ ์‹๋ณ„์ž๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ์‹๋ณ„์ž์ด๋‹ค.

 

 

11. ์ •๋‹ต :  1

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

 

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

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

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

 

12. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : COALESCE ํ•จ์ˆ˜๋Š” NULL ๊ฐ’์ด ์•„๋‹Œ ์ฒซ๋ฒˆ์งธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

COL1 ์„ ๊ธฐ์ค€ ( 100, 3000, 50 )COL1(100)    โ†’ 100COL1(NULL) โ†’ COL2(60) * 50 โ†’ 3000COL1(NULL) โ†’ COL2 = NULL ์ด๋ฏ€๋กœโ†’ 50

 

13. ์ •๋‹ต :  1 

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

 

ํ•ด์„ค : CREATE index [์ธ๋ฑ์Šค์ด๋ฆ„] on [ํ…Œ์ด๋ธ”์ด๋ฆ„] (์ปฌ๋Ÿผ๋ช…);

 

14. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : UNION ALL โ†’ 9๊ฐœ์˜ ํ–‰ ๋ฐ˜ํ™˜ โ†’ MINUS(์ฐจ์ง‘ํ•ฉ) โ†’ 1, 2, 3, 7, 8 (5๊ฐœ ํ–‰)

 

15. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : Sort Merge ์กฐ์ธ์€ ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ์ธ๋ฑ์Šค๊ฐ€ ์—†์„๋•Œ ์ˆ˜ํ–‰์ด ๋œ๋‹ค.

ํ…Œ์ด๋ธ”์„ ์ •๋ ฌ(Sort) ํ•œ ํ›„์— ์ •๋ ฌ๋œ ํ…Œ์ด๋ธ”์„ ๋ณ‘ํ•ฉ(Merge) ํ•˜๋ฉด์„œ ์กฐ์ธ์„ ์‹คํ–‰ํ•œ๋‹ค.

SORT MERGE ์กฐ์ธ

 

16. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : CONNECT BY ๋Š” Oracle ์ด ์ง€์›ํ•˜๋Š” ์งˆ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณ„์ธตํ˜• ๊ตฌ์กฐ๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

SELECT ์นผ๋Ÿผ, LEVEL AS ๊ณ„์ธต์˜ ๊นŠ์ด
FROM ํ…Œ์ด๋ธ”
WHERE (์กฐ๊ฑด)
START WITH (์‹œ์ž‘ ์œ„์น˜ ์กฐ๊ฑด)
CONNECT BY (PRIOR ํ•˜์œ„์ฝ”๋“œ = ์ƒ์œ„์ฝ”๋“œ);
๊ตฌ๋ถ„ ์„ค๋ช…
CONNECT_BY_ROOT ๊ณ„์ธตํ˜• ์ฟผ๋ฆฌ์—์„œ ์ตœ์ƒ์œ„ ๋กœ์šฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ์ž๋‹ค. ์—ฐ์‚ฐ์ž์ด๋ฏ€๋กœ CONNECT_BY_ROOT ๋‹ค์Œ์—๋Š” ํ‘œํ˜„์‹์ด ์˜จ๋‹ค.
CONNECT_BY_ISLEAF CONNECT BY ์กฐ๊ฑด์— ์ •์˜๋œ ๊ด€๊ณ„์— ๋”ฐ๋ผ ํ•ด๋‹น ๋กœ์šฐ๊ฐ€ ์ตœํ•˜์œ„ ์ž์‹ ๋กœ์šฐ์ด๋ฉด 1์„, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์˜์‚ฌ ์ปฌ๋Ÿผ์ด๋‹ค.

TIP ์•Œ์•„๋‘๊ธฐ*์ •๋ ฌํ• ๋•Œ ๊ณ„์ธตํ˜• ๊ตฌ์กฐ๊นŒ์ง€ ๋ณด์กดํ•˜๋ ค๋ฉด ORDER SIBLINGS BY ์ ˆ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

(๊ฐ™์€ ๋ถ€๋ชจ๋ฅผ ๊ฐ€์ง„ ๋กœ์šฐ, ์ฆ‰ ๋ ˆ๋ฒจ์ด ๊ฐ™์€ ํ˜•์ œ ๋กœ์šฐ์— ํ•œํ•ด์„œ ์ •๋ ฌ์ด ์ˆ˜ํ–‰๋จ)

 

17. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : ์ˆœ์œ„ ํ•จ์ˆ˜์— ORDER BY๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ˆœ์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ํ˜น์€ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

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

DENSE_RANK() : ์ค‘๋ณต๊ฐ’์€ ์ค‘๋ณต๋“ฑ์ˆ˜, ๋“ฑ์ˆ˜ ์•ˆ ๊ฑด๋„ˆ๋œ€(1์œ„, 1์œ„, 2์œ„, 2์œ„) *๋™์ผ ๋“ฑ์ˆ˜ ์ˆœ์œ„์— ์˜ํ–ฅ์ด ์—†๋‹ค.

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


18. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ์ œ์‹œํ•œ ์นผ๋Ÿผ์— ๋Œ€ํ•ด์„œ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ง‘๊ณ„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

๊ตฌ๋ถ„ ์„ค๋ช…
ROLLUP - ์ „์ฒดํ•ฉ๊ณ„์™€ ์†Œ๊ทธ๋ฃน ๊ฐ„์˜ ์†Œ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ROLLUP ํ•จ์ˆ˜

์˜ˆ)
GROUP BY ROLLUP (DEPTNO);
โ†’ DEPTNO ํ•ฉ๊ณ„(์†Œ๊ณ„), ์ „์ฒด ํ•ฉ๊ณ„๋ฅผ ์กฐํšŒ
CUBE - CUBE๋Š” ์ œ์‹œํ•œ ์นผ๋Ÿผ์— ๋Œ€ํ•ด์„œ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ง‘๊ณ„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
- ๋‹ค์ฐจ์› ์ง‘๊ณ„๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ)
GROUP BY CUBE(DEPTNO, JOB);
โ†’ DEPTNO ํ•ฉ๊ณ„, JOB ํ•ฉ๊ณ„, DEPTNO & JOB ํ•ฉ๊ณ„, ์ „์ฒด ํ•ฉ๊ณ„๋ฅผ ์กฐํšŒ
์กฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์กฐํ•ฉ๋œ๋‹ค.  *์‹œ์Šคํ…œ์— ๋ถ€ํ•˜๋ฅผ ๋งŽ์ด ์ฃผ๋Š” ๋‹จ์ ์ด ์žˆ์Œ
GROUPING SET - ์›ํ•˜๋Š” ๋ถ€๋ถ„์˜ ์†Œ๊ณ„๋งŒ ์†์‰ฝ๊ฒŒ ์ถ”์ถœํ•˜์—ฌ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” GROUPING SETS ํ•จ์ˆ˜

 

19. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : FULL OUTER JOIN์€ ์ด 6๊ฐœ์˜ ํ–‰์ด ์กฐํšŒ, LEFT์™€ RIGHT OUTER JOIN์€ ์ด 4๊ฐœ์˜ ํ–‰, INNER JOIN์€ 2๊ฐœ์˜ ํ–‰์ด ์กฐํšŒ๋œ๋‹ค.

 

20. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : 

(1) ๋ฒˆ์€ NAME์— DATE ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์—๋Ÿฌ

(2) ๋ฒˆ์€ AGE(NOT NULL)์— NULL์„ ์ž…๋ ฅํ•˜์—ฌ ์—๋Ÿฌ

(3) ๋ฒˆ์€ ID(PK) ๊ฐ’์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„์„œ ์—๋Ÿฌ

 

21. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : ORDER SIBLINGS BY ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ „์ฒด ํ…Œ์ด๋ธ”์ด ์•„๋‹ˆ๋ผ ๊ณ„์ธตํ˜•์œผ๋กœ ๋œ ๋ฐ์ดํ„ฐ๊ฐ’(ํŠน์ • ์นผ๋Ÿผ) ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค.

(1) NOT IN (3) ์ด๋ฏ€๋กœ 3์ด ํฌํ•จ๋˜๋ฉด ์ „๊ฐœ๋ฅผ ๋ฉˆ์ถค

(2) CONNECT BY PRIOR ID = PARENT_ID (๋ถ€๋ชจ ID ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž์‹ ID ๋ฅผ ๊ฒ€์ƒ‰) ์ˆœ๋ฐ˜ํ–ฅ

(3) NO CYCLE ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

22. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : DESCENDING  (ASC:์ตœ์†Œ๊ฐ’, DESC:์ตœ๋Œ“๊ฐ’)

 

UNIQUE SCAN : ์œ ์ผํ•œ ๊ฐ’ ํ•˜๋‚˜ ์ฐพ๊ธฐ (์˜ˆ: ๊ณ ๊ฐ์•„์ด๋””) *ํ•œ๊ฐœ์˜ ํ–‰

RANGE SCAN : ์–ด๋– ํ•œ ์กฐ๊ฑด์—์„œ ํ•œ ๋ฒ”์œ„๋ฅผ ์ฐพ๊ธฐ (์˜ˆ:์ฃผ๋ฌธ๋ฒˆํ˜ธ)

FULL SCAN : ์ „์ฒด ๋ฐ์ดํ„ฐ *์ „์ฒด ํ–‰

 

23. ์ •๋‹ต :  1

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

 

ํ•ด์„ค :CASE๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์ •๋ ฌ์˜ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ–ˆ์œผ๋ฏ€๋กœ ID๊ฐ€ 13, 10๋ฒˆ์ด ๋จผ์ € ์กฐํšŒ๋˜๊ณ  โ†’ AGE DESC ์ด๋ฏ€๋กœ 13์˜ AGE๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์กฐํšŒ๋œ๋‹ค.

sql> SELECT ID, AGE FROM SQLD39_23 ORDER BY (CASE WHEN ID = 10 OR ID = 13 THEN 1 ELSE 2 END),AGE DESC;
+------+------+
| ID   | AGE  |
+------+------+
|   13 |   50 |
|   10 |   20 |
|   14 |   60 |
|   12 |   40 |
|   11 |   30 |
+------+------+

24. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : CHAR๋Š” ๊ธธ์ด๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋ฉด ์งง์€ ์ชฝ์— ์ŠคํŽ˜์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ํŒ๋‹จํ•œ๋‹ค. ๊ฐ™์€ ๊ฐ’์—์„œ ๊ธธ์ด๋งŒ ์„œ๋กœ ๋‹ค๋ฅผ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์€ VARCHAR(๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์žํ˜• : ์ž…๋ ฅํ•œ ํฌ๊ธฐ๋งŒํผ ํ• ๋‹น )๋กœ ๋น„๊ตํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

 

์˜ˆ) CHAR(5)์œผ๋กœ ์นผ๋Ÿผ์„ ์ƒ์„ฑํ•˜๊ณ  ์ž…๋ ฅ๊ฐ’์ด 3๊ฐœ์˜ ๋ฌธ์ž์ผ๋•Œ 'abc' โ†’ 'abc  ' ์™€ ๊ฐ™์€์‹์œผ๋กœ ๋‚˜๋จธ์ง€ 2๊ฐœ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์ž…๋ ฅ๋œ๋‹ค.

 

25. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : ์ฃผ๋ฌธ๊ธˆ์•ก DESC (๊ฒฐ๊ณผ ํ…Œ์ด๋ธ”์€ ์ฃผ๋ฌธ ๊ธˆ์•ก์ด ํฐ ์ˆœ์„œ๋Œ€๋กœ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ํ…Œ์ด๋ธ”๋กœ ์ฃผ๋ฌธ๊ธˆ์•ก ์†์„ฑ์„ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ–ˆ์„ ๋•Œ์˜ ์ˆœ์œ„)

DESC(๋‚ด๋ฆผ์ฐจ์ˆœ)

ASC(์˜ฌ๋ฆผ์ฐจ์ˆœ)

 

26. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : CASE๋ฌธ์œผ๋กœ ID๊ฐ€ 1000์ธ ๊ฒƒ์€ 0์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ID๊ฐ’์œผ๋กœ ASC(์˜ค๋ฆ„์ฐจ์ˆœ) ํ•œ๋‹ค. ๋‹จ, COUNTํ•จ์ˆ˜๋กœ 2๊ฑด๋งŒ ์กฐํšŒ๋œ๋‹ค. (3000, 9999)

 

27. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : VIEW๋Š” ๋…ผ๋ฆฌ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฐ€์ƒ ํ…Œ์ด๋ธ”๋กœ์„œ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

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

 

28. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : GROUP BY๊ตฌ์˜ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ•์„ ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. SELECT๊ตฌ์—๋Š” GROUP BY์ ˆ์— ์žˆ๋Š” ์นผ๋Ÿผ์ด ๋‚˜์™€์•ผ ํ•œ๋‹ค.

 

29. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : ํ•™์ƒ๊ณผ ๊ณผ๋ชฉ ๊ฐ„์˜ M:N ๊ด€๊ณ„๋ฅผ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๊ฐ•์ด๋ผ๋Š” ๊ต์ฐจ ์—”ํ„ฐํ‹ฐ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

์ข…๋ฅ˜ ์„ค๋ช…
๋…๋ฆฝ ์—”ํ‹ฐํ‹ฐ
[Kernel Entity, Master Entity]
์‚ฌ๋žŒ, ๋ฌผ๊ฑด, ์žฅ์†Œ ๋“ฑ๊ณผ ๊ฐ™์ด ํ˜„์‹ค์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” ์—”ํ„ฐํ‹ฐ
์—…๋ฌด์ค‘์‹ฌ ์—”ํ„ฐํ‹ฐ
[Transaction Entity]
Transaction์ด ์‹คํ–‰๋˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ์—”ํ„ฐํ‹ฐ
์ข…์† ์—”ํ„ฐํ‹ฐ
[Dependent Entity]
์ฃผ๋กœ 1์ฐจ ์ •๊ทœํ™”๋กœ ์ธํ•ด ๊ด€๋ จ ์ค‘์‹ฌ์—”ํ‹ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ๋œ ์—”ํ„ฐํ‹ฐ
๊ต์ฐจ ์—”ํ‹ฐํ‹ฐ
[Intersaction Entity]
M:M์˜ ๊ด€๊ณ„๋ฅผ ํ•ด์†Œํ•˜๋ ค๋Š” ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์—”ํ„ฐํ‹ฐ [ex> M:M -> 1:M]

 

30. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ๊ฐ’์„ ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ ์ฃผ์ž…์„ ๋ฐ›์•„์„œ ๋น„๊ต๋ฅผ ํ•˜๋Š”๊ฒƒ์œผ๋กœ ์ƒํ˜ธ์—ฐ๊ด€ ์„œ๋ธŒ์ฟผ๋ฆฌ(CORRELATED SUB QUERY) ์ด๋‹ค.

 

SELECT A.EMPNO, A.ENAME
FROM EMP A
WHERE A.EMPNO = (SELECT 1 FROM
EMP_T B WHERE A.EMPNO = B.EMPNO);

์„œ๋ธŒ์ฟผ๋ฆฌ์— *(A.EMPNO ๊ฐ’์„ ๋งค๋ฒˆ ๊ฐ€์ ธ์™€์„œ ๋Œ€์ž…์„ ํ•ด์•ผํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ๋งค์šฐ ์ข‹์ง€์•Š๋‹ค.)

 

31. ์ •๋‹ต :  2

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

 

ํ•ด์„ค :

WHERE COL3 = (SELECT COL3 FROM SQLD39_31_2 WHERE COL2 = 'A') โ†’ 10

SQLD39_31_1 ํ…Œ์ด๋ธ”์˜ COL3 ๊ฐ’์ด 10์ธ ์ปฌ๋Ÿผ์€ 2๊ฐœ (DISTINCT COL1) โ†’ 1, 3 ์ด๋ฏ€๋กœ ์ค‘๋ณต์ œ๊ฑฐ X โ†’ 2๊ฐœ

 

32. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : VIEW์—๋Š” ์ด 4๊ฐœ์˜ ํ–‰์ด ์žˆ๋‹ค.  COL2 ๊ฐ€ 2000๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ํ•ฉ๊ณ„์ด๋ฏ€๋กœ = 5000

[V_SQLD39_32]
COL1   COL2
A      1000
A      2000
NULL   3000
NULL   NULL

 

33. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ์ˆ˜์ •(MODIFY)

์นผ๋Ÿผ์˜ ๋ณ€๊ฒฝ์€ ALTER TABLE ~ MODIFY ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์นผ๋Ÿผ์€ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ฐ ๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ถ”๊ฐ€(ADD), ์‚ญ์ œ(DROP)

 

34. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : NULL๊ฐ’์€ ์•„์ง ์•Œ๋ ค์ง€์ง€ ์•Š์€ ๋ฏธ์ง€์˜ ๊ฐ’์ด๋‹ค. (๊ฐ’์ด ์ •ํ•ด์ง€์ง€ ์•Š์Œ)

 

35. ์ •๋‹ต :  4

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

 

ํ•ด์„ค : ํŠน์ • ํ•˜๋‚˜์˜ ๊ฐ’์— ๋Œ€ํ•œ ์ž์‹ ์˜ ์ƒ์œ„ KPI๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ, MAINKPI๊ฐ€ 0๋ถ€ํ„ฐ ์ถœ๋ฐœํ•˜์—ฌ WHERE SUBKPI๊ฐ€ 30์ด๋ฉด(ํŠน์ • ํ•˜๋‚˜์˜๊ฐ’) 30์˜ ์ƒ์œ„ KPI (MAINKPI = 20) ์ด ๊ฐ™์ด ์ถœ๋ ฅ๋œ๋‹ค.

( ํ”„ โ†’ ์ž โ†’ ๋ถ€ โ†’ ์ˆœ ) PRIOR, ์ž์‹, ๋ถ€๋ชจ, ์ˆœ๋ฐฉํ–ฅ ์ „๊ฐœ

( ํ”„ โ†’ ๋ถ€ โ†’ ์ž โ†’ ์—ญ ) PRIOR, ๋ถ€๋ชจ, ์ž์‹, ์—ญ๋ฐฉํ–ฅ ์ „๊ฐœ

 

[RESULT]
SUBKPI  KPINAME  MAINKPI
-------------------------
30      ๋ถˆ๋งŒ๊ฑด์ˆ˜    20

 

36. ์ •๋‹ต :  1

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

 

ํ•ด์„ค : ๋ฌธ์ œ์˜ SQL๋ฌธ์ด SUBKPI ๊ฐ€ 20 ์ด๊ณ (AND) MAINKPI๊ฐ€ 10 ์ด๊ฑฐ๋‚˜(OR) SUBKPI ๊ฐ€ 0 ์ด๊ณ (AND) MAINKPI๊ฐ€ 30 ์ธ ํ–‰(20, 10)์„ ์ถœ๋ ฅ โ†’ ์ •๋‹ต 1๋ฒˆ๊ณผ ์ถœ๋ ฅ๊ฐ’์ด ๊ฐ™๋‹ค.

 

SELECT * FROM KPIPOOL WHERE
(SUBKPI, MAINKPI) IN ((20,10),(0,30));

SELECT * FROM KPIPOOL WHERE
(SUBKPI = 20 AND MAINKPI = 10) OR
(SUBKPI = 0 AND MAINKPI = 10);

๋‘ ์ฟผ๋ฆฌ๋ฌธ์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค.
*๊ด„ํ˜ธ์•ˆ์— ๊ฐ’์ด AND OR AND ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์Œ

 

37. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ์„œ๋ธŒ์ฟผ๋ฆฌ์— ์žˆ๋Š” ์นผ๋Ÿผ์„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ• ์ˆ˜ ์—†๋‹ค 

 

38. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ๋‚ด์ผ ๋‚ ์งœ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ SYSDATE+1์„ ํ•ด์ฃผ๋ฉด๋œ๋‹ค. ๋‹จ, ๋ฐ์ดํŠธ ํƒ€์ž…์„ ๋ฌธ์ž์—ด TO_CHAR ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

39. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : FETCH(์ฝ์–ด์˜ค๊ธฐ) ์œ„ํ•ด ํ•ด์•ผํ•  ๊ฒƒ์€ CURSOR OPEN (*CURSOR์ˆœ์„œ : ์„ ์–ธ โ†’ OPEN โ†’ FETCH โ†’ CLOSE)

CURSOR(DB์˜ ์—ฐ๊ฒฐ ํฌ์ธํŠธ, ์—ฐ๊ฒฐ์ )

  • SQL ์ปค์„œ๋Š” Oracle ์„œ๋ฒ„์—์„œ ํ• ๋‹นํ•œ ์ „์šฉ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์ด๋‹ค.
  • ์งˆ์˜์˜ ๊ฒฐ๊ณผ๋กœ ์–ป์–ด์ง„ ์—ฌ๋Ÿฌ ํ–‰์ด ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์œ„์น˜.
  • ์ปค์„œ๋Š” SELECT ๋ฌธ์˜ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

๋ช…์‹œ์  ์ปค์„œ๋ž€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ •์˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ์ปค์„œ์ด๊ณ  ๋ฌต์‹œ์ (์•”์‹œ์ ) ์ปค์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ปค์„œ์ด๋‹ค.

๋ชจ๋“  CURSOR๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ์„ ์–ธ์„ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

CURSOR ์ปค์„œ๋ช…[(๋งค๊ฐœ๋ณ€์ˆ˜1, ๋งค๊ฐœ๋ณ€์ˆ˜2, ...)]
IS
SELECT ๋ฌธ์žฅ;

-- CURSOR๋ฅผ OPENํ•œ๋‹ค.

OPEN ์ปค์„œ๋ช…[(๋งค๊ฐœ๋ณ€์ˆ˜1, ๋งค๊ฐœ๋ณ€์ˆ˜2, ...)];

-- FETCH๋Š” ์‹ค์ œ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜จ๋‹ค.

LOOP
   FETCH ์ปค์„œ๋ช… INTO ๋ณ€์ˆ˜1, ๋ณ€์ˆ˜2, ...
   EXIT WHEN ์ปค์„œ๋ช…%NOTFOUND
END LOOP;

-- *์‚ฌ์šฉ์ด ์™„๋ฃŒ๋œ CURSOR๋Š” ๋ฐ˜๋“œ์‹œ CLOSE ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

CLOSE ์ปค์„œ๋ช…;

 

40. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : C2 ์นผ๋Ÿผ์œผ๋กœ ๊ทธ๋ฃนํ™”(1,2) โ†’ C2 ๋™์ผ์นผ๋Ÿผ ์ˆ˜๊ฐ€ 2๊ฐœ ์ด์ƒ(C2 : 1) โ†’ C2๊ฐ€ 1์ธ C3์˜ ์ดํ•ฉ (SUM(C3) : 4 )

 

41. ์ •๋‹ต :  2

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

 

ํ•ด์„ค : ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹ ๋ขฐ์„ฑ๊ณผ ๊ฐ€์šฉ์„ฑ์ด ๋†’๋‹ค.

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

 

42. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : RANDOM ACCESS๋กœ ์ธํ•ด ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๊ฒƒ์€ NESTED LOOP JOIN ๋ฐฉ์‹์ด๋‹ค.

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

 

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

 

43. ์ •๋‹ต : 3๊ฐœ

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

 

ํ•ด์„ค : 2์ฐจ ์ •๊ทœํ™” โ†’ 3์ฐจ ์ •๊ทœํ™”(์ข…์† ์กด์žฌ๋ฅผ ๋ถ„ํ•ด) ํ•™๋ฒˆ,์ฝ”์Šค์ฝ”๋“œ(FK),ํ‰๊ฐ€์ฝ”๋“œ(FK) = 3๊ฐœ

2์ฐจ ์ •๊ทœํ™” by yunamom

3์ฐจ ์ •๊ทœํ™” by yunamom

44. ์ •๋‹ต :  7.5, 7.45, 7, 7, 8

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

 

ํ•ด์„ค : ROUND(๋ฐ˜์˜ฌ๋ฆผ) โ†’ ROUND(7.45, 1)์ด๋ฏ€๋กœ ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๊ฐ’์ธ 7.45๋ฅผ ์†Œ์ˆ˜์  ์ฒซ์งธ ์ž๋ฆฌ๊นŒ์ง€ ๋ฐ˜์˜ฌ๋ฆผ

ABS(์ ˆ๋Œ“๊ฐ’) : ์˜ˆ) ABS(-7.45) โ†’ 7.45

FLOOR(CEIL์˜ ๋ฐ˜๋Œ€, ์ •์ˆ˜๋กœ ๋‚ด๋ฆผ)

TRUNC(์†Œ์ˆ˜์  ๋ฒ„๋ฆผ)

CEIL(์ •์ˆ˜๋กœ ์˜ฌ๋ฆผ)

+----------------+-----------+-------------+-------------+------------+
| ROUND(7.45, 1) | ABS(7.45) | FLOOR(7.45) | TRUNC(7.45) | CEIL(7.45) |
+----------------+-----------+-------------+-------------+------------+
|            7.5 |      7.45 |           7 |           7 |          8 |
+----------------+-----------+-------------+-------------+------------+

 

45. ์ •๋‹ต :  ROLE

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

 

ํ•ด์„ค : ROLE์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ OBJECT(ํ…Œ์ด๋ธ”, ํ”„๋กœ์‹œ์ €, ๋ทฐ) ๋“ฑ์˜ ๊ถŒํ•œ์„ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

46. ์ •๋‹ต :  3

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

 

ํ•ด์„ค : SQLD39_46 ํ…Œ์ด๋ธ”์˜ N1 (1,2) โ†’ 1+2 = 3

 

47. ์ •๋‹ต :  RIGHT OUTER JOIN

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

 

ํ•ด์„ค : ๋‘ ํ…Œ์ด๋ธ”์—์„œ ๊ฐ™์€ COL1 ๊ฐ’์„ ์กฐํšŒํ•˜๊ณ  ์šฐ์ธก ํ…Œ์ด๋ธ”์˜ ๊ฐ’๋“ค์ด ์ถ”๊ฐ€๋กœ ์กฐํšŒ๋˜๋ฏ€๋กœ RIGHT OUTER JOIN

 

48. ์ •๋‹ต :  GRANT, REVOKE

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

 

ํ•ด์„ค : GRANT(๊ถŒํ•œ๋ถ€์—ฌ), REVOKE(๊ถŒํ•œํšŒ์ˆ˜)

 

49. ์ •๋‹ต :  9

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

 

ํ•ด์„ค : SQLD 39 ํšŒ 49 ๋ฒˆ ํ•ด์„ค !(ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฌ์šด ๋ฌธ์ œ)

SQLD39_42 ํ…Œ์ด๋ธ”์˜ COL1 ์€ {1, 1, 2, 3, 3} ์ด๋ ‡๊ฒŒ 5๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

COL1 ์„ ํ•˜๋‚˜์”ฉ ๋ถˆ๋Ÿฌ์˜ค๋ฉด

๋ฌธ์ œ WHERE ์กฐ๊ฑด์ด A.COL1 = B.COL1 ์ด๋ฏ€๋กœA.COL1 = 1 ์ผ๋•Œ B.COL1 = 1 ์ธ ๋ ˆ์ฝ”๋“œ โ†’ 2๊ฐœ

A.COL1 = 1 ์ผ๋•Œ B.COL1 = 1 ์ธ ๋ ˆ์ฝ”๋“œ โ†’ 2๊ฐœ

A.COL1 = 2 ์ผ๋•Œ B.COL1 = 2 ์ธ ๋ ˆ์ฝ”๋“œ โ†’ 1๊ฐœ

A.COL1 = 3 ์ผ๋•Œ B.COL1 = 3 ์ธ ๋ ˆ์ฝ”๋“œ โ†’ 2๊ฐœ

A.COL1 = 3 ์ผ๋•Œ B.COL1 = 3 ์ธ ๋ ˆ์ฝ”๋“œ โ†’ 2๊ฐœ

 

์œ„์™€ ๊ฐ™์€ ๊ณ„์‚ฐ์œผ๋กœ 2+2+1+2+2 = 9 ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

50. ์ •๋‹ต :  EXISTS

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

 

ํ•ด์„ค : SQL1 ์˜ ๊ฒฐ๊ณผ๋Š” (120, 400) SQL2 ์— ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋นˆ์นธ์— EXISTS๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

EXISTS ์—ฐ์‚ฐ์ž๋Š” ํ•˜์œ„ ์ฟผ๋ฆฌ์— ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์œ„ ์ฟผ๋ฆฌ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ TRUE ๊ทธ๋ ‡์ง€ ์•Š์€๊ฒฝ์šฐ FALSE

SELECT column_name(s)
   FROM table_name
WHERE EXISTS
      (SELECT column_name 
          FROM table_name 
       WHERE condition);

๋ฐ˜๋Œ€ ์—ฐ์‚ฐ์ž๋Š” NOT EXISTS

EXISTS์˜ ์ด์ ์€ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

IN ์—ฐ์‚ฐ์ž์˜ ๊ฒฝ์šฐ ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ ๋ฅผ ์ „๋ถ€ ๊ตฌํ•˜๊ณ  ๋น„๊ต๋ฅผ ์‹œํ–‰ํ•˜์ง€๋งŒ,

EXISTS๋Š” ๋‹จ ํ•˜๋‚˜๋ผ๋„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ์ฆ‰์‹œ ๋ฆฌํ„ดํ•œ๋‹ค.(์˜ค๋กœ์ง€ ์กด์žฌ์˜ ์—ฌ๋ถ€๋งŒ ๋ด„)

๋ ˆ์ฝ”๋“œ๊ฐ€ ์ˆ˜์‹ญ๋งŒ ๊ฐœ๊ฐ€ ๋„˜์–ด๊ฐ€๋Š” ํ…Œ์ด๋ธ”์˜ ๊ฒฝ์šฐ์— EXISTS์˜ ํšจ์œจ์„ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ์Œ

 

 

* 44๋ฒˆ, 50๋ฒˆ ๋ฌธ์ œ๋Š” ๋‹ค๋ฅธ๊ธฐ์ถœ๋ฌธ์ œ๋กœ ๊ตฌ์„ฑ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

sqld 39ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ๋ณต์› / ์ •๋‹ต ์ถœ์ฒ˜ : ์œ ํŠœ๋ธŒ ์ž„๋ฒ ์ŠคํŠธTV 

728x90
300x250

์ฝ”๋“œ