๐SQLD. ์ 35 ํ ๊ธฐ์ถ ๋ฌธ์
๋ฌธ์ 1. ์๋ ๋ณด๊ธฐ ์ค ๋ฐ์ ๊ทํ์ ์ด์ ๋ก ๊ฐ์ฅ ๋ถ์ ์ ํ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ๋์คํฌ ์
์ถ๋ ฅ๋์ด ๋ง์์ ์ฑ๋ฅ์ด ์ ํ๋ ๋ ๋ฐ์ ๊ทํ๋ฅผ ์ํํ๋ค. 2) ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ์ง ๋ชปํ ๋ ๋ฐ์ ๊ทํ๋ฅผ ์ํํ๋ค. 3) ๊ฒฝ๋ก๊ฐ ๋๋ฌด ๋ฉ์ด ์กฐ์ธ์ผ๋ก ์ธํ ์ฑ๋ฅ ์ ํ๊ฐ ์์๋ ๋ ๋ฐ์ ๊ทํ๋ฅผ ์ํํ๋ค. 4) ์นผ๋ผ์ ๊ณ์ฐํ์ฌ ์ฝ์ ๋ ์ฑ๋ฅ์ด ์ ํ ๋ ๊ฒ์ด ์์๋๋ ๊ฒฝ์ฐ ๋ฐ์ ๊ทํ๋ฅผ ์ํํ๋ค. |
๋ฌธ์ 2. ์๋์ ERD ์ฒ๋ผ ๋ถ์ฐ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๊ฐ ๋์ด ์์ ๋ ๊ฐ์ฅ ๋ถ์ ์ ํ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ํ๋์ ๊ฒฐ๊ณผ์๋ ์ฌ๋ฌ ๊ฐ์ ๊ณํ์ด ์์ ์ ์๋ค. 2) ํ ๊ฐ์ ๊ณํ์๋ ๋ด์ฉ์ด ์์ ์๋ ์๋ค. 3) ๋ฐ์ดํฐ ์กฐํ ์ฑ๋ฅ์ ์ํด์ ๊ณตํต๋ ์์ฑ์ ํ๋์ ํ ์ด๋ธ๋ก ๋ฌถ์ ์ ์๋ค. 4) ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ์ง ๋ชปํ ๋ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๊ฐ ์ข๋ค. |
๋ฌธ์ 3. ANSI-SPARC์์ ์ ์ํ 3๋จ๊ณ ๊ตฌ์กฐ(Three Level Architecture)์์ ์๋ ๋ด์ฉ์ด ์ค๋ช ํ๋ ์คํค๋ง ๊ตฌ์กฐ๋ก ๊ฐ์ฅ ์ ์ ํ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
- ๋ชจ๋ ์ฌ์ฉ์๊ด์ ์ ํตํฉํ ์กฐ์ง ์ ์ฒด ๊ด์ ์ ํตํฉ์ ํํ์ด๋ค. - ๋ชจ๋ ์์ฉ์์คํ ๋ค์ด๋ ์ฌ์ฉ์ ๋ค์ด ํ์๋ก ํ๋ ๋ฐ์ดํฐ๋ฅผ ํตํฉํ ์กฐ์ง ์ ์ฒด์ DB๋ฅผ ๊ธฐ์ ํ ๊ฒ์ผ๋ก DB์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๊ทธ๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ๋ ์คํค๋ง์ด๋ค. |
1) ์ธ๋ถ ์คํค๋ง (External Schema) 2) ๊ฐ๋ ์คํค๋ง (Conceptual Schema) 3) ๋ด๋ถ ์คํค๋ง (Internal Schema) 4) ๋ ผ๋ฆฌ ์คํค๋ง (Logical Schema) |
๋ฌธ์ 4. ๋ค์ ๋ณด๊ธฐ ์ค ERD์์ Relationship(๊ด๊ณ)์ ํ์๋์ง ์๋ ๊ฒ์ ๋ฌด์์ธ๊ฐ? ์ ๋ตํ์ธ๐ผ
1) ๊ด๊ณ ๋ช
(Relationship Membership) 2) ๊ด๊ณ ์ฐจ์ (Relationship Degree/Cardinality) 3) ๊ด๊ณ ์ ํ ์ฌ์ (Relationship Optionality) 4) ๊ด๊ณ ๋ถ๋ฅ (Relationship Classification) |
๋ฌธ์ 5. ๋ค์ ๋ณด๊ธฐ ์ค ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ํน์ง์ผ๋ก ๋ถ์ ์ ํ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ์ง์ญ ์์น์ฑ, ์ ์ฆ์ ์์คํ
์ฉ๋์ด ํ์ฅ๋๋ค. 2) ๋น ๋ฅธ ์๋ต์๋์ ํต์ ๋น์ฉ์ ์ ๊ฐํ ์ ์๋ค. 3) ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋น์ฉ์ด ์ฆ๋ํ๋ค. 4) ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ณ ๋ฐ์ดํฐ ๋ณด์์ฑ์ด ๋์์ง๋ค. |
๋ฌธ์ 6. ์๋์ ๋ ๊ฐ์ง ๋ชจ๋ธ์ ๋ํ ์ค๋ช ์ผ๋ก ๊ฐ์ฅ ์ ์ ํ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ์ํ ๊ณผ๋ชฉ ์ ์ฒญ์ ๊ดํ ๋ด์ฉ์ ์กฐํํ ๋ '๊ฐ' ๋ชจ๋ธ์ด '๋' ๋ชจ๋ธ๋ณด๋ค ์ข๋ค. 2) ํ๋์ SQL๋ก ํ๋๋ ์๊ฐํ์ง ์์ ๊ณผ๋ชฉ์ ์ฐพ์ ์ ์๋ค. 3) ์ ๊ทํ ์ธก๋ฉด์์๋ '๋' ๋ชจ๋ธ์ด '๊ฐ' ๋ชจ๋ธ๋ณด๋ค ์ฐ์ํ๋ค. 4) ๋ ๊ฐ์ ๋ชจ๋ธ์ ์ฅ์ ์ ๋์ผํ๋ค. |
๋ฌธ์ 7. ์๋์ ๊ฐ์ ํ ์ด๋ธ์ด ์์ ๋ ๊ทธ ์ค๋ช ์ผ๋ก ๋ถ์ ์ ํ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) 4๊ฐ์ ํ
์ด๋ธ์ ์กฐ์ธํ๊ธฐ ์ํ ์ต์ ์กฐ๊ฑด์ 3๊ฐ์ด๋ค. 2) ์๋ณ์ ๊ด๊ณ๋ก๋ง ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ์กฐ์ธ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ๋ฏ๋ก ๋น์๋ณ์ ๊ด๊ณ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค. 3) Student, Module์ ์กฐ์ธํ ๋ Student์ Grades๋ฅผ ๋น์๋ณ์ ๊ด๊ณ๋ก ์ค๊ณํ๋ฉด ์กฐ์ธ์ด ๋์ฑ ํธ๋ฆฌํด์ง๋ค. 4) Student์ student_ID๋ ๋ด๋ถ ์๋ณ์ ์ด๊ณ Grades์ student_ID๋ ์ธ๋ถ ์๋ณ์์ด๋ค. |
๋ฌธ์ 8. ๋ค์ ๋ณด๊ธฐ ์ค ํ ์ด๋ธ ์ค๊ณ ์ ์ธ๋ฑ์ค์ ๊ด๋ จ๋ ์ค๋ช ์ผ๋ก ๋ถ์ ์ ํ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ์ฃผ๋ก B-Tree ์ธ๋ฑ์ค๋ก ๋์ด ์๋ค. 2) ์ธ๋ํค๊ฐ ์ค๊ณ๋์ด ์๋๋ฐ ์ธ๋ฑ์ค๊ฐ ์๋ ์ํ์์ ์ ๋ ฅ/์ญ์ /์์ ์ ๋ถํ๊ฐ ์๊ธด๋ค. 3) ํ ์ด๋ธ์ ๋ง๋ค ์ ์๋ ์ธ๋ฑ์ค์ ์๋ ์ ํ์ด ์์ผ๋, ๋๋ฌด ๋ง์ด ๋ง๋ค๋ฉด ์คํ๋ ค ์ฑ๋ฅ ๋ถํ๊ฐ ๋ฐ์ํ๋ค. 4) ์กฐํ๋ ์ผ๋ฐ์ ์ผ๋ก ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค. |
๋ฌธ์ 9. ์๋์ ERD์ ๋ํ ์ค๋ช ์ผ๋ก ๊ฐ์ฅ ๋ถ์ ์ ํ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ์์ฃผ ์ฐ๋ ์ปฌ๋ผ๊ณผ ๊ทธ๋ ์ง ์์ ์ปฌ๋ผ์ผ๋ก ๋๋ ์ ์ฑ๋ฅ์ ํฅ์ ์ํฌ ์ ์๋ค. 2) Row Chaining์ด ๋ฐ์ํ์ฌ ์๋๊ฐ ๋๋ ค์ง ์ ์๋ค. 3) ํ ํ ์ด๋ธ์ ๋ง์ ์์ ์ปฌ๋ผ๋ค์ด ์กด์ฌํ๊ฒ ๋๋ฉด ๋ฐ์ดํฐ๊ฐ ๋์คํฌ์ ์ฌ๋ฌ ๋ธ๋ก ์ ์กด์ฌํ๋ฏ๋ก ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ I/O ๋์ด ๋ง์์ง๊ฒ ๋์ด์ฑ๋ฅ์ด ์ ํ ๋ ์ ์๋ค. 4) ๋ฐ์ดํฐ ๋ก์ฐ๊ฐ ๊ณผ๋ํ๊ฒ ๋ฐ์ง๋์ง ์๋๋ก ์คํค๋ง ๊ตฌ์กฐ์ ๋์ผํ๊ฒ ํํฐ์ ์ ๋ถํ ํ๋ค. |
๋ฌธ์ 10. ํ ์ด๋ธ ๋ฐ์ ๊ทํ ๊ธฐ๋ฒ ์ค ํ ์ด๋ธ ๋ณํฉ์ด ์๋ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) 1:1 ๊ด๊ณ ํ
์ด๋ธ ๋ณํฉ 2) 1:M ๊ด๊ณ ํ ์ด๋ธ ๋ณํฉ 3) ์ํผ/์๋ธ ํ์ ํ ์ด๋ธ ๋ณํฉ 4) ํต๊ณ ํ ์ด๋ธ ์ถ๊ฐ |
๋ฌธ์ 11. ์๋์ ANSI JOIN SQL์์ ๊ฐ์ฅ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) SELECT EMP.DEPTNO, EMPNO, ENAME, DNAME FROM EMP INNER JOIN DEPT ON EMP.DEPTNO = DEPT.DEPTNO; 2) SELECT EMP.DEPTNO, EMPNO, ENAME, DNAME FROM EMP NATURAL JOIN DEPT; 3) SELECT*FROM DEPT JOIN DEPT_TEMP USING(DEPTNO); 4) SELECT E.EMPNO, E.ENAME, D.DEPTNO, D.DNAME FROM EMP E INNER JOIN DEPT D ON (E.DEPTNO = D.DEPTNO); |
๋ฌธ์ 12. ์๋์ SQL ๊ตฌ๋ฌธ ์ค ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) SELECT C1, C2 FROM SQLD_31_26_01 NATURAL JOIN SQLD_31_26_02; 2) SELECT NO, A.C1, B.C2 FROM SQLD_31_26_01 A JOIN SQLD_31_26_02 B USING (NO); 3) SELECT A.NO, A.C1, B.C2 FROM SQLD_31_26_01 A JOIN SQLD_31_26_02 B ON (A.NO = B.NO); 4) SELECT A.NO, A.C1, B.C2 FROM SQLD_31_26_01 A CROSS JOIN SQLD_31_26_02 B; |
๋ฌธ์ 13. UNION์ ๋ํ ์ค๋ช ์ค ๋ฐ๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ๋ฐ์ดํฐ์ ์ค๋ณต ํ์ ์ ๊ฑฐํ๋ค. 2) ๋ฐ์ดํฐ์ ์ค๋ณต ํ์ ํฌํจํ๋ค. 3) ์ ๋ ฌ ์์ ์ ์ํํ์ง ์๋๋ค. 4) ๋ ํ ์ด๋ธ์ ๋ชจ๋ ํฌํจ๋ ํ์ ๊ฒ์ํ๋ค. |
๋ฌธ์ 14. ๋ค์ ๋ณด๊ธฐ ์ค SQL์ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[SQLD_14]
--------------------------------
NUM CODE COL1 COL2
1 A 100 350
2 A 130 300
3 B 150 400
4 A 200 300
5 B 250 200
6 A 300 150
1) SELECT*FROM SQLD_14 WHERE 1=1 AND CODE IN('A','B') AND COL1 BETWEEN 200 AND 400; 2) SELECT*FROM SQLD_14 WHERE 1=1 AND (CODE='A' AND 200 BETWEEN COL1 AND COL2) OR (CODE='B' AND 200 BETWEEN COL1 AND COL2); 3) SELECT*FROM SQLD_14 WHERE 1=1 AND 200 BETWEEN COL1 AND COL2; 4) SELECT*FROM SQLD_14 WHERE 1=1 AND COL1 <= 200 AND COL2 >= 200; |
๋ฌธ์ 15. ๋ค์ ๋ณด๊ธฐ ์ค ํธ๋์ญ์ ์ ํน์ง์ด ์๋ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ์์์ฑ 2) ์ผ๊ด์ฑ 3) ์ฐ๊ด์ฑ 4) ๊ณ ๋ฆฝ์ฑ |
๋ฌธ์ 16. ๋ค์ ์ค ์์ง COMMIT ๋์ง ์์ ๋ฐ์ดํฐ์ ๋ํ ์ค๋ช ์ผ๋ก ์๋ชป๋ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ROLLBACK ๋ช
๋ น์ด๋ก ๋ฐ๋ก ์ง์ ์ COMMITํ ์ง์ ๊น์ง ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ์๋ค. 2) ๋ ์์ ์ด ๋ณผ ์ ์๋ค. 3) ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ค. 4) ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ COMMIT๋์ง ์์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์น ์ ์๋ค. |
๋ฌธ์ 17. ๋ค์ ๋ณด๊ธฐ ์ค COL1 NULL์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ SQL๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์?์ ๋ตํ์ธ๐ผ
1) SELECT COL1 FROM WHERE T1 WHERE COL1 <> '' 2) SELECT COL1 FROM WHERE T1 WHERE COL1 != '' 3) SELECT COL1 FROM WHERE T1 WHERE COL1 IS NOT NULL 4) SELECT COL1 FROM WHERE T1 WHERE COL1 NOT IN (NULL) |
๋ฌธ์ 18. ๋ค์ ์ฃผ์ด์ง ๋ฐ์ดํฐ์์ ์๋์ ๊ฒฐ๊ณผ๊ฐ๊ณผ ๊ฐ์ด "_" ๋ค์ด๊ฐ ์๋ ? ์ ๋ตํ์ธ๐ผ
[SQLD_18]
ID NAME
------------
1 ___A
2 B
3 ___C
4 D
5 E
6 ___F
[๊ฒฐ๊ณผ๊ฐ]
ID NAME
------------
1 _A
3 __C
6 ___F
1) SELECT*FROM SQLD_18 WHERE NAME LIKE '%%'; 2) SELECT*FROM SQLD_18 WHERE NAME LIKE '%#_%'; 3) SELECT*FROM SQLD_18 WHERE NAME LIKE '%@_%' ESCAPE '@'; 4) SELECT*FROM SQLD_18 WHERE NAME LIKE '%_%' ESCAPE '_'; |
๋ฌธ์ 19. ๋ค์ ์ฃผ์ด์ง ํ ์ด๋ธ์์ ์ํํ SQL๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์๋ชป๋ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[SQLD_19]
EMPNO ENAME SAL
-----------------------
1 'NOAH' 1000
2 'LIAM' 2000
3 'AIDEN' 3000
4 'JAMES' 4000
5 'ETHAN' 5000
6 'OLIVER' 6000
(1) (3)
SELECT ENAME, SAL SELECT ENAME, SAL
FROM (SELECT ENAME, SAL FROM FROM (SELECT ENAME, SAL FROM SQLD_19
SQLD_19 ORDER BY SAL DESC) ORDER BY SAL DESC)
WHERE ROWNUM = 1; WHERE ROWNUM > 0;
=> ๋งจ ๋์ ๋ฐ์ดํฐ๊ฐ ์ถ์ถ๋๋ค. => ๋ฐ์์๋ถํฐ ์๊น์ง ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ถ์ถ๋๋ค.
(2) (4)
SELECT ENAME, SAL SELECT ENAME, SAL
FROM (SELECT ENAME, SAL FROM (SELECT ENAME, SAL FROM SQLD_19
FROM SQLD_19 ORDER BY SAL DESC) ORDER BY SAL DESC)
WHERE ROWNUM = 2; WHERE ROWNUM <= 3;
=> ๋์์ 2๊ฑด์ ๋ฐ์ดํฐ๊ฐ ์ถ์ถ๋๋ค. => ๋์์ 3๊ฑด์ ๋ฐ์ดํฐ๊ฐ ์ถ์ถ๋๋ค.
๋ฌธ์ 20. ๋ค์ ์ฃผ์ด์ง SQL๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ด ๋ค๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[SQLD_20]
COL1 COL2 COL3
-----------------------
A 300 50
B 300 150
C NULL 300
D 300 100
SELECT NVL(COL2, COL3) AS ๊ธ์ก1,
COALESCE(COL2, COL3) AS ๊ธ์ก2,
NULLIF(COL2, COL3) AS ๊ธ์ก3,
CASE WHEN COL2 IS NOT NULL THEN
COL2 ELSE COL3 END AS ๊ธ์ก4
FROM SQLD_20;
1) ๊ธ์ก 1 2) ๊ธ์ก 2 3) ๊ธ์ก 3 4) ๊ธ์ก 4 |
๋ฌธ์ 21. ๋ค์ ์ค ์ฐจ์งํฉ์ ๊ตฌํ๋ ์งํฉ ์ฐ์ฐ์๋ ๋ฌด์์ธ๊ฐ?์ ๋ตํ์ธ๐ผ
1) UNION 2) UNION ALL 3) EXCEPT 4) INTERSECT |
๋ฌธ์ 22. ์๋์ WINDOW FUNCTION์ ์ฌ์ฉํ SQL ์ค ๊ฐ์ฅ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) SUM(SAL) OVER() 2) SUM(SAL) OVER(PARTITION BY JOB ORDER BY EMPNO RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) SAL1 3) SUM(SAL) OVER(PARTITION BY JOB ORDER BY JOB RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) SAL2 4) SUM(SAL) OVER(PARTITION BY JOB ORDER BY EMPNO RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED PRECEDING) SAL3 |
๋ฌธ์ 23. ์ธ๋ฑ์ค์ ๋ํ ํน์ง์ผ๋ก ์๋ชป๋ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) Insert, Update, Delete ๋ฑ๊ณผ ๊ฐ์ DML ์์
์ ํ
์ด๋ธ๊ณผ ์ธ๋ฑ์ค๋ฅผ ํจ๊ป ๋ณ๊ฒฝํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์คํ๋ ค ์๋๊ฐ ๋๋ ค์ง ์ ์๋ค. 2) ์ธ๋ฑ์ค ์ฌ์ฉ์ ๋ชฉ์ ์ ๊ฒ์ ์ฑ๋ฅ์ ์ต์ ํ์ด๋ค. 3) ์ธ๋ฑ์ค ๋ฐ์ดํฐ๋ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์นผ๋ผ์ ๊ฐ์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ค. 4) ์ธ๋ฑ์ค๋ Equal ์กฐ๊ฑด๋ง ์ฌ์ฉํ ์ ์๋ค. |
๋ฌธ์ 24. ๋ค์()์ ํด๋น๋๋ Subquery์ ์ด๋ฆ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
SELECT (ใฑ)
FROM (ใด)
WHERE = (ใท);
1) ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ, ์ธ๋ผ์ธ๋ทฐ, ์๋ธ์ฟผ๋ฆฌ 2) ์ธ๋ผ์ธ๋ทฐ, ์ธ๋ผ์ธ๋ทฐ, ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ 3) ๋ฉ์ธ์ฟผ๋ฆฌ, ์ธ๋ผ์ธ๋ทฐ, ์๋ธ์ฟผ๋ฆฌ 4) ์๋ธ์ฟผ๋ฆฌ, ์ธ๋ผ์ธ๋ทฐ, ๋ฉ์ธ์๋ธ์ฟผ๋ฆฌ |
๋ฌธ์ 25. ๋ค์ ์ค PL/SQL์ ๋ํ ์ค๋ช ์ผ๋ก ๊ฐ์ฅ ์ ์ ํ์ง ์์ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ๋ณ์์ ์์ ๋ฑ์ ์ฌ์ฉํ์ฌ ์ผ๋ฐ SQL ๋ฌธ์ฅ์ ์คํํ ๋ WHERE์ ์ ์กฐ๊ฑด ๋ฑ ์ผ๋ก ๋์
ํ ์ ์๋ค. 2) Procedure, User Defined Function, Trigger ๊ฐ์ฒด๋ฅผ PL/SQL๋ก ์์ฑ ํ ์ ์๋ค. 3) Procedure ๋ด๋ถ์ ์์ฑ๋ ์ ์ฐจ์ ์ฝ๋๋ PL/SQL ์์ง์ด ์ฒ๋ฆฌํ๊ณ ์ผ๋ฐ์ ์ธ SQL ๋ฌธ์ฅ์ SQL ์คํ๊ธฐ๊ฐ ์ฒ๋ฆฌํ๋ค. 4) PL/SQL ๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ก DECLARE, BEGIN ~ END, EXCEPTION์ ํ์์ ์ผ๋ก ์จ์ผ ํ๋ค. |
๋ฌธ์ 26. ๋ค์ ์ค ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฅ ๋ถ์ ์ ํ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) ์ ํ๋ฆฌ์ผ์ด์
2) Trigger 3) Lock 4) ์ ์ฝ์กฐ๊ฑด |
๋ฌธ์ 27. ์๋์ SQL๋ฌธ์ ์ํํ์์ ๋์ ๊ฒฐ๊ณผ๊ฐ Result์ ๊ฐ์ ๋ Result์ ๋ํ ์ค๋ช ์ผ๋ก ์ ์ ํ์ง ์์๊ฒ์? ์ ๋ตํ์ธ๐ผ
<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 SQLD_27
WHERE 1=1 START WITH MANAGER_ID IS NULL
CONNECT BY PRIOR EMPLOYEE_ID = MANAGER_ID
[RESULT]
BOSS MANAGER_ID EMPLOYEE_ID LAST_NAME LEVEL CONNECT_BY_ISLEAFPATH
----------------------------------------------------------------------
[ ] 100 A 0 -A
A 100 101 B 0 -A-B
A 101 108 C 0 -A-B-C
A 101 205 L 0 -A-B-L
A 108 109 D 1 -A-B-C-D
A 108 110 E 1 -A-B-C-E
A 108 111 F 1 -A-B-C-F
A 108 112 G 1 -A-B-C-G
A 108 113 H 1 -A-B-C-H
A 101 200 I 1 -A-B-I
A 101 203 J 1 -A-B-J
A 101 204 K 1 -A-B-K
A 205 206 M 1 -A-B-L-M
1) [ ]๋ A์ด๋ค. |
2) LEAF ๋ฉด 1์ LEAF๊ฐ ์๋๋ฉด 0์ ๋ฐํํ๋ค. |
3) ์์์์ ๋ถ๋ชจ๋ก ๊ฐ๋ ์ญ๋ฐฉํฅ์ด๋ค. |
4) LEVEL์ ๊ณ์ธต์ ๊น์ด๋ฅผ ์๋ฏธํ๋ฉฐ KING์ ์ต์์ ๊ณ์ธต์ด๋ค. |
๋ฌธ์ 28. ์๋์ SQL๋ฌธ์ ๋ํ ์ค๋ช ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
SELECT*FROM SQLD_28
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 |
๋ฌธ์ 29. ๋ค์ ์ฃผ์ด์ง ํ ์ด๋ธ์์ SQL๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์๋ง์ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[SQLD_29]
JOB_TITLE EMP_NAME SALARY
---------------------------------
CLERK JACSON 2000
SALESMAN KING 3000
SALESMAN BOAN 4000
CLERK LUCAS 5000
SALESMAN CADEN 6000
CLERK GRAYSON 7000
DEVELOPER LOGAN 8000
CLERK JIM 9000
[RESULT]
SELECT COUNT(*)
FROM SQLD_29
WHERE JOB_TITLE = 'CLERK'
OR (EMP_NAME LIKE 'K%' AND SALARY >= 3000)
1) 4๊ฑด 2) 5๊ฑด 3) 6๊ฑด 4) 8๊ฑด |
๋ฌธ์ 30. ๋ค์ ์ค ๋ฌธ์์ด์ด ์ ๋ ฅ๋ ๋ ๋น ๊ณต๊ฐ์ผ๋ก ์ฑ์ฐ๋ ํํ์ ๋ฐ์ดํฐ ํ์ ์? ์ ๋ตํ์ธ๐ผ
1) VARCHAR2
2) CHAR 3) DATE 4) NUMBER |
๋ฌธ์ 31. ๋ค์ ์ค ๊ฒฐ๊ณผ๊ฐ์ด ๋ค๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) SELECT SUBSTR(TO_CHAR('20190504'),5,2) FROM DUAL; 2) SELECT EXTRACT(MONTH FROM DATE '2020-05-01') FROM DUAL; 3) SELECT CONCAT('0', '5') FROM DUAL; 4) SELECT TRIM('05') FROM DUAL; |
๋ฌธ์ 32. ๋ค์ ์ค ๊ฒฐ๊ณผ๊ฐ์ด ๋ค๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
1) SELECT UPPER('ebac') FROM DUAL;
2) SELECT RTRIM(' EBAC') FROM DUAL; 3) SELECT SUBSTR('ABCEBACED',4,4) FROM DUAL; 4) SELECT CONCAT('EB','AC') FROM DUAL; |
๋ฌธ์ 33. ๋ค์ ๋ณด๊ธฐ ์ค ์๋ SQL๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
<SQL>
SELECT SUBSTR('123456788',-4,2)
FROM DUAL;
1) 45 2) 65 3) 43 4) 67 |
๋ฌธ์ 34. ์ฃผ์ด์ง SQL๋ฌธ์ ๋น์นธ์ ์ฌ ์ ์๋ ํจ์๋ก ์ณ์ง ์๋ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[SQLD_34]
DEPT NAME SALARY
------------------------------
MARKETING A 30
SALES B 40
MARKETING C 40
SALES D 50
MANUFACTURE E 50
MARKETING F 50
MANUFACTURE G 60
SALES H 60
MANUFACTURE I 70
SELECT*FROM SQLD_34
WHERE SALARY ( );
1) <= (SELECT MAX(SALARY) FROM SQLD_34 GROUP BY DEPT) 2) >= ANY(30,40,50,60,70) 3) <= ALL(30,40,50,60,70) 4) IN (SELECT SALARY FROM SQLD_34 WHERE DEPT = 'MARKETING') |
๋ฌธ์ 35. ๋ค์ ์ค ์๋์ ์๊ตฌ์ฌํญ์ ๋ฐ์ํ SQL๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[์๊ตฌ์ฌํญ]
ํ์ด A์ด๊ฑฐ๋ B์ด๋ฉด์ ๋ฌด๊ฒ๊ฐ 65๋ณด๋ค ํฐ ํ๋ ์ด์ด๋ฅผ ๊ฒ์ํด๋ผ.
(1)
SELECT*FROM PLAYER
WHERE TEAM IN('A','B') AND WEIGHT > 65;
(2)
SELECT*FROM PLAYER
WHERE TEAM = 'A' OR TEAM = 'B' AND
WEIGHT > 65;
(3)
SELECT*FROM PLAYER
WHERE (TEAM = 'A' AND WEIGHT > 65) OR
(TEAM = 'B' AND WEIGHT > 65);
(4)
SELECT *FROM PLAYER
WHERE (TEAM = 'A' OR TEAM = 'B') AND
WEIGHT > 65;
๋ฌธ์ 36. ๋ค์ ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์ ์ฝ์กฐ๊ฑด(CONSTRAINT)์ ๋ํ ์ค๋ช ์ผ๋ก ๊ฐ์ฅ ๋ถ์ ์ ํ ๊ฒ์?
์ ๋ตํ์ธ๐ผ
1) Check ์ ์ฝ์กฐ๊ฑด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ธฐ ์ํ์ฌ ํ
์ด๋ธ์ ํน์ ์นผ๋ผ์ ์ค์ ํ๋ ์ ์ฝ์ด๋ค. 2) ๊ธฐ๋ณธํค(Primary Key)๋ ๋ฐ๋์ ํ ์ด๋ธ ๋น ํ๋์ ์ ์ฝ๋ง์ ์ ์ํ ์ ์๋ค. 3) ๊ณ ์ ํค(Unique Key)๋ก ์ง์ ๋ ๋ชจ๋ ์นผ๋ผ๋ค์ Null ๊ฐ์ ๊ฐ์ง ์ ์๋ค. 4) ์ธ๋ํค(Foreign Key)๋ ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ๊ธฐ ์ํด ๊ธฐ๋ณธํค(Primary Key)๋ฅผ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ธ๋ํค๊ฐ ์ฐธ์กฐํ๋๋ก ์์ฑํ๋ค. |
๋ฌธ์ 37. ์ฃผ์ด์ง ํ ์ด๋ธ์์ SQL๋ฌธ์ ์ํํ์์ ๋ T1, T2, T3์ ๊ฒฐ๊ณผ ๊ฑด์๋ก ์๋ง์ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[SQLD_37]
COL1
--------
1
2
3
INSERT FIRST
WHEN C1 >= 2 THEN INTO T1
WHEN C1 >= 3 THEN INTO T2
ELSE INTO T3
SELECT*FROM SQLD_37;
1) 0, 1, 2 2) 2, 0, 1 3) 1, 2, 0 4) 0, 2, 1 |
๋ฌธ์ 38. ๋ฌธ์์ด ์ค m์์น์์ n๊ฐ์ ๋ฌธ์ ๊ธธ์ด์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ๋ฆฌํดํ๋ ํจ์๋ฅผ ๊ณ ๋ฅด์์ค. ์ ๋ตํ์ธ๐ผ
1) SUBSTR(STR, M, N) / SUBSTRING(STR, M, N) 2) TRIM(STR, M, N) 3) CONCAT(STR, M, N) 4) STRING_SPLIT(STR, M, N) |
๋ฌธ์ 39. ์๋์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ํ ์ด๋ธ์ด ์์ ๋ ์๋์ SQL ๊ฒฐ๊ณผ๋ก ์๋ง์ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[SQLD_39]
COL1 COL2
--------------
1 A
1 A
1 A
1 B
SELECT COUNT(COL1), COUNT(COL2)
FROM (
SELECT DISTINCT COL1, COL2
FROM SQLD_39
);
1) 1, 2 2) 2, 1 3) 2, 2 4) 3, 3 |
๋ฌธ์ 40. ๋ค์ ์ฃผ์ด์ง ํ ์ด๋ธ์ ๋ํ ์๋์ SQL๋ฌธ์ ๊ฒฐ๊ณผ ๊ฑด์๋ก ์๋ง์ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[SQLD_40]
COL1 COL2
---------------
A 100
B 200
C 300
C 400
SELECT COUNT(*)
FROM SQLD_40
GROUP BY ROLLUP(COL1), COL1;
1) 3
2) 4 3) 6 4) 8 |
๋ฌธ์ 41. ๋ค์ ์ฃผ์ด์ง SQL๋ฌธ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๋ SQL๋ฌธ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
SELECT*FROM T1
WHERE COL1 BETWEEN A AND B;
(1)
SELECT*FROM T1
WHERE COL1 >= :A AND COL1 <= :B
(2)
SELECT*FROM T1
WHERE COL1 <= :A AND COL1 >= :B
(3)
SELECT*FROM T1
WHERE COL1 >= :A OR COL1 <= :B
(4)
SELECT*FROM T1
WHERE COL1 <= :A OR COL1 <= :B
๋ฌธ์ 42. ์๋์ ๊ฐ์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์๋ค. ๊ฐ ๋ณด๊ธฐ์์์ SQL์คํ ๊ฒฐ๊ณผ๊ฐ ์๋ชป๋ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
[SQLD_42_1] [SQLD_42_2]
JOB_TITLE NAME JOB_TITLE NAME
------------------ --------------------
MANAGER A MANAGER A
CLERK B
SALESMAN C SALESMAN C
DEVELOPER D
(1) (2)
SELECT A.JOB_TITLE, A.NAME SELECT A.JOB_TITLE, A.NAME
FROM SQLD_42_1 A, SQLD_42_2 B FROM SQLD_42_1 A LEFT OUTER JOIN SQLD_42_2 B
WHERE A.JOB_TITLE = B.JOB_TITLE; ON A.JOB_TITLE = B.JOB_TITLE;
<RESULT> <RESULT>
JOB_TITLE NAME JOB_TITLE NAME
------------------ ------------------
MANAGER A DEVELOPER D
SALESMAN C
(3) (4)
SELECT A.JOB_TITLE, A.NAME SELEC A.JOB_TITLE, A.NAME
FROM SQLD_42_1 A FROM SQLD_42_1 A INNER JOIN SQLD_42_2 B
RIGHT OUTER JOIN SQLD_42_2 B ON A.JOB_TITLE = B.JOB_TITLE;
ON A.JOB_TITLE = B.JOB_TITLE;
<RESULT> <RESULT>
JOB_TITLE NAME JOB_TITLE NAME
------------------ ------------------
MANAGER A CLERK
SALESMAN C SALESMAN C
- - - - - - - - ์ฃผ๊ด์ - - - - - - - -
๋ฌธ์ 43. ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ๋ํด์ SQL์ ๊ฒฐ๊ณผ๊ฐ ์๋์ ๊ฐ์ ๋ SQL๋ฌธ์ ๋น์นธ์ ์์ฑํ์์ค.์ ๋ตํ์ธ๐ผ
[SQLD_43]
์ด๋ฆ ๋ถ์ ์ง์ฑ
๊ธ์ฌ
----------------------------
์กฐ์กฐ ๊ฒฝ์์ง์๋ถ ๋ถ์ฅ 300
์ ๋น ๊ฒฝ์์ง์๋ถ ๊ณผ์ฅ 290
์ ๊ฐ๋ ์ธ์ฌ๋ถ ๋๋ฆฌ 250
์ฌ๋ง์ ์ธ์ฌ๋ถ ๋๋ฆฌ 250
๊ด์ฐ ์์
๋ถ ์ฌ์ 230
์ฅ๋น ์์
๋ถ ์ฌ์ 220
- - - - - - - - - - - - - - - - -
SELECT( ) OVER (ORDER BY ๊ธ์ฌ DESC)
AS ์์,
์ด๋ฆ, ๋ถ์, ์ง์ฑ
, ๊ธ์ฌ
FROM SQLD_43;
[Result1]
์์ ์ด๋ฆ ๋ถ์ ์ง์ฑ
๊ธ์ฌ
-----------------------------------
1 ์กฐ์กฐ ๊ฒฝ์์ง์๋ถ ๋ถ์ฅ 300
2 ์ ๋น ๊ฒฝ์์ง์๋ถ ๊ณผ์ฅ 290
3 ์ ๊ฐ๋ ์ธ์ฌ๋ถ ๋๋ฆฌ 250
3 ์ฌ๋ง์ ์ธ์ฌ๋ถ ๋๋ฆฌ 250
5 ๊ด์ฐ ์์
๋ถ ์ฌ์ 230
6 ์ฅ๋น ์์
๋ถ ์ฌ์ 220
- - - - - - - - - - - - - - - - -
SELECT( ) OVER (ORDER BY ๊ธ์ฌ DESC)
AS ์์,
์ด๋ฆ, ๋ถ์, ์ง์ฑ
, ๊ธ์ฌ
FROM SQLD_43;
[Result2]
์์ ์ด๋ฆ ๋ถ์ ์ง์ฑ
๊ธ์ฌ
-----------------------------------
1 ์กฐ์กฐ ๊ฒฝ์์ง์๋ถ ๋ถ์ฅ 300
2 ์ ๋น ๊ฒฝ์์ง์๋ถ ๊ณผ์ฅ 290
3 ์ ๊ฐ๋ ์ธ์ฌ๋ถ ๋๋ฆฌ 250
4 ์ฌ๋ง์ ์ธ์ฌ๋ถ ๋๋ฆฌ 250
5 ๊ด์ฐ ์์
๋ถ ์ฌ์ 230
6 ์ฅ๋น ์์
๋ถ ์ฌ์ 220
โ๏ธ
๋ฌธ์ 44. ์๋์ SQL์ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ์์ค.์ ๋ตํ์ธ๐ผ
<SQL>
SELECT ROUND(3.45. 1) AS COL1 FROM DUAL;
โ๏ธ
๋ฌธ์ 45. ๋ค์ ๋ณด๊ธฐ์์ ์ค๋ช ํ๋ ์กฐ์ธ์ ๋ฌด์์ธ๊ฐ?
- Equal Join(๋๋ฑ ์กฐ์ธ)์์๋ง ๊ฐ๋ฅํ๋ค.
- ๋์ฉ๋ ์ฒ๋ฆฌ์ ์ ๋ฆฌํ๋ค.
- ๊ฐ ํ
์ด๋ธ์ INDEX๊ฐ ๋ฐ๋์ ํ์ํ ๊ฒ์ ์๋๋ค.
- ๋ฐ์ดํฐ ๊ฑด์๊ฐ ์ ์ ํ
์ด๋ธ์ ์ ํ ํ
์ด๋ธ๋ก ๋๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค.
โ๏ธ์ ๋ตํ์ธ๐ผ
๋ฌธ์ 46. ์๋ ๋ ๊ฐ์ SQL์ด ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋๋ก SQL์ ์์ฑํ์์ค.
[SQLD_46]
์ํ๋ช
์ํ์ฝ๋ ๋จ๊ฐ
-------------------------
๊ฐ A 1000
๋ D 2000
๋ค G 3000
๊ฐ B 4000
๋ E 5000
๊ฐ C 6000
๋ค H 7000
๋ F 8000
- - - - - - - - - - - - - - -
SELECT ์ํ๋ช
, SUM(๋จ๊ฐ)
FROM SQLD_46
WHERE ์ํ๋ช
= '๊ฐ'
GROUP BY ROLLUP(์ํ๋ช
);
SELECT ์ํ๋ช
, SUM(๋จ๊ฐ)
FROM SQLD_46
WHERE ์ํ๋ช
= '๊ฐ'
GROUP BY GROUPING SETS( );
โ๏ธ์ ๋ตํ์ธ๐ผ
๋ฌธ์ 47. ์๋์ ์ค๋ช ์์ ๊ดํธ์ ์๋ง์ ๊ฒ์? ์ ๋ตํ์ธ๐ผ
ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํ ๋ INSERT๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์
๋ ฅํ ์ ๋ณด ์ค์ ์๋ชป ์
๋ ฅ๋๊ฑฐ๋
๋ณ๊ฒฝ์ด ๋ฐ์ํ์ฌ ์ ๋ณด๋ฅผ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ ( )๋ฅผ ์ฌ์ฉํ๋ค.
๋ํ ํ
์ด๋ธ์ ์ ๋ณด๊ฐ ํ์ ์๊ฒ ๋์์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ์ญ์ ๋ฅผ ์ํ์ฌ DELETE๋ฅผ ์ฌ์ฉํ๋ค.
โ๏ธ
๋ฌธ์ 48. ๋ฐ์ดํฐ์ ์ ๋ ฅ/์ญ์ /์์ ๋ฑ์ DML ์ํ ํ ์์ ๋ณต๊ตฌ๋ฅผ ์ํ ๋ช ๋ น์ด๋ฅผ ์ฐ์์ค.
โ๏ธ์ ๋ตํ์ธ๐ผ
๋ฌธ์ 49. ์๋์ SQL์ ๋ํ Column Header๋ฅผ ์ ์ผ์์ค(DBMS : Oracle)
<SQL>
SELECT employee_id, DEPARTMENT_ID, SALARY AS " salary"
FROM SQLD_49
WHERE EMPLOYEE_ID < 110;
โ๏ธ์ ๋ตํ์ธ๐ผ
๋ฌธ์ 50. ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ํ ์ด๋ธ์ ๋ํ SQL๊ฒฐ๊ณผ๋ฅผ ์ ์ผ์์ค.
[SQLD_50]
COL1 COL2
--------------
1
2
3 1
4 1
5 2
6 2
7 3
8 4
9 5
10 6
- - - - - - -
SELECT COUNt(*)
FROM SQLD_50
WHERE COL1 <> 4
START WITH COL1 = 1
CONNECT BY PRIOR COL1 = COL2;
โ๏ธ์ ๋ตํ์ธ๐ผ
๐SQLD. ์ 35 ํ ๊ธฐ์ถ ๋ฌธ์ (์ด 50) - ์ ๋ต / ํด์ค
1. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : ๋ฐ์ ๊ทํ๋ฅผ ํ๋ฉด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ํด์น๋ค.
๊ตฌ๋ถ | ์ค๋ช |
๋ฐ์ ๊ทํ์ ๋์ ๋ถ์ | - ๋์คํฌ I/O๋์ด ๋ง์ ์ฑ๋ฅ์ ํ - ๊ฒฝ๋ก๊ฐ ๋๋ฌด ๋ฉ์ด ์กฐ์ธ์ผ๋ก ์ฑ๋ฅ์ ํ - ์ปฌ๋ผ์ ๊ณ์ฐํ์ฌ ์ฝ์ ๋ ์ฑ๋ฅ ์ ํ |
๋ฐ์ ๊ทํ ๊ฐ๋ | - ์์คํ ์ ์ฑ๋ฅ ํฅ์, ๊ฐ๋ฐ ๋ฐ ์ด์์ ํธ์์ฑ ๋ฑ์ ์ํด ์ ๊ทํ๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ํตํฉ, ์ค๋ณต, ๋ถ๋ฆฌํ๋ ๊ณผ์ ์ผ๋ก ์๋์ ์ผ๋ก ์ ๊ทํ ์์น์ ์๋ฐฐํ๋ ํ์ |
- ๋ฐ์ ๊ทํ๋ฅผ ์ํํ๋ฉด ์์คํ
์ ์ฑ๋ฅ์ด ํฅ์๋๊ณ ๊ด๋ฆฌ ํจ์จ์ฑ์ ์ฆ๊ฐ์ํค์ง๋ง ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ๋ฐ ์ ํฉ์ฑ์ด ์ ํ๋ ์ ์๋ค. - ๊ณผ๋ํ ๋ฐ์ ๊ทํ๋ ์คํ๋ ค ์ฑ๋ฅ์ ์ ํ์ํจ๋ค. - ๋ฐ์ ๊ทํ๋ฅผ ์ํด์๋ ์ฌ์ ์ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ์ฐ์ ์ผ๋ก ํ ์ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ๊ณผ ๋จ์ํ๋ฅผ ์ฐ์ ์ผ๋ก ํ ์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค. - ๋ฐฉ์ ๊ทํ ๋ฐฉ๋ฒ์๋ ํ ์ด๋ธ ํตํฉ, ํ ์ด๋ธ ๋ถํ , ์ค๋ณต ํ ์ด๋ธ ์ถ๊ฐ, ์ค๋ณต ์์ฑ ์ถ๊ฐ ๋ฑ์ด ์๋ค. |
|
ํ ์ด๋ธ ํตํฉ | ๋ ๊ฐ์ ํ ์ด๋ธ์์ ๋ฐ์ํ๋ ํ๋ก์ธ์ค๊ฐ ๋์ผํ๊ฒ ์์ฃผ ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ, ๋ ๊ฐ์ ํ ์ด๋ธ์ ์ด์ฉํ์ฌ ํญ์ ์กฐํ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ ํ ์ด๋ธ ํตํฉ์ ๊ณ ๋ คํ๋ค. |
2. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค : ๋ถ์ฐ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์์ ํ ๋ณด์ฅํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค.
3. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค :
์ธ๋ถ ์คํค๋ง : ์ฌ์ฉ์ ๊ด์
๊ฐ๋ ์คํค๋ง : ํตํฉ ๊ด์
๋ด๋ถ ์คํค๋ง : ๋ฌผ๋ฆฌ์ ๊ด์
4. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค : ๊ด๊ณ๋ฅผ ํ๊ธฐ๋ฒ์ ๊ด๊ณ๋ช , ๊ด๊ณ์ฐจ์, ๊ด๊ณ์ ํ์ฌ์ ์ธ ๊ฐ์ง๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
๊ด๊ณ๋ช (Membership)
๊ด๊ณ๋ช ์ ์ํฐํฐ๊ฐ ๊ด๊ณ์ ๋งบ์ด์ง ํํ ๋ปํ๋ค.
๊ด๊ณ๊ฐ ์์๋๋ ์ชฝ์ "๊ด๊ณ์์์ (The Beginning)"์ด๋ผ ์นญํ๋ฉฐ ๋ฐ๋์ชฝ์ "๊ด๊ณ๋์ (The End)"๋ผ๊ณ ์นญํ๋ค.
๋ํ ๊ด์ ์ ๋ฐ๋ผ ๋ฅ๋์ (Active)์ด๊ฑฐ๋ ์๋์ (Passive)์ผ๋ก ๋ช ๋ช ๋๋ค.
๊ด๊ณ์ฐจ์(Degree/Cardinality)
๊ด๊ณ์ฐจ์๋ ๋ ์ํฐํฐ๊ฐ ๊ด๊ณ์์ ์ํ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ปํ๋ค.
๊ด๊ณ์ ํ์ฌ์(Optionality)
๊ด๊ณ์์ ํญ์ ์ฐธ์ฌํ๋์ง ์๋๋ฉด ์ฐธ์ฌํ ์๋ ์๋์ง๋ฅผ ๋ํ๋ด๋ ๋ฐฉ๋ฒ๋ฐ๋ผ ํ์์ฐธ์ฌ ๊ด๊ณ(Mandatory), ์ ํ์ฐธ์ฌ ๊ด๊ณ(Optional)๋ก ๋๋๋ค.
๊ณ ๊ฐ๊ณผ ์ฃผ๋ฌธ ์ํฐํฐ ๊ด๊ณ๋ฅผ ์ดํด๋ณด์. 3๋ช ์ ์๋์ ๊ฐ๊ฒ์ ๋ค์ด์๋ค. ํ์ง๋ง 2๋ช ์ ์๋๋ง ์ฃผ๋ฌธ์ ์ํฌ ๊ฒฝ์ฐ๋ ์๋ค.
์ฃผ๋ฌธ์ ๊ผญ ์๋์ ์ํด์ ์ํ์ด ๋์ง๋ง, ์๋์ ์ฃผ๋ฌธ์ ์ํฌ์๋ ์๊ณ ์ ์ํฌ์๋ ์๋ค.
์ด์ฒ๋ผ ์ฃผ๋ฌธ์ ์๋์์ํด ์ํ์ด ๋ ์๋ ์๊ณ ์ ๋ ์๋ ์์ด์ ์ ํ์ฐธ์ฌ ๊ด๊ณ์ด๊ณ ์ฃผ๋ฌธ๋ ํญ๋ชฉ์ ๊ผญ ์๋์ ์ํด์ ์ํ์ด ๋์ด์ ธ์ผ ํ๋ฏ๋ก ํ์์ฐธ์ฌ ๊ด๊ณ์ด๋ค.
์ ํ์ฐธ์ฌ๊ด๊ณ์ผ ๊ฒฝ์ฐ ERD์์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ์ ์์ ์ ํ์ฐธ์ฌํ๋ ์ํฐํฐ์ชฝ์ ์์ ํ์ํด์ผํ๋ค.
5. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค :
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค | |
์ฅ ์ | -์ง์ญ ์์น์ฑ, ์ ์ฆ์ ์์คํ
์ฉ๋ ํ์ฅ -์ ๋ขฐ์ฑ๊ณผ ๊ฐ์ฉ์ฑ -ํจ์ฉ์ฑ๊ณผ ์ตํต์ฑ -๋น ๋ฅธ ์๋ต์๋์ ํต์ ๋น์ฉ ์ ๊ฐ -๋ฐ์ดํฐ์ ๊ฐ์ฉ์ฑ๊ณผ ์ ๋ขฐ์ฑ ์ฆ๊ฐ -์์คํ ๊ท๋ชจ์ ์ ์ ํ ์กฐ์ -๊ฐ ์ง์ญ ์ฌ์ฉ์์ ์๊ตฌ ์์ฉ ์ฆ๋ |
๋จ ์ | -์ํํธ์จ์ด ๊ฐ๋ฐ ๋น์ฉ -์ค๋ฅ์ ์ ์ฌ์ฑ ์ฆ๋ -์ฒ๋ฆฌ๋น์ฉ์ ์ฆ๋ -์ค๊ณ, ๊ด๋ฆฌ์ ๋ณต์ก์ฑ๊ณผ ๋น์ฉ -๋ถ๊ท์นํ ์๋ต ์๊ณ -ํต์ ์ ์ด๋ ค์ -๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ํ ์ํ |
6. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : '๊ฐ' ๋ชจ๋ธ์ ์๊ฐ๊ณผ๋ชฉ ์ํฐํฐ๋ฅผ ๋ณด๋ฉด 1์ ๊ทํ์ ์๋ฐํ ๊ฒ์ด ๋ณด์ธ๋ค.
7. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : ํ ์ด๋ธ ์กฐ์ธ ์กฐ๊ฑด ๊ณ์ฐ( n - 1 )
Student, Grade๋ฅผ ๋น์๋ณ์ ๊ด๊ณ๋ก ์ค๊ณํ๋ฉด Grade, Module์ ์๋ณ์ ๊ด๊ณ์ด๋ฏ๋ก Student, Module์ ์ค๊ณ ํ ๋ ์คํ๋ ค ์กฐ์ธ์ ๋ณต์ก์ฑ์ด ์ปค์ง ์ ์๋ค.
์๋ณ์ ๋ถ๋ฅ | ์๋ณ์ | ์ค๋ช |
๋ํ์ฑ์ฌ๋ถ |
์ฃผ์๋ณ์ | - ์ํฐํฐ ๋ด์์ ๊ฐ ํ์ ๊ตฌ๋ถํ ์ ์๋ ๊ตฌ๋ถ์์ด๋ฉฐ, ํ ์ํฐํฐ์ ์ฐธ์กฐ๊ด๊ณ๋ฅผ ์ฐ๊ฒฐํ ์ ์๋ ์๋ณ์ (ex. ์ฌ์๋ฒํธ, ๊ณ ๊ฐ๋ฒํธ) |
๋ณด์กฐ์๋ณ์ | - ์ํฐํฐ ๋ด์์ ๊ฐ ํ์ ๊ตฌ๋ถํ ์ ์๋ ๊ตฌ๋ถ์์ด๋ ๋ํ์ฑ์ ๊ฐ์ง์ง ๋ชปํด ์ฐธ์กฐ๊ด๊ณ ์ฐ๊ฒฐ์ ๋ชปํจ(ex. ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ) | |
์ค์ค๋ก ์์ฑ์ฌ๋ถ |
๋ด๋ถ์๋ณ์ | - ์ํฐํฐ ๋ด๋ถ์์ ์ค์ค๋ก ๋ง๋ค์ด์ง๋ ์๋ณ์(ex. ๊ณ ๊ฐ๋ฒํธ) |
์ธ๋ถ์๋ณ์ | - ํ ์ํฐํฐ์์ ๊ด๊ณ๋ฅผ ํตํด ํ ์ํฐํฐ๋ก๋ถํฐ ๋ฐ์์ค๋ ์๋ณ์(ex. ์ฃผ๋ฌธ์ํฐํฐ์ ๊ณ ๊ฐ๋ฒํธ) | |
์์ฑ์ ์ | ๋จ์ผ์๋ณ์ | - ํ๋์ ์์ฑ์ผ๋ก ๊ตฌ์ฑ๋ ์๋ณ์(ex. ๊ณ ๊ฐ์ํฐํฐ์ ๊ณ ๊ฐ๋ฒํธ ) |
๋ณตํฉ์๋ณ์ | - ๋ ์ด์์ ์์ฑ์ผ๋ก ๊ตฌ์ฑ๋ ์๋ณ์(ex. ์ฃผ๋ฌธ์์ธ์ํฐํฐ์ ์ฃผ๋ฌธ๋ฒํธ+์์ธ์๋ฒ) | |
๋์ฒด์ฌ๋ถ | ๋ณธ์ง์๋ณ์ | - ์ ๋ฌด์ ์ํด ๋ง๋ค์ด์ง๋ ์๋ณ์(ex. ๊ณ ๊ฐ๋ฒํธ) |
์ธ์กฐ์๋ณ์ | - ์ ๋ฌด์ ์ผ๋ก ๋ง๋ค์ด์ง์ง๋ ์์ง๋ง ์์กฐ์๋ณ์๊ฐ ๋ณต์กํ ๊ตฌ์ฑ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ธ์์ ์ผ๋ก ๋ง๋ ์๋ณ์(ex. ์ฃผ๋ฌธ์ํฐํฐ์ ์ฃผ๋ฌธ๋ฒํธ(๊ณ ๊ฐ๋ฒํธ+์ฃผ๋ฌธ๋ฒํธ+์๋ฒ)) |
8. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : ์ธ๋ํค๊ฐ ์ค๊ณ๋์ด ์์ง๋ง ์ธ๋ฑ์ค๊ฐ ์๋ ์ํ๋ผ๋ฉด ์ ๋ ฅ/์ญ์ /์์ ์ ๋ถํ๊ฐ ๋ ์๊ธด๋ค.
9. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค : ROW์ ์ ๋ณด๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด ํ๋ ์ด์์ ๋ฐ์ดํฐ ๋ธ๋ก์ SCANํด์ผํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๊ฐ์๋ ์ ์๋ค.
๊ตฌ๋ถ
|
Row Chaining
|
Row Migration
|
์ ์
|
ํ๋์ Row๋ฅผ ํ๋์ ๋ธ๋ก์ ์ ์ฅํ ์ ์์ด์ ์ฌ๋ฌ ๋ธ๋ก์ ๊ฑธ์ณ์ ์ ์ฅํ๋ ํ์
|
Update๋ก ์ธํ์ฌ ๋์ด๋๋ ๊ณต๊ฐ์ ์ ์ฅํ ๊ณต๊ฐ์ด ์์ด์ ๋ค๋ฅธ ๋ธ๋ก์ผ๋ก Row๋ฅผ ์ฎ๊ธฐ๋ ํ์
|
ํน์ฑ
|
Initial Row Piece(ํ ์กฐ์)์ Row Pointer๋ก ๋ธ๋ก ๋ด์ ์ ์ฅ๋จ
|
๊ธฐ์กด ๋ธ๋ก์๋ Migration๋๋ ๋ฐ์ดํฐ์ row header์ ๋ธ๋ก ์ฃผ์๊ฐ์ ๊ฐ๊ฒ ๋๊ณ , ์๋ก์ด ๋ธ๋ก์๋ Migration๋๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋จ
|
๋ฌธ์ ์
|
Row์ ์ ๋ณด๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด ํ๋ ์ด์์ ๋ฐ์ดํฐ ๋ธ๋ก์ Scanํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๊ฐ์๋จ
|
Migration๋ Row๋ฅผ ์ฝ๊ธฐ ์ ์ ๊ธฐ์กด ๋ธ๋ก์์ ํค๋๋ฅผ ํตํด Migration๋ Row๋ฅผ ์ฝ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ๊ฐ์๋จ
|
ํด๊ฒฐ์ฑ
|
๋ธ๋ก์ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ๋ง๋ ๋ค.
|
-PCTFREE๋ฅผ ํฌ๊ฒ ์ค์
-๊ฐ์ฒด๋ฅผ Exportํ๊ณ ์ญ์ ํ ํ import
-๊ฐ์ฒด๋ฅผ Migrationํ๊ณ
Truncate
|
10. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค : ํต๊ณ ํ ์ด๋ธ ์ถ๊ฐ๋ ํ ์ด๋ธ ์ถ๊ฐ์ ํด๋นํ๋ค.
๊ธฐ๋ฒ๋ถ๋ฅ
|
๊ธฐ๋ฒ
|
๋ด์ฉ
|
ํ
์ด๋ธ
๋ณํฉ
|
1:1 ๊ด๊ณ ํ
์ด๋ธ ๋ณํฉ
|
1:1 ๊ด๊ณ๋ฅผ ํตํฉํ์ฌ ์ฑ๋ฅํฅ์
|
1:M ๊ด๊ณ ํ
์ด๋ธ ๋ณํฉ
|
1:M ๊ด๊ณ๋ฅผ ํตํฉํ์ฌ ์ฑ๋ฅํฅ์
|
|
์ํผ/์๋ธํ์
ํ
์ด๋ธ ๋ณํฉ
|
์ํผ/์๋ธ ๊ด๊ณ๋ฅผ ํตํฉํ์ฌ ์ฑ๋ฅ ํฅ์
|
|
ํ
์ด๋ธ
๋ถํ
|
์์ง๋ถํ
|
์ปฌ๋ผ ๋จ์์ ํ
์ด๋ธ์ ๋์คํฌ I/O๋ฅผ ๋ถ์ฐ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ
์ด๋ธ์ 1:1๋ก ๋ถ๋ฆฌํ์ฌ ์ฑ๋ฅํฅ์(ํธ๋์ญ์
์ ์ฒ๋ฆฌ๋๋ ์ ํํ์
์ด ์ ํ๋์ด์ผ ํจ)
|
์ํ๋ถํ
|
ํ(๋ ์ฝ๋)๋จ์๋ก ์ง์ค ๋ฐ์๋๋ ํธ๋์ญ์
์ ๋ถ์ํ์ฌ ๋์คํฌ I/O ๋ฐ ๋ฐ์ดํฐ ์ ๊ทผ์ ํจ์จ์ฑ์ ๋์ฌ ์ฑ๋ฅ์ ํฅ์ํ๊ธฐ ์ํด ํ ๋จ์๋ก ํ
์ด๋ธ์ ์ชผ๊ฐฌ
|
|
ํ
์ด๋ธ
์ถ๊ฐ
|
์ค๋ณตํ
์ด๋ธ ์ถ๊ฐ
|
๋ค๋ฅธ ์
๋ฌด์ด๊ฑฐ๋ ์๋ฒ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ ๋์ผํ ํ
์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์ค๋ณตํ์ฌ ์๊ฒฉ ์กฐ์ธ์ ์ ๊ฑฐํ๊ณ ์ฑ๋ฅ์ ํฅ์
|
ํต๊ณํ
์ด๋ธ ์ถ๊ฐ
|
SUM, AVG ๋ฑ์ ๋ฏธ๋ฆฌ ์ํํ์ฌ ๊ณ์ฐํด ๋ ์ผ๋ก์จ ์กฐํ ์ ์ฑ๋ฅ์ ํฅ์
|
|
์ด๋ ฅํ
์ด๋ธ ์ถ๊ฐ
|
์ด๋ ฅํ
์ด๋ธ ์ค์์ ๋ง์คํฐ ํ
์ด๋ธ์ ์กด์ฌํ๋ ๋ ์ฝ๋๋ฅผ ์ค๋ณตํ์ฌ ์ด๋ ฅ ํ
์ด๋ธ์ ์กด์ฌํ๋ ๋ฐฉ๋ฒ
|
11. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : NATURAL JOIN์์ EMP.DEPTNO์ ๊ฐ์ด OWNER ๋ช ์ ์ฌ์ฉํ๋ฉด ์๋ฌ ๋ฐ์
12. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค : 1,2,3๋ฒ์ 2๊ฐ์ ํ ์ด๋ธ์์ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง๋ ์นผ๋ผ์ ๋ํด์ ์กฐ์ธ์ ์ํํ๋ ๋ฐฉ์์ด๊ณ 4๋ฒ์ ๋ ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ํด์ ์กฐ์ธ์ ์ํํ๋ CROSS JOIN ๋ฐฉ์์.
13. ์ ๋ต : 1
๐๋ฌธ์ ํ์ธ
ํด์ค : UNION์ ์ค๋ณต๋ ํ์ ์ ๊ฑฐํ๊ณ ์ ๋ ฌํ๋ค. UNION ALL์ ํฉ์งํฉ
14. ์ ๋ต : 1
๐๋ฌธ์ ํ์ธ
ํด์ค : 1๋ฒ์ 200<= A <=400, 200<= B <=400์ ์๋ฏธ์ด๊ณ ๋๋จธ์ง๋ ๋ชจ๋ COL1<=200 && COL2>=200๋ฅผ ์๋ฏธํจ
15. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : ACID
Atomicity(์์์ฑ)
Consistency(์ผ๊ด์ฑ)
Isolation(๊ณ ๋ฆฝ์ฑ)
Durability(์์์ฑ)
16. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค : COMMIT์ด ์๋ฃ๋์ง ์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๊ณ ์น ์ ์๋ค.(๊ณ ๋ฆฝ์ฑ)
17. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : NULL์ ์ค๋ก์ง IS NULL, IS NOT NULL๋ก๋ง ์กฐํ๊ฐ ๊ฐ๋ฅ
18. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : LIKE ์ฐ์ฐ์ผ๋ก %๋ _๊ฐ ๋ค์ด๊ฐ ๋ฌธ์๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด์๋ ESCAPE ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ์ _๋ % ์์ ESCAPE๋ก ํน์ ๋ฌธ์๋ฅผ ์ง์ ํ๋ฉด ๊ฒ์ํ ์ ์๋ค.
19. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : ROWNUM = 1์ ์ฌ์ฉ ๊ฐ๋ฅ ํ์ง๋ง ROWNUM = 2์ธ ๊ฒฝ์ฐ๋ ๋ฐ์ดํฐ๊ฐ
์ถ์ถ๋์ง ์๋๋ค.
(ROWNUM์ WHERE์ ์ ๋ง์กฑํ๋ ๋ ์ฝ๋์ ๋ถ์ด๋ ์๋ฒ์ด๋ฏ๋ก ํด์ํด ๋ณด๋ฉด,
ROWNUM = 2๋, ์ฒ์ ํ ๊ฑด ์ถ์ถํด์ ROWNUM์ด 2์ธ์ง ๋น๊ตํ๋ ๊ฒ์ด๋ค.
ํ์ง๋ง ์ฒ์ ๋ ์ฝ๋๋ ROWNUM์ด 1์ด๋ฉฐ, ์กฐ๊ฑด์ ๋ง์ง ์๋ค.
20. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค :
๊ธ์ก1 : 300 -> NVL(=ISNULL) A๊ฐ NULL์ด๋ฉด B๋ก ๊ฐ๊ณ , ์๋๋ฉด A๋ฅผ ์ถ๋ ฅ
๊ธ์ก2 : 300 -> COALESCE NULL์ด ์๋ ์ต์ด๊ฐ ์ถ๋ ฅ
๊ธ์ก3 : NULL -> NULLIF A์ B์ ๊ฐ์ด ๊ฐ์ผ๋ฉด NULL, ์๋๋ฉด A๋ฅผ ์ถ๋ ฅ
๊ธ์ก4 : 300 -> CASE WHEN A IS NOT NULL THEN A ELSE B END : A๊ฐ NOT NULL์ด๋ฉด A ์ถ๋ ฅ, ์๋๋ฉด B ์ถ๋ ฅ
21. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : SQL server (EXCEPT) / Oracle (MINUS)
22. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค :
UNBOUNDED PRECEDING์ end point์์ ์ฌ์ฉ๋ ์ ์๋ค.
RANGE BETWEEN start_point AND end_point
-start point๋ end_point์ ๊ฐ๊ฑฐ๋ ์์ ๊ฐ์ด ๋ค์ด๊ฐ๋ค.
-Default๊ฐ์ RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW๊ฐ ๋๋ค.
-UNBOUNDED PRECEDING : start_point๋ง ๋ค์ด๊ฐ ์ ์์ผ๋ฉฐ ํํฐ์ ์ first row๊ฐ ๋๋ค.
-UNBOUNDED FOLLOWING : end_point๋ง ๋ค์ด๊ฐ ์ ์์ผ๋ฉฐ ํํฐ์ ์ last_row๊ฐ ๋๋ค.
-CURRENT ROW : start_point, end_point ๋ ๋ค ๊ฐ๋ฅํ๋ค. ์๋์ฐ๋ CURRENT ROW์์ startํ๊ฑฐ๋ endํ๋ค.
23. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค :์ธ๋ฑ์ค ์ค B-ํธ๋ฆฌ ์ธ๋ฑ์ค๋ Equal ์กฐ๊ฑด๋ฟ ์๋๋ผ BETWEEN, > ๊ณผ ๊ฐ์ ์ฐ์ฐ์๋ก ๊ฒ์ํ๋ ๋ฒ์ ๊ฒ์์๋ ์ฌ์ฉ๋ ์ ์๋ค.
์ธ๋ฑ์ค์ ํน์ง |
- ์ธ๋ฑ์ค๋ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๋๋ก ๋๋ ์ฑ ์ ์์ธ๊ณผ ์ ์ฌํ ๊ฐ๋ ์ด๋ค. |
- ์ธ๋ฑ์ค๋ ํ ์ด๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ ํ์ ์ผ๋ก ์์ฑํ ์ ์๋ ๊ตฌ์กฐ์ด๋ค. |
- ์ธ๋ฑ์ค์ ๊ธฐ๋ณธ์ ์ธ ๋ชฉ์ ์ ๊ฒ์ ์ฑ๋ฅ์ ์ต์ ํ์ด๋ค. |
- ๊ฒ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ฑ์ค๋ฅผ ํตํด ํจ๊ณผ์ ์ผ๋ก ์ฐพ์ ์ ์๋๋ก ๋๋๋ค. |
- DML์์ ์ ํ ์ด๋ธ๊ณผ ์ธ๋ฑ์ค๋ฅผ ํจ๊ป ๋ณ๊ฒฝํ๋ฏ๋ก ๋๋ ค์ง๋ ๋จ์ ์ด ์กด์ฌํ๋ค. |
- ์ธ๋ฑ์ค ๋ฐ์ดํฐ๋ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์นผ๋ผ์ ๊ฐ์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ค. |
24. ์ ๋ต : 1
๐๋ฌธ์ ํ์ธ
ํด์ค :
์๋ธ์ฟผ๋ฆฌ | ์ค๋ช |
SELECT ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ |
์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ ํ ํ, ํ ์ปฌ๋ผ๋ง์ ๋ฐํํ๋ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ๋งํฉ๋๋ค. |
FROM ์ธ๋ผ์ธ *๋ทฐ |
์๋ธ์ฟผ๋ฆฌ๊ฐ FROM ์ ์ ์ฌ์ฉ๋๋ฉด ๋์ ์ผ๋ก ์์ฑ๋ ํ
์ด๋ธ์ธ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ธ๋ผ์ธ ๋ทฐ๋ SQL ๋ฌธ์ด ์คํ๋ ๋๋ง ์์์ ์ผ๋ก ์์ฑ๋๋ ๋์ ์ธ ๋ทฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํด๋น ์ ๋ณด๊ฐ ์ ์ฅ๋์ง ์์ต๋๋ค. |
WHERE / HAVING ์๋ธ์ฟผ๋ฆฌ |
๊ทธ๋ฃนํจ์์ ํจ๊ป ์ฌ์ฉ๋ ๋ ๊ทธ๋ฃนํ๋ ๊ฒฐ๊ณผ์ ๋ํด ๋ถ๊ฐ์ ์ธ ์กฐ๊ฑด์ ์ฃผ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค. |
๊ตฌ๋ถ | ์ค๋ช |
*๋ทฐ ๊ฐ๋
VIEW |
ํ
์ด๋ธ์ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ฐ๋ฉด, ๋ทฐ๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์๋ค. ์ง์์์ ๋ทฐ๊ฐ ์ฌ์ฉ๋๋ฉด ๋ทฐ ์ ์๋ฅผ ์ฐธ์กฐํด์ DBMS ๋ด๋ถ์ ์ผ๋ก ์ง์๋ฅผ ์ฌ์์ฑํ์ฌ ์ง์๋ฅผ ์ํ ๋ทฐ๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ง๋ง ํ ์ด๋ธ์ด ์ํํ๋ ์ญํ ์ ์ํํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ํ ์ด๋ธ์ด๋ผ๊ณ ๋ ํ๋ค. |
๋ ๋ฆฝ์ฑ | ํ ์ด๋ธ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ๋ทฐ๋ฅผ ์ฌ์ฉํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝํ์ง ์์๋ ๋๋ค. |
ํธ๋ฆฌ์ฑ | ๋ณต์กํ ์ง์๋ฅผ ๋ทฐ๋ก ์์ฑํจ์ผ๋ก์จ ๊ด๋ จ ์ง์๋ฅผ ๋จ์ํ๊ฒ ์์ฑํ ์ ์๋ค. |
๋ณด์์ฑ | ์จ๊ธฐ๊ณ ์ถ์ ์ ๋ณด๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ, ๋ทฐ๋ฅผ ์์ฑํ ๋ ํด๋น ์ปฌ๋ผ์ ๋นผ๊ณ ์์ฑํ์ฌ ์ ๋ณด๋ฅผ ์จ๊ธธ ์ ์๋ค. |
25. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค : ์์ธ์ฒ๋ฆฌ๋ ํ์๊ฐ ์๋๋ค.
26. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : Lock/Unlock์ ๋ณํ์ฑ ์ ์ด(๋์์ฑ) ๊ธฐ๋ฒ์ด๋ค.
๋ฌด๊ฒฐ์ฑ : ๋ฐ์ดํฐ ์์ ๊ฐฑ์ ์ผ๋ก๋ถํฐ ๋ณดํธํด์ผ ํ๋ ๊ฒ.
์ ์ฝ์กฐ๊ฑด์ ๋ฃ์ด์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ฑฐ๋, Triger ๋ก์ง ์์ ๊ฒ์ฌ ๊ธฐ๋ฅ์ ๋ฃ์ ์๋ ์๊ณ , ๊ฐ๋ฐ์์ ์ฝ๋ฉ์์ ๋ก์ง์ ๋ฃ์ ์๋ ์๋ค.
27. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : MANAGER_ID IS NULL ๋ก ์์ํ๊ธฐ ๋๋ฌธ์ ๋ถ๋ชจ์์ ์์์ผ๋ก ์กฐํํ๋ ์ ๋ฐฉํฅ์ด๋ค.
28. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : _ (ํ๊ธ์), A%(A๋ก ์์ํ๋), %A(A๋ก ๋๋๋)
29. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : CLERKํ + K๋ก ์์ํ๋ ์ฐ๋ด 3000์ด์ ๋ฐํ
30. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : CHAR(10)์ผ๋ก ์นผ๋ผ์ ์์ฑํ๊ณ 8๊ฐ์ ๋ฌธ์๋ฅผ ์ ๋ ฅํ๋ฉด ๋๋จธ์ง 2๊ฐ๋ ๊ณต๋ฐฑ์ผ๋ก ์ ๋ ฅ๋๋ค. VARCHAR2๋ ๊ฐ๋ณ๊ธธ์ด ๋ฌธ์์ด ํ์ ์ผ๋ก ์ ๋ ฅํ ํฌ๊ธฐ๋งํผ ํ ๋น๋๋ค.
31. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : 2๋ฒ๋ง 5๋ฅผ ๋ฐํํ๊ณ ๋๋จธ์ง๋ '05'๋ฅผ ๋ฐํ
SUBSTR ๋ฌธ์์ด ์ฌ๋ผ์ด์ฑ -> '20190504'์ 5๋ฒ์งธ '0'์์ 2๋ฒ์งธ๊น์ง -> '05'
EXTRACT (YEAR/MONTH/DAY FROM SYSDATE) ์ฐ,์,์ผ์ ๋ฝ์์ ์ถ๋ ฅ -> 5(๋ฌธ์์ด ์๋)
CONCAT ๋ฌธ์์ด ๊ฒฐํฉ -> '05'
TRIM ๊ณต๋ฐฑ ์ ๊ฑฐ -> '05'
32. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค :
UPPER ๋๋ฌธ์๋ก ๋ณํ -> 'EBAC'
RTRIM ์ค๋ฅธ์ชฝ ๊ณต๋ฐฑ ์ ๊ฑฐ -> ' EBAC'
SUBSTR ๋ฌธ์์ด ์ฌ๋ผ์ด์ฑ -> 'ABCEBACED'์ 4๋ฒ์งธ 'EBACED'์์ 4๋ฒ์งธ๊น์ง -> 'EBAC'
CONCAT ๋ฌธ์์ด ๊ฒฐํฉ -> 'EBAC'
33. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค : ๋ค์์ 4๋ฒ์งธ ์๋ฆฌ๊ฐ์ธ 6๋ถํฐ 2๊ฐ ๋ฐํ -> 67
34. ์ ๋ต : 1
๐๋ฌธ์ ํ์ธ
ํด์ค :
๋จ์ผํ ์๋ธ์ฟผ๋ฆฌ
-์๋ธ์ฟผ๋ฆฌ์ ์คํ ๊ฒฐ๊ณผ๊ฐ ํญ์ 1๊ฑด ์ดํ์ธ ์๋ธ์ฟผ๋ฆฌ
-ํญ์ ๋น๊ต์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉ๋๋ค.
-๋น๊ต์ฐ์ฐ์ ๋ค์๋ ๋จ์ผํ์ด ์์ผ ํ๋๋ฐ ๋ค์ GROUP BY DEPT๋ ๋ค์คํ ํจ์๋ก ๋ฉํฐํ์ ๋ฐํํ์ฌ ์๋ฌ๊ฐ ๋ฐ์ํจ.
๋ค์คํ ์๋ธ์ฟผ๋ฆฌ
-์๋ธ์ฟผ๋ฆฌ์ ์คํ ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฌ ๊ฑด์ธ ์๋ธ์ฟผ๋ฆฌ
-๋ฉ์ธ ์ฟผ๋ฆฌ์ ์กฐ๊ฑด ์ ์ ์ฌ๋ฌ ์นผ๋ผ์ ๋์์ ๋น๊ตํ ์ ์๋ค.
-์๋ธ์ฟผ๋ฆฌ์ ๋ฉ์ธ์ฟผ๋ฆฌ์ ์นผ๋ผ ์์ ์นผ๋ผ ์์๊ฐ ๋์ผํด์ผ ํ๋ค.
35. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : ์ฐ์ฐ์ ์ฐ์ ์์์ ๋ฐ๋ผ ๋ชธ๋ฌด๊ฒ 65์ธ ๋ชจ๋ ์ฌ๋์ ๋ฝ๊ณ A OR B์ธ ํ๋ ๋ฝ์
36. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : ๊ณ ์ ํค๋ก ์ง์ ๋ ๋ชจ๋ ์นผ๋ผ์ ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ์ง ์์ง๋ง NULL๊ฐ์ ๊ฐ์ง ์ ์๋ค.
37. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : ๋ค์คํ ์ ๋ ฅ ์ฟผ๋ฆฌ๋ฌธ์ผ๋ก Case๋ฌธ๊ณผ ๋์ผํ๊ฒ ์ํ๋๋ฉฐ WHEN์ ๋ง์กฑํ๋ฉด ์ข ๋ฃํ๋ค.
๊ทธ๋์ T1ํ์๋ 2, 3 T2ํ์๋ NULL, T3ํ์๋ 1์ด ์ ๋ ฅ๋๋ค.
38. ์ ๋ต : 1
๐๋ฌธ์ ํ์ธ
ํด์ค : STRING_SPLIT : ์กฐํ๋ skills ์ปฌ๋ผ์ ์ผํ(',') ๊ตฌ๋ถ์๋ฅผ ์๋ผ์ ํด๋น ๊ฐ์๋งํผ ํ์ผ๋ก ๋ณํํ๋ค.
FROM์ ์์ ํด๋น ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
39. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : FROM์ ์์ DISTINCT ๋ช ๋ น์ด๋ก ์ค๋ณต๋ COL1, COL2๊ฐ์ ์ ์ธ๋์ด COL1, COL2๊ฐ (1, A), (1,B)์ธ 2๊ฐ์ ํ๋ง ๋ฐํ๋๊ณ ๊ฐ๊ฐ COUNT๊ฐ 2๋ฅผ ๋ฐํํ๋ค.
40. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : a ๊ธฐ์ค ์ง๊ณ ๋๋ฒ ํ ๊ฒฐ๊ณผ
"๋กค์
์ ํ๋ฉด ์ด๊ณ๊ฐ ๋์จ๋ค"
๋กค์
์ ๊ดํธ ์์ ํญ๋ชฉ๋ค์ ์ค๋ฅธ์ชฝ๋ถํฐ ํ๋์ฉ ์ง์๋๊ฐ๋ฉด์ ์ง๊ณํ๋ค.
์๋ฅผ ๋ค๋ฉด ROLLUP(a, b) ๋
1. (a, b) ํฉ๊ณ
2. (a) ํฉ๊ณ
3. () ํฉ๊ณ
์ด๋ ๊ฒ 3๊ฐ์ง ํํ์ ์ง๊ณ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ๋๋ค.
ROLLUP(a), a ๋ฅผ ๋ณด๋ฉด
1. (a), a
2. (), a
์ด๋ ๊ฒ ๋๊ฐ์ง ํํ์ ์ง๊ณ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ๋๋ค.
a ๊ฐ ๋๋ฒ ๋์ค๋ ํ๋ฒ ๋์ค๋ ๋ค ๊ฐ์ a ๊ธฐ์ค ์ง๊ณ ๊ฒฐ๋ก ์ a ๊ธฐ์ค ์ง๊ณ ๋๋ฒ ํ ๊ฒฐ๊ณผ
41. ์ ๋ต : 1
๐๋ฌธ์ ํ์ธ
ํด์ค :
์ฐ์ฐ์ | ์ฐ์ฐ์์ ์๋ฏธ |
BETWEEN a AND b | a์ b์ ๊ฐ ์ฌ์ด์ ์์ผ๋ฉด ๋๋ค. (a์ b์ ๊ฐ์ด ํฌํจ๋จ) :a<=COL<=B |
IN(list) | ๋ฆฌ์คํธ์ ์๋ ๊ฐ ์ค์์ ์ด๋ ํ๋๋ผ๋ ์ผ์นํ๋ฉด ๋๋ค. |
LIKE '๋น๊ต๋ฌธ์์ด' | ๋น๊ต๋ฌธ์์ด๊ณผ ํํ๊ฐ ์ผ์นํ๋ฉด ๋๋ค. |
IS NULL | NULL ๊ฐ์ธ ๊ฒฝ์ฐ |
42. ์ ๋ต : 2
๐๋ฌธ์ ํ์ธ
ํด์ค : LEFT OUTER JOIN ์ด๋ฏ๋ก SQLD_42_1 ์ปฌ๋ผ์ ๋ฐ์ดํฐ๊ฐ ๋ค ์ถ๋ ฅ๋์ด์ผ ํ๋ค.
- - - - - - - - ์ฃผ๊ด์ - - - - - - - -
43. ์ ๋ต : RANK(), ROW_NUMBER()
๐๋ฌธ์ ํ์ธ
ํด์ค : ๊ทธ๋ฃน ๋ด ์์ํจ์
RANK() : ์ค๋ณต๊ฐ์ ์ค๋ณต๋ฑ์, ๋ฑ์ ๊ฑด๋๋(1์, 1์, 3์, 4์)
DENSE_RANK() : ์ค๋ณต๊ฐ์ ์ค๋ณต๋ฑ์, ๋ฑ์ ์ ๊ฑด๋๋(1์, 1์, 2์, 2์)
ROW_NUMBER() : ์ค๋ณต๊ฐ์ด ์์ด๋ ๊ณ ์ ๋ฑ์ ๋ถ์ฌ(1์, 2์, 3์, 4์)
44. ์ ๋ต : 3.5
๐๋ฌธ์ ํ์ธ
ํด์ค : ROUND ํจ์์ ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ์ธ 3.45๋ฅผ ์์์ ์ฒซ์งธ ์๋ฆฌ๊น์ง ๋ฐ์ฌ๋ฆผ
45. ์ ๋ต : HASH JOIN
๐๋ฌธ์ ํ์ธ
ํด์ค :
HASH JOIN ์ด๋? |
-์กฐ์ธ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ์๋ ์ฌ์ฉํ ์ ์๋ค. |
-ํด์ ํจ์๋ฅผ ์ด์ฉํ์ฌ ์กฐ์ธ์ ์ํํ๊ธฐ ๋๋ฌธ์ '='๋ก ์ํํ๋ ์กฐ์ธ์ผ๋ก ๋๋ฑ ์กฐ๊ฑด์๋ง ์ฌ์ฉ๊ฐ๋ฅ |
-ํด์ ํจ์๊ฐ ์ ์ฉ๋ ๋ ๋์ผํ ๊ฐ์ ํญ์ ๊ฐ์ ๊ฐ์ผ๋ก ํด์ฑ๋จ์ด ๋ณด์ฅ๋๋ค. |
-HASH JOIN ์์
์ ์ํํ๊ธฐ ์ํด ํด์ ํ
์ด๋ธ์ ๋ฉ๋ชจ๋ฆฌ์ ์์ฑํด์ผ ํ๋ค. |
-๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌํ ์ ์๋ ์์ญ์ ํฌ๊ธฐ๋ณด๋ค ์ปค์ง๋ฉด ์์ ์์ญ(๋์คํฌ)์ ํด์ ํ ์ด๋ธ์ ์ ์ฅํ๋ค. |
-HASH JOIN์ ํ ๋๋ ๊ฒฐ๊ณผ ํ์ ์๊ฐ ์ ์ ํ ์ด๋ธ์ ์ ํ ํ ์ด๋ธ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. |
-์ ํ ํ ์ด๋ธ์ Build input์ด๋ผ ํ๋ฉฐ, ํํ ํ ์ด๋ธ์ Prove input์ด๋ผ ํ๋ค. |
46. ์ ๋ต : ์ํ๋ช , ()
๐๋ฌธ์ ํ์ธ
ํด์ค :
47. ์ ๋ต : UPDATE
๐๋ฌธ์ ํ์ธ
ํด์ค : UPDATE ~ SET ( ์์ )
INSERT INTO (์ ๋ ฅ)
DELETE (์ญ์ )
48. ์ ๋ต : ROLLBACK
๐๋ฌธ์ ํ์ธ
ํด์ค : ๋ณต๊ตฌ๋ช ๋ น์ด
49. ์ ๋ต : EMPLOYEE_ID, DEPARTMENT_ID, salary
๐๋ฌธ์ ํ์ธ
ํด์ค :* ๋ณ์นญ์ด ์๋ ์นผ๋ผ์ ๋๋ฌธ์๋ก ๋ฐ๋๊ณ , ๋ณ์นญ์ด ์๋ ์นผ๋ผ์ ๊ทธ๋๋ก ์ฌ์ฉ
(SQL Server์ ๊ฒฝ์ฐ๋ ๋ณ์นญ์ด ์๋ ์นผ๋ผ๋ ๊ทธ๋๋ก ์ฌ์ฉ)
50. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค : ์ ํ ์ด๋ธ์์ ๊ณ์ธตํ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ก ์ด 5๊ฑด(1,3,7,4,8)์ด ์กฐํ๋๋ฉด ์ฌ๊ธฐ์ WHERE ์กฐ๊ฑด์ ์ธ COL1<>์ธ 4๋ฒ์งธ ํ์ด ์ ์ธ๋์ด ์ด 4๊ฑด์ด ๋์จ๋ค.
sqld 35ํ ๊ธฐ์ถ๋ฌธ์ ๋ณต์ / ์ ๋ต ์ถ์ฒ : ๋ฐ์ดํฐ ์ ๋ฌธ๊ฐ ํฌ๋ผ
'IT์๊ฒฉ์ฆ ๊ณต๋ถ > SQLD ๊ธฐ์ถ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] 38ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต ) + ํด์ค์ถ๊ฐ (24) | 2022.05.25 |
---|---|
[SQLD] 39ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต,ํด์คํฌํจ ) (62) | 2022.05.19 |
[SQLD] 34ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต,ํด์คํฌํจ ) (19) | 2022.04.26 |
[SQLD] 30ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต,ํด์คํฌํจ ) (24) | 2022.04.17 |
[SQLD] 30ํ ๊ธฐ์ถ๋ฌธ์ 1๊ณผ๋ชฉ ( 10๋ฌธ์ / ์ ๋ต ) (1) | 2022.04.07 |