์๋ ํ์ธ์ yunamom ์ ๋๋ค :D
2023๋ 9์ 9์ผ์ ์น๋ค์ง ์ 50ํ SQLD ์ํ 1๊ณผ๋ชฉ, 2๊ณผ๋ชฉ ์ ๋ต์ ํฌ์คํ ํ๊ฒ ์ต๋๋ค. ๐ฉ๐ป๐ป
*๋ฌธ์ ์์๋ ๋ค๋ฅผ ์ ์์ผ๋ฉฐ ๋ต ์์ฒด๋ฅผ ์ ์ด๋๊ฑฐ๋ ๋ฌธ์ ๋ง ์ ์ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
SQLD 50ํ 1๊ณผ๋ชฉ ( ๊ฐ๊ด์ 9๋ฌธ์ / ๋จ๋ตํ 1๋ฌธ์ )
โ ๋ฌธ์ 1. ๋ค์ ์ค ์๋์์ ์ํฐํฐ ๋ด์ ์ฃผ์๋ณ์๋ฅผ ๋์ถํ๋ ๊ธฐ์ค์ผ๋ก ์ณ์ง ์์ ๊ฒ์?
1) ํด๋น ์
๋ฌด์์ ์์ฃผ ์ด์ฉ๋๋ ์์ฑ์ ์ฃผ์๋ณ์๋ก ์ง์ ํ๋ค. 2) ์ง์ ๋ ์ฃผ์๋ณ์์ ๊ฐ์ ์์ฃผ ๋ณํ์ง ์๋ ๊ฒ์ด์ด์ผ ํ๋ค. 3) ๋ช ์นญ, ๋ด์ญ ๋ฑ๊ณผ ๊ฐ์ด ์ด๋ฆ์ผ๋ก ๊ธฐ์ ๋๋ ๊ฒ๋ค์ ์ฃผ์๋ณ์๋ก ์ง์ ํ๋ค. 4) ๋ณตํฉ์ผ๋ก ์ฃผ์๋ณ์๋ฅผ ๊ตฌ์ฑํ ๊ฒฝ์ฐ ๋๋ฌด ๋ง์ ์์ฑ์ ํฌํจํ์ง ์๋๋ก ํ๋ค. |
์ ๋ต: 3๋ฒ
โ ๋ฌธ์ 2. ๊ด๊ณ ํ๊ธฐ๋ฒ์ผ๋ก ์ณ์ง ์์ ๊ฒ์?
1) ๊ด๊ณ๋ช
2) ๊ด๊ณ์ฐจ์ 3) ๊ด๊ณ์ ํ์ฌ์ 4) ๊ด๊ณ๋ถ๋ฅ |
์ ๋ต: 4๋ฒ ๊ด๊ณ๋ถ๋ฅ
โ ๋ฌธ์ 3. ํ๋์ ์ํฐํฐ์ ๊ตฌ์ฑ๋์ด ์๋ ์ฌ๋ฌ ๊ฐ์ ์์ฑ ์ค ์ํฐํฐ๋ฅผ ๋ํํ ์ ์๋ ์์ฑ์?
1) 2) 3) 4) ์๋ณ์ |
์ ๋ต: 4๋ฒ ์๋ณ์
โ ๋ฌธ์ 4. ๊ฐ๋ ์ํฐํฐ ์ ํฉํ ๊ฒ?
1) 2) 3) 4) |
์ ๋ต: ์กฐ์ง ๋ณดํ์ํ
ํด์ค:
โ ๋ฌธ์ 5. ๋ฐ์์์ ์ค์ฌ์ํฐํฐ ์ฐพ๊ธฐ
1) 2) 3) 4) |
์ ๋ต: ํ๋ก์ ํธ
โ ๋ฌธ์ 6. ๋ชจ๋ธ๋ง ์ ์์ฑ ํ๋ฆฐ๊ฒ
1) 2) 3) 4) |
์ ๋ต: ํ๋ก์ ํธ ๋ฐ์ดํฐ๋ฅผ ํฉ์น๋ค๋ ์ ์ง
โ ๋ฌธ์ 7. ์๋ณ์๊ฐ ์ ๋ต์ธ ๋ฌธ์
1) 2) 3) 4) ์๋ณ์ |
์ ๋ต: 4๋ฒ ์๋ณ์
โ ๋ฌธ์ 8. ๋ค์ ์ค ์คํค๋ง์ ์ข ๋ฅ๊ฐ ์๋ ๊ฒ์?
1) ์ธ๋ถ ์คํค๋ง 2) ๋ด๋ถ ์คํค๋ง 3) ๊ฐ๋ ์คํค๋ง 4) ์์ฉ ์คํค๋ง |
์ ๋ต: 4๋ฒ ์์ฉ ์คํค๋ง
โ ๋ฌธ์ 9. ์ ๊ทํ N:N ์ฒ๋ฆฌ ~ ?
1) ๊ฐ๊ด ๋ชจ๋ธ๋ง 2) ๊ฐ๋ ๋ชจ๋ธ๋ง 3) ๋ ผ๋ฆฌ ๋ชจ๋ธ๋ง 4) ๋ฌผ๋ฆฌ ๋ชจ๋ธ๋ง |
์ ๋ต: 3๋ฒ ๋ ผ๋ฆฌ ๋ชจ๋ธ๋ง
โ ๋จ๋ตํ 1. ๋ค์ ์ ์์ ํด๋นํ๋ ๊ฐ๋ - ์์ฑ๋ฒ์ ~?
์ ๋ต: ๋๋ฉ์ธ
SQLD 50ํ 2๊ณผ๋ชฉ ( ๊ฐ๊ด์ 35๋ฌธ์ / ๋จ๋ตํ 5๋ฌธ์ )
โ ๋ฌธ์ 10. ํ์์ ํ๊ท ํ์ ์ด 3.0์ธ ํ์์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๋ ฅํ ๊ฒ์?
Student (ํ๊ณผ, ํ๋ฒ, ๊ฐ์ข)
Class (๊ฐ์ข๋ฒํธ, ~)
Enroll (ํ๊ณผ, ๊ฐ์ข๋ฒํธ, ํ์ )
select s.ํ๋ฒ from student s, ์๊ฐ ~
group by ์ having์ ๊ฐ์ด ์๋๊ฑฐ๋
having์ ๋ง ์๋ ๋ณด๊ธฐ
1) 2) 3) 4) |
์ ๋ต: GROUP BY + HAVING ์๋ ์ ํ์ง
โ ๋ฌธ์ 11. ์๋ ํ ์ด๋ธ์ ๋ํ [๋ทฐ ์์ฑ ์คํฌ๋ฆฝํธ]๋ฅผ ์คํํ ํ, ์กฐํ SQL์ ์คํ๊ฒฐ๊ณผ๋ก ๋ง๋ ๊ฒ์? (๋ ธ๋ญ์ด 2๊ณผ๋ชฉ 104๋ฒ)
[TBL]
C1 C2
---------
A 100
B 200
B 100
B
200
[๋ทฐ ์์ฑ ์คํฌ๋ฆฝํธ]
CREATE VIEW V_TBL
AS
SELECT * FROM TBL
WHERE C1 = 'B' OR C1 IS NULL
[์กฐํ SQL]
SELECT SUM(C2) C2
FROM V_TBL
WHERE C2 >= 200 AND C1 = 'B'
1) 0 2) 200 3) 300 4) 400 |
์ ๋ต: 2๋ฒ
ํด์ค: ์กฐํ SQL ์คํ์ V_TBL์ ๋ทฐ ์คํฌ๋ฆฝํธ๋ก ์นํ๋์ด ์ํ๋๋ค. ๋ทฐ ์์ฑ ์คํฌ๋ฆฝํธ์์ ๋ถ์ฌ๋ ์กฐ๊ฑด๊ณผ ์กฐํ SQL์์ ๋ถ์ฌ๋ ์กฐ๊ฑด ๋ชจ๋๋ฅผ ๋ง์กฑํด์ผ ํ๋ค.
โ ๋ฌธ์ 12. ๋ค์ ์ค ์๋์ ๊ฐ์ ๋ฐ์ดํฐ ์ํฉ์์ SQL์ ์ํ ๊ฒฐ๊ณผ๋ก ๊ฐ์ฅ ์ ์ ํ ๊ฒ์? (๋ ธ๋ญ์ด 2๊ณผ๋ชฉ 76๋ฒ)
[TAB1]
C1 C2
----------
A 1
B 2
C 3
D 4
E 5
[TAB2]
C1 C2
----------
B 2
C 3
D 4
[SQL]
SELECT * FROM TAB1 A LEFT OUTER JOIN TAB2 B
ON (A.C1 = B.C1 AND B.C2 BETWEEN 1 AND 3)
1) 2)
C1 C2 C1 C2 C1 C2 C1 C2
----------------- -----------------
A 1 A 1
B 2 B 2 B 2 B 2
C 3 C 3 C 3 C 3
D 4 D 4 D 4
E 5 E 5
3) 4)
C1 C2 C1 C2 C1 C2 C1 C2
----------------- -----------------
A 1 A 1
B 2 B 2 B 2 B 2
C 3 C 3 C 3 C 3
D 4 D 4
์ ๋ต: 2๋ฒ
ํด์ค: ์์ฐํฐ ์กฐ์ธ์์ ON์ ์ ์กฐ์ธํ ๋์์ ๊ฒฐ์ ํ๋ฉฐ ๊ธฐ์ค ํ ์ด๋ธ(TAB1) ์ ํญ์ ๋ชจ๋ ํ์๋จ
โ ๋ฌธ์ 13.
substr(STR, length(STR) - 3)
from ์ธ๋ผ์ธ๋ทฐ (์ฌ๊ธฐ์ STR์ด abcdefg ๋ผ๋ ์ ๋ณด๋ฅผ ์ค)
substr(abcdefg, 7-3)
1) 2) defg 3) 4) |
์ ๋ต: 2๋ฒ defg
ํด์ค:
โ ๋ฌธ์ 14. ์๋ SQL์ ์ํ๊ฒฐ๊ณผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์?
[TAB1]
COL1 VARCHAR2(30)
COL2 NUMBER
[TAB1]
COL1 COL2
------------
Y 20
X 30
A 40
A 50
10
80
[SQL]
SELECT NVL(COUNT(*), 9999)
FROM TAB1
WHERE 1=2;
1) 0 2) 9999 3) 1 4) ERROR |
์ ๋ต: 1๋ฒ
โ ๋ฌธ์ 15. ๋น ์ง์์ด ๊ฐ ๋์ค๋๊ฑฐ ๋์ค ํด๋นํ๋๊ฑฐ ๊ณ ๋ฅด๋ ๋ฌธ์
1) 2) 3) 4) |
์ ๋ต: ํด๋์ค ํํฐ ๋๋ค
โ ๋ฌธ์ 16. 17, 18, 19, 20 ์ด๋ฐ ์ ํ ๋ฌธ์
์ ๋ต:
โ ๋ฌธ์ 17. ๊ณ์ธตํ ์ฟผ๋ฆฌ ๋ฌธ์
start with = 11 ์ญ๋ฐฉํฅ
์ ๋ต: start with ์นดํ
๊ณ ๋ฆฌ๋ฒํธ = 11 connect by ์นดํ
๊ณ ๋ฆฌ๋ฒํธ = prior ์์์นดํ
๊ณ ๋ฆฌ๋ฒํธ
โ ๋ฌธ์ 18. Rollup, Cube, Grouping sets ๊ณ ๋ฅด๋ ๋ฌธ์
1) Rollup() 2) Grouping sets() 3) 4) Cube() |
์ ๋ต: 4๋ฒ
๋กค์ ,๊ทธ๋ฃนํ, ํ๋ธ ๋ฌป๋ ๋ฌธ์ ๊ฐ ํ์ (a,b)->(a) -> (b) - () ์์ผ๋ก ๋์ด์์ด์ cube
โ ๋ฌธ์ 19. Natural join ํน์ง์ด ์๋ ๊ฒ์?
1) ๋ ํ
์ด๋ธ๊ฐ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ์ปฌ๋ผ์ผ๋ก ์กฐ์ธ์ด ์ด๋ฃจ์ด์ง๋ค. 2) ๋ฑ๊ฐ์กฐ์ธ(Equi Join), ๋น๋ฑ๊ฐ์กฐ์ธ(Non-Equi Join)์ด ๊ฐ๋ฅํ๋ค. 3) USING ์ ์ ์ฌ์ฉํ ์ ์๋ค. 4) ON ์ ์ ์ฌ์ฉํ ์ ์๋ค. |
์ ๋ต: 2๋ฒ
โ ๋ฌธ์ 20. ํ ์ด๋ธ์์ ์ด๋ฆ๋ณ๋ก ๊ทธ๋ฃนํํ๋ค์ ID ์ต์๊ฐ์ด ์๋๊ฑฐ ์ญ์ ํ๋ ๋ฌธ์
ID NAME
100 KIM
200 PARK
300 KANG
400 KIM
500 KANG
[SQL]
DELETE NOT IN () ํด์ LEE ๋ญ ์ด๋ฐ ์ด๋ฆ์ผ๋ก MIN MAX
์ ๋ต: not in์ด delete ์ด๋ฏ๋ก
โ ๋ฌธ์ 21. Alter ์ฌ์ฉํด์ ์นผ๋ผ? ํ์ ๋ฐ๊พธ๋ sql๋ฌธ ๊ณ ๋ฅด๋ ๋ฌธ์
์ ๋ต: MODIFY
โ ๋ฌธ์ 22. ์๋์ SQL๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ANSIํ์ค SQL๋ก ์ ์ ํ ๊ฒ์? (Oracle DBMS์ ํด๋น)
SELECT A.KEY_A, B.KEY_B, A.COL, B.COL
FROM A22 A, B22 B
WHERE A.KEY_A = B.KEY_B(+)
UNION ALL
SELECT A.KEY_A, B.KEY_B, A.COL, B.COL
FROM A22 A, B22 B
WHERE B.KEY_B = A.KEY_A(+);
1)
SELECT A.KEY_A, B.KEY_B, A.COL, B.COL
FROM A22 A FULL OUTER JOIN B22 B
ON (A.KEY_A = B.KEY_B);
2)
SELECT A.KEY_A, B.KEY_B, A.COL, B.COL
FROM A22 A LEFT OUTER JOIN B22 B
ON (A.KEY_A = B.KEY_B)
UNION ALL
SELECT A.KEY_A, B.KEY_B, A.COL, B.COL
FROM A22 A RIGHT OUTER JOIN B22 B
ON (B.KEY_B = A.KEY_A);
3)
SELECT A.KEY_A, B.KEY_B, A.COL, B.COL
FROM A22 A LEFT OUTER JOIN B22 B
ON (A.KEY_A = B.KEY_B)
UNION
SELECT A.KEY_A, B.KEY_B, A.COL, B.COL
FROM A22 A RIGHT OUTER JOIN B22 B
ON (A.KEY_A = B.KEY_B);
4)
SELECT A.KEY_A, B.KEY_B, A.COL, B.COL
FROM A22 A CROSS JOIN B22 B;
์ ๋ต: 2๋ฒ
โ ๋ฌธ์ 23. ๋ฐ์ดํฐ ์ ์ด์ด(DCL) ๋ฐ ํธ๋์ญ์ ์ ์ด์ด(TCL)์ ํด๋นํ์ง ์๋ ๊ฒ์?
1) GRANT 2) ROLLBACK 3) REVOKE 4) ALTER |
์ ๋ต: 4๋ฒ
โ ๋ฌธ์ 24. SQL์งํฉ ์ฐ์ฐ์์์ ๊ต์งํฉ์ ํด๋นํ๋ ๊ฒ์?
1) UNION ALL 2) EXCEPT 3) INTERSECT 4) UNION |
์ ๋ต: 3๋ฒ
โ ๋ฌธ์ 25. ๋ค์ ์ค DELETE์ TRUNCATE, DROP ๋ช ๋ น์ด์ ๋ํด ๋น๊ตํ ์ค๋ช ์ผ๋ก ๊ฐ์ฅ ๋ถ์ ์ ํ ๊ฒ์ ๊ณ ๋ฅด์์ค. (๋ ธ๋ญ์ด 1๊ณผ๋ชฉ 26๋ฒ)
1) DROP์ ํ
์ด๋ธ ์ ์ ๋ฐ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค. 2) TRUNCATE ๋ช ๋ น์ด๋ ํ ์ด๋ธ์ ์ด๊ธฐ์ํ๋ก ๋ง๋ ๋ค. 3) TRUNCATE ๋ช ๋ น์ด๋ UNDO๋ฅผ ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ง ์๊ธฐ ๋๋ฌธ์ ๋์ผ ๋ฐ์ดํฐ๋ ์ญ์ ์ DELETE๋ณด๋ค ๋น ๋ฅด๋ค. 4) DROP์ Auto Commit์ด ๋๊ณ , DELETE์ TRUNCATE๋ ์ฌ์ฉ์ Commit์ผ๋ก ์ํ๋๋ค. |
์ ๋ต: 4๋ฒ
ํด์ค: TRUNCATE๋ Auto Commit ์ด๋ค.
DROP | TRUNCATE | DELETE |
DDL | DDL | DML |
Rollback ๋ถ๊ฐ๋ฅ | Rollback ๋ถ๊ฐ๋ฅ | Commit ์ด์ Rollback ๊ฐ๋ฅ |
Auto Commit | Auto Commit | ์ฌ์ฉ์ Commit |
ํ ์ด๋ธ์ด ์ฌ์ฉํ๋ Storage๋ฅผ ๋ชจ๋ Release | ํ ์ด๋ธ์ด ์ฌ์ฉํ๋ Storage์ค ์ต์ด ํ ์ด๋ธ ์์ฑ์ ํ ๋น๋ Storage๋ง ๋จ๊ธฐ๊ณ Release | ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ Deleteํด๋ ์ฌ์ฉํ๋ Storage๋ Release๋์ง ์์ |
ํ ์ด๋ธ์ ์ ์ ์์ฒด๋ฅผ ์์ ํ ์ญ์ ํจ | ํ ์ด๋ธ์ ์ต์ด ์์ฑ๋ ์ด๊ธฐ์ํ๋ก ๋ง๋ฌ | ๋ฐ์ดํฐ๋ง ์ญ์ |
โ ๋ฌธ์ 26. ํ ์ด๋ธ ์ ํ ์ค ์ ์ ํ๊ฒ์ ๊ณ ๋ฅด์์ค.
1) 2023_TBL 2) 2023-TBL 3) TBL-2023 4) TBL_2023# |
์ ๋ต: 4๋ฒ
โ ๋ฌธ์ 27. ๋ถ์๋ณ ์ต๊ณ ์ฐ๋ด
1) 2) 3) 4) |
์ ๋ต:
โ ๋ฌธ์ 28. ์๋ SQL ์ํ ๊ฒฐ๊ณผ๋?
[SQL]
4000์ 12000/3 ์ด๊ณ
4 ๋ count(*) ๋ผ null๊ฐ ํฌํจ ์ธ๋๊ฑฐ์๊ณ
3์ count(?) ๋ผ null ์ ์ธ 3 ๊ฐ
์ ๋ต: 4000, 4, 3
โ ๋ฌธ์ 29. ?
์ ๋ต:
โ ๋ฌธ์ 30. LAG, LEAD ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ๊ฒ ์ฐพ๋ ๋ฌธ์ .
์ ๋ต:
โ ๋ฌธ์ 31. ๊ณ์ธตํ์ ๋ํ ๋ด์ฉ ์ค ์๋ชป๋ ๊ฒ์?
1) Leaf ์ ๋ ๋ฒจ์ ํญ์ 1์ด๋ค. 2) 3) 4) |
์ ๋ต: 1๋ฒ
ํด์ค: ๊ณ์ธต๊ตฌ์กฐ ์ฟผ๋ฆฌ์์ ๋ก์ฐ์ ๋ ๋ฒจ(Leaf) ์ฌ๋ถ๋ฅผ ์ตํ์ ๋ ๋ฒจ์ด๋ฉด 1, ์๋๋ฉด 0 ์ ๋ฐํํจ
๊ตฌ๋ถ | ์ค๋ช |
START WITH | ๋ฐ์ดํฐ ์ ๊ฐ๊ฐ ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํจ |
CONNECT BY | ์์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ํจ |
PRIOR | - CONNECT BY ์ ์ ์ฌ์ฉ๋๋ฉฐ PRIOR์ ์ง์ ๋ ์ปฌ๋ผ์ด ๋ง์ํธ ์ปฌ๋ผ์ ์ฐพ์๊ฐ - CONNECT BY PRIOR ์์ = ๋ถ๋ชจ : ๋ถ๋ชจ -> ์์ ์๋ฐฉํฅ - CONNECT BY PRIOR ๋ถ๋ชจ = ์์ : ์์ -> ๋ถ๋ชจ ์ญ๋ฐฉํฅ |
NOCYCLE | ๋ฐ์ดํฐ๋ฅผ ์ ๊ฐํ๋ ๋์ค ๋์ผํ ๋ฐ์ดํฐ๊ฐ ๋ค์ ๋ํ๋๋ฉด ์ด๊ฒ์ CYCLE ์ด ๋ฐ์ํ๋ค๊ณ ํจ CYCLE์ด ๋ฐ์ํ ์ดํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฐํ๋ฉด ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํจ. NOCYCLE์ ์ถ๊ฐํ๋ฉด CYCLE์ด ๋ฐ์ํ ์ดํ์ ๋ฐ์ดํฐ๋ ์ ๊ฐ๋์ง ์์ ๋ฐํ์ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ ์ ์์. |
ORDER SIBLINGS BY | ๋์ผํ LEVEL์ ๊ฐ์ง ๋ ธ๋ ( ํ์ ๋ ธ๋ ) ์ฌ์ด์์ ์ ๋ ฌ์ ์ํํจ |
WHERE | ๋ชจ๋ ๋ฐ์ดํฐ ์ ๊ฐ๋ฅผ ์ํํ ํ ์ง์ ๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง์ ์ถ์ถ |
๊ฐ์ ์ปฌ๋ผ ๊ตฌ๋ถ | ์ค๋ช |
LEVEL | ์ ๊ฐ ๊ณผ์ ์์ ๋ฃจํธ ๋ฐ์ดํฐ๋ฉด 1, ๊ทธ ํ์ ๋ฐ์ดํฐ๋ฉด 2 ๋ก ๋ฃจํธ์์ ๋ฆฌํ๋ก ๋ด๋ ค๊ฐ ๋ 1์ฉ ์ฆ๊ฐํจ. |
CONNECT_BY_ISLEAF | ์ ๊ฐ ๊ณผ์ ์์ ํด๋น ๋ฐ์ดํฐ๊ฐ ๋ฆฌํ ๋ฐ์ดํฐ๋ฉด 1, ๊ทธ๋ ์ง ์์ผ๋ฉด 0 |
CONNECT_BY_ISCYCLE | ์ ๊ฐ ๊ณผ์ ์์ ํด๋น ๋ฐ์ดํฐ๊ฐ ์กฐ์์ผ๋ก์ ์กด์ฌํ๋ฉด (์์์ด ์กด์ฌํ๋ฉด) 1, ๊ทธ๋ ์ง ์์ผ๋ฉด 0 CYCLE ๊ธฐ๋ฅ์ ์ฌ์ฉํ์๋๋ง ์ฌ์ฉํ ์ ์์. |
โ ๋ฌธ์ 32.์ด๋ค ํ ์ด๋ธ์ ํน์ ์ปฌ๋ผ์ ์์ฑ(varchar(8))์ ๋ฌธ์ ์ 3-4์ค์ ์กฐ๊ฑด๊ธ์ ๋ณด๊ณ ๋ณด๊ธฐ์์ ์๋ง์ sql๋ฌธ์ ์ ํํ๋ ๋ฌธ์
์ ๋ต:
โ ๋ฌธ์ 33. ํด๋น SQL๋ฌธ์ ์ํํ์ ๋ ์ถ๋ ฅ๋๋ ๊ฒ์ ๊ณ ๋ฅด์์ค.
[SQL]
์๊ฐ ๊ตฌํ๋ ๋ฌธ์ 1/12/(60/30)
์ ๋ต: + 1์๊ฐ ( ~ 01:00:00 3๋ฒ ์ ํ์ง)
1/24/60 1๋ถ์ผ๋ก ํ์๋ -> 1/12/60์ผ๋ก ํ๋ฉด ๊ฐ์ด 2๋ฐฐ ์ปค์ง๊ฑฐ๋๊น 2๋ถ
1/12/2 ์ผ๋ 30๋ฐฐ ์ปค์ง๊ฑฐ๋๊น 60๋ถ -> ์ฆ 1์๊ฐ
1/24/60์ด 1๋ถ ์ธ๊ฑฐ๋ง ์ธ์ฐ๊ณ ๊ณ์ฐํ๋ฉด ๋จ.
โ ๋ฌธ์ 34. ์๋ ์คํ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์์ค.
[SQL]
๋ฌธ์ ๋ ๋ ํ
์ด๋ธ์ ๋ณ๋ค๋ฅธ ์กฐ๊ฑด์์ด union ํ๋ค.
๋ ํ
์ด๋ธ์ ๊ฒ์์ด์ฉ๋ด์ญ, ์ด์ฉ์ผ์์ ์ปค๋ฎค๋ํฐ์ด์ฉ๋ด์ญ, ์ด์ฉ์ผ์๋ก ๊ตฌ๋ถ๋๊ฒ ๊ฐ๋ค.
Aํ
์ด๋ธ ๊ด๊ณ Bํ
์ด๋ธ ์ด๋ ๊ฒ ์์ผ๋ฉด 1๊ฐ ์ด์, ์ ํ์ฌ์o : 1 (๊ด๊ณ) 1 : 1๊ฐ ์ด์, ์ ํ์ฌ์o ์๋ค.
* ๋ ํํธ์์ฐํฐ์กฐ์ธ, ๋ผ์ดํธ์์ฐํฐ์กฐ์ธ, ํ์์ฐํฐ์กฐ์ธ union, union all, ์ ๋ ฌ, distinct, nvl ๋ฑ ๋ณด๊ธฐ์ sql๋ฌธ์ด ๋งค์ฐ ๋ณต์ก
์ ๋ต:
โ ๋ฌธ์ 35. ์ฌ๋ฐ๋ฅด์ง ์์ ๊ฒ์ ๊ณ ๋ฅด๋ ๋ฌธ์
1) 2) 3) 4) ์ผ๋ฐ ์งํฉ์ฐ์ฐ์ ORDER BY ๊ตฌ๋ฌธ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. |
์ ๋ต: 4๋ฒ
โ ๋ฌธ์ 36. ์ฌ์ ์๋ ๋ถ์ ์ถ๋ ฅ
์ ๋ต: LEFT OUTER JOIN
โ ๋ฌธ์ 37. ์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ SQL๋ฌธ์ผ๋ก ์ณ์ ๊ฒ์?
[EMP]
๋ถ์์ฝ๋ ์์๋ถ์์ฝ๋
-----------------
1 NULL
2 NULL
4 1
5 1
7 2
8 3
11 7
[RESULT]
๋ถ์์ฝ๋ ์์๋ถ์์ฝ๋
-----------------
11 7
7 2
2 NULL
1)
SELECT * FROM EMP
START WITH ๋ถ์์ฝ๋=2
CONNECT BY ์์๋ถ์์ฝ๋ = PRIOR ๋ถ์์ฝ๋;
2)
SELECT * FROM EMP
START WITH ๋ถ์์ฝ๋=2
CONNECT BY PRIOR ์์๋ถ์์ฝ๋ = ๋ถ์์ฝ๋;
3)
SELECT * FROM EMP
START WITH ๋ถ์์ฝ๋=11
CONNECT BY ์์๋ถ์์ฝ๋ = PRIOR ๋ถ์์ฝ๋;
4)
SELECT * FROM EMP
START WITH ๋ถ์์ฝ๋=11
CONNECT BY PRIOR ์์๋ถ์์ฝ๋ = ๋ถ์์ฝ๋;
์ ๋ต: 4๋ฒ
โ ๋ฌธ์ 38. ์๋์ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์ผ๋ถ์์ ๋ฐ์ค ์น ์์ฑ๋ค์ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค์ด๋ฉฐ ์ถ์ฐ๋ฃ๊ฐ 8888 ์ด์์ธ ์ํ๋ช , ๋ฐฐ์ฐ๋ช , ์ถ์ฐ๋ฃ๋ฅผ ๊ตฌํ๋ SQL๋ก ๊ฐ์ฅ ์ ์ ํ ๊ฒ์? (๋ ธ๋ญ์ด 2๊ณผ๋ชฉ 62๋ฒ)
๋ฐฐ์ฐ (๋ฐฐ์ฐ๋ฒํธ, ๋ฐฐ์ฐ๋ช
, ์ฑ๋ณ) ์ํ (์ํ๋ฒํธ, ์ํ๋ช , ์ ์๋ ๋) ์ถ์ฐ (๋ฐฐ์ฐ๋ฒํธ, ์ํ๋ฒํธ, ์ถ์ฐ๋ฃ) |
1) SELECT ์ถ์ฐ.์ํ๋ช
, ์ํ.๋ฐฐ์ฐ๋ช
, ์ถ์ฐ.์ถ์ฐ๋ฃ
FROM ๋ฐฐ์ฐ, ์ํ, ์ถ์ฐ
WHERE ์ถ์ฐ๋ฃ >= 8888
AND ์ถ์ฐ.์ํ๋ฒํธ = ์ํ.์ํ๋ฒํธ
AND ์ถ์ฐ.๋ฐฐ์ฐ๋ฒํธ = ๋ฐฐ์ฐ.๋ฐฐ์ฐ๋ฒํธ;
2) SELECT ์ํ.์ํ๋ช
, ๋ฐฐ์ฐ.๋ฐฐ์ฐ๋ช
, ์ถ์ฐ๋ฃ
FROM ๋ฐฐ์ฐ, ์ํ, ์ถ์ฐ
WHERE ์ถ์ฐ๋ฃ > 8888
AND ์ถ์ฐ.์ํ๋ฒํธ = ์ํ.์ํ๋ฒํธ
AND ์ํ.์ํ๋ฒํธ = ๋ฐฐ์ฐ.๋ฐฐ์ฐ๋ฒํธ;
3) SELECT ์ํ๋ช
, ๋ฐฐ์ฐ๋ช
, ์ถ์ฐ๋ฃ
FROM ๋ฐฐ์ฐ, ์ํ, ์ถ์ฐ
WHERE ์ถ์ฐ๋ฃ >= 8888
AND ์ํ๋ฒํธ = ์ํ.์ํ๋ฒํธ
AND ๋ฐฐ์ฐ๋ฒํธ = ๋ฐฐ์ฐ.๋ฐฐ์ฐ๋ฒํธ;
4) SELECT ์ํ.์ํ๋ช
, ๋ฐฐ์ฐ.๋ฐฐ์ฐ๋ช
, ์ถ์ฐ๋ฃ
FROM ๋ฐฐ์ฐ, ์ํ, ์ถ์ฐ
WHERE ์ถ์ฐ๋ฃ >= 8888
AND ์ถ์ฐ.์ํ๋ฒํธ = ์ํ.์ํ๋ฒํธ
AND ์ถ์ฐ.๋ฐฐ์ฐ๋ฒํธ = ๋ฐฐ์ฐ.๋ฐฐ์ฐ๋ฒํธ;
์ ๋ต: 4๋ฒ
ํด์ค: ์ํ๋ช ๊ณผ ๋ฐฐ์ฐ๋ช ์ ์ถ์ฐ ํ ์ด๋ธ์ด ์๋๋ผ ์ํ์ ๋ฐฐ์ฐ ํ ์ด๋ธ์์ ๊ฐ์ง๊ณ ์์ผ ํ๋ ์์ฑ์ด๋ฏ๋ก
์ถ์ฐํ ์ด๋ธ์ ์ํ๋ฒํธ์ ์ํํ ์ด๋ธ์ ์ํ๋ฒํธ ๋ฐ ์ถ์ฐํ ์ด๋ธ์ ๋ฐฐ์ฐ๋ฒํธ์ ๋ฐฐ์ฐํ ์ด๋ธ์ ๋ฐฐ์ฐ๋ฒํธ๋ฅผ ์กฐ์ธํ๋ SQL๋ฌธ์ ์์ฑํด์ผ ํจ.
*์ถ์ฐ๋ฃ๋ ์ถ์ฐ ํ ์ด๋ธ์๋ง ์๋ ์ปฌ๋ผ์ด๊ธฐ ๋๋ฌธ์ ์ถ์ฐ๋ฃ๋ก๋ง ํด๋ ok. ์ถ์ฐ.์ถ์ฐ๋ฃ๋ก ํด๋ ok
์ตํฐ๋ง์ด์ ๋ ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ์ ๋ถ์ํจ
1. ํ
์ด๋ธ๋ช
.์ปฌ๋ผ๋ช
ํ๋ฉด
- ํด๋น ์ปฌ๋ผ์ด ๊ทธ ํ
์ด๋ธ์ ์๋๊ฒ ๋ง๋์ง ํ์ธํฉ๋๋ค. ์์ผ๋ฉด ์ ์ ์์ผ๋ฉด ์ค๋ฅ
2. ์ปฌ๋ผ๋ช
๋ง ํ๋ฉด ์ด๋ค ํ
์ด๋ธ์ ์ปฌ๋ผ๋ช
์ธ์ง๋ฅผ ํ์ธ
- ํ๋์ ํ
์ด๋ธ์๋ง ์ํ ์ปฌ๋ผ์ด ํ์ธ๋๋ฉด ์ ์
- ๋๊ฐ ์ด์์ ํ
์ด๋ธ์ ์ํ ์ปฌ๋ผ์ด๋ผ๊ณ ํ์ธ๋๋ฉด ์ค๋ฅ
- ์ด๋ค ํ
์ด๋ธ์๋ ์ํ์ง ์์ ์ปฌ๋ผ์ด๋ผ๊ณ ํ์ธ๋๋ฉด ์ค๋ฅ
โ ๋ฌธ์ 39. ์คํ๊ฒฐ๊ณผ ๋ฌธ์
๊ธ์ฌ
101 30000
102 35000
103 4000
104 35000
105 4000
COUNT (DISTINCT ๊ธ์ฌ)
์ ๋ต:
โ ๋ฌธ์ 40. ๋๋ฒ์งธ ๊ธ์๊ฐ s, ์ด ๊ธธ์ด๊ฐ 4๊ธ์ ์ด์์ธ ๋ฌธ์์ด์ ์ฐพ์ ๋, ์ฌ๋ฐ๋ฅด์ง ์์ ๊ฒ ?
1) %S_ _ 2) _S%_ _ 3) _S_%_ 4) _S_ _ % |
์ ๋ต: 1๋ฒ
โ ๋ฌธ์ 41. ๋ทฐ + SELECT ๋ฌธ์
c2>= 200 and c1='B'
์ ๋ต: 200
โ ๋ฌธ์ 42. ๋ค์ ์ค ๊ฒฐ๊ณผ ๊ฐ์ด ๋ค๋ฅธ ์ง์์ด๋?
1) SELECT * FROM T1 NATURAL JOIN T2
2) SELECT * FROM T1 JOIN T2 USING(COL)
3) SELECT * FROM T1 INNER JOIN T2 ON T1.COL = T2.COL
4) SELECT * FROM T2 WHERE T2.COL IN (SELECT COL FROM T1 WHERE T2.COL = T1.COL)
์ ๋ต: 4๋ฒ
โ ๋ฌธ์ 43. SUM / COUNT ๋ฌธ์
ํ์๋ฒํธ ํ์์ฝ๋ ๋ฌผ๊ฑด ๊ธ์ก
-----------------------------
1001 A 1 100
1001 B 1 200
2102 A 1 NULL
2102 B NULL 300
1) 200 2) 150 3) 300 4) NULL |
์ ๋ต:
โ ๋ฌธ์ 44. ์ฝ๋๋ฅผ ์คํํ๊ณ ๋์จ ์ต๋๊ฐ ๊ตฌํ์์ค.
1 ์ฝ์
2 ์ฝ์
์ธ์ด๋ธํฌ์ธํธ SV1
๊ฐ์ด 1์ธ๊ฑธ 4๋ก ์
๋ฐ์ดํธ
์ธ์ด๋ธํฌ์ธํธ SV1
์์ ๋ ๊ฐ ์ค ํ๋ ์ญ์
ROLLBACK SV1
3 ์ฝ์
COMMIT
์ ๋ต: ๋ต์ด 4
โ ๋จ๋ตํ 2. ์์๊ฐ 1234567 ์ด๋ฐ์์ธ ๋ฌธ์
์ ๋ต: row_number
โ ๋จ๋ตํ 3. round(3.45, 1)
์ ๋ต: 3.5
โ ๋จ๋ตํ 4.
table1, table2
์์ ๊ฐ์ ํ์์ธ JOIN
์ ๋ต: cross join
โ ๋จ๋ตํ 5. LAG ํจ์ ๋ฌธ์
์ ๋ต: ใฑ.2, ใด.700
โ ๋จ๋ตํ 6. ์ ์์์ ์ค๋ช ํ๋ ๊ฒ
์ ๋ต: ROLLBACK
์ถ์ฒ : ๋ฐ์ดํฐ๋ถ์ ์นดํ '๋ง๋ฐ์ ' ๋์ธ ํ์๋๋ค
์ถ์ฒ : ๋ฐ์ดํฐ ์ ๋ฌธ๊ฐ ํฌ๋ผ 'xavyyy' ๋์ธ ํ์๋๋ค
'IT์๊ฒฉ์ฆ ๊ณต๋ถ > SQLD ์์๋ณต์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] 2024๋ SQLD 52ํ ๊ธฐ์ถ๋ณต์ (4) | 2024.03.10 |
---|---|
[SQLD] 2023๋ SQLD 51ํ ๊ธฐ์ถ๋ณต์ (1๊ณผ๋ชฉ/2๊ณผ๋ชฉ) (10) | 2023.11.18 |
[SQLD] 2023๋ SQLD 49ํ ๊ธฐ์ถ๋ณต์ ( 1๊ณผ๋ชฉ/2๊ณผ๋ชฉ ) (16) | 2023.06.10 |
[SQLD] 2023๋ SQLD 48ํ ( 1๊ณผ๋ชฉ/2๊ณผ๋ชฉ ์ ๋ต ) (6) | 2023.03.20 |
[SQLD] 47ํ SQLD ( 1๊ณผ๋ชฉ/2๊ณผ๋ชฉ ์ ๋ต ) (4) | 2022.11.07 |