๐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;
โ๏ธ
๋ฌธ์ 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 ๋ฑ์ ๋ฏธ๋ฆฌ ์ํํ์ฌ ๊ณ์ฐํด ๋ ์ผ๋ก์จ ์กฐํ ์ ์ฑ๋ฅ์ ํฅ์
|
|
์ด๋ ฅํ
์ด๋ธ ์ถ๊ฐ
|
์ด๋ ฅํ
์ด๋ธ ์ค์์ ๋ง์คํฐ ํ
์ด๋ธ์ ์กด์ฌํ๋ ๋ ์ฝ๋๋ฅผ ์ค๋ณตํ์ฌ ์ด๋ ฅ ํ
์ด๋ธ์ ์กด์ฌํ๋ ๋ฐฉ๋ฒ
|
2. ์ ๋ต : 4
๐๋ฌธ์ ํ์ธ
ํด์ค :
๊ตฌ๋ถ | ์ค๋ช |
์ 1 ์ ๊ทํ | ํ ์ด๋ธ์ ์์ฑ ํ๋๋ ํ๋์ ์์ฑ๊ฐ๋ง์ ๊ฐ์ ธ์ผ ํ๋ค. |
์ 2 ์ ๊ทํ | ๊ธฐ๋ณธํค ์ค์ ํน์ ์ปฌ๋ผ์๋ง ์ข ์๋ ์ปฌ๋ผ์ด ์กด์ฌํ ๊ฒฝ์ฐ ํ ์ด๋ธ์ ๋ถํดํ๋ค. |
์ 3 ์ ๊ทํ | ์ 2์ ๊ทํ์ ๋ง์กฑํ๋ ์ํ์์ ์ดํ ํจ์ ์ข ์์ ์ ๊ฑฐํ๋ ์ ๊ทํ ๊ณผ์ |
3. ์ ๋ต : 3
๐๋ฌธ์ ํ์ธ
ํด์ค : SINGLE TYPE
ํญ์ ๊ฐ์ด ์กฐํํ๋ค๊ณ ํ์ผ๋ฏ๋ก ํ๋์ ํ ์ด๋ธ๋ก ํตํฉํด์ ๋ง๋๋ SINGLE TYPE ๋ฐฉ๋ฒ์ด ๊ฐ์ฅ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด๋ค.
์ํผํ์ ๊ณผ ์๋ธํ์ ์ ๋ณํ ์์ ๊ฐ์ฅ ๊ณ ๋ ค๋์ด์ผ ํ๋ ๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ ์ด๋ธ์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์ด๋ค.
์) ํ์๋ฒํธ๊ฐ 1์ผ๋ ๊ฐ์ธํ์, ํ์๋ฒํธ๊ฐ 2์ผ๋ ๋ฒ์ธํ์ ์์ผ๋ก ๊ตฌ๋ถ
์ํผ/์๋ธํ์ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ณํํ์ ๋น๊ต
๊ตฌ๋ถ | 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) ํ๋ฉด์ ์กฐ์ธ์ ์คํํ๋ค.
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๊ฐ
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
'IT์๊ฒฉ์ฆ ๊ณต๋ถ > SQLD ๊ธฐ์ถ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] 33ํ ๊ธฐ์ถ 23๋ฒ ๋ฌธ์ - ์๋์ฐ ํจ์ (4) | 2022.05.27 |
---|---|
[SQLD] 38ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต ) + ํด์ค์ถ๊ฐ (24) | 2022.05.25 |
[SQLD] 35ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต,ํด์คํฌํจ ) (27) | 2022.05.13 |
[SQLD] 34ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต,ํด์คํฌํจ ) (19) | 2022.04.26 |
[SQLD] 30ํ ๊ธฐ์ถ ๋ฌธ์ ( 50๋ฌธ์ / ์ ๋ต,ํด์คํฌํจ ) (24) | 2022.04.17 |