์๋ ํ์ธ์ yunamom ์ ๋๋ค :D
์ด๋ฒ์๊ฐ์๋ SQLD 46ํ ์ํ 1๊ณผ๋ชฉ, 2๊ณผ๋ชฉ ์ ๋ต์ ํฌ์คํ ํ๊ฒ ์ต๋๋ค. ๐ฉ๐ป๐ป
*๋ฌธ์ ์์๋ ๋ค๋ฅผ ์ ์์ผ๋ฉด ๋ต์ ๋ณด๊ธฐ๊ฐ ๊ธฐ์ต์ด ์๋๋ ๊ฒฝ์ฐ๋ ๋ต ์์ฒด๋ฅผ ์ ์ด๋๊ฑฐ๋ ๋ฌธ์ ๋ง ์ ์ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
(46ํ SQLD์ํ์ ์ง๊ธ๊น์ง ํ์ฐจ๋ ๋ค๋ฅด๊ฒ ๋จ๋ตํ์ด 5๋ฌธ์ ๋ก ๊ธฐ์กด 10๋ฌธ์ ์์ ์ค์ด๋ค์์)
<1๊ณผ๋ชฉ : 8๋ฌธ์ (๊ฐ๊ด์) + 2๋ฌธ์ (๋จ๋ตํ) >
โ
<1๊ณผ๋ชฉ : 8๋ฌธ์ (๊ฐ๊ด์) + 2๋ฌธ์ (๋จ๋ตํ) >
โ
1. ๋ ผ๋ฆฌ ๋ชจ๋ธ๋ง์ ๋ํ ์ค๋ช ์ผ๋ก ์ ์ ํ์ง ์์ ๊ฒ์? (์ด์ ์ ๊ธฐ ํ์)
3๋ฒ> ์ฃผ์ ์์ญ์ ์ค๊ณ ํ๋ค.
4๋ฒ> ์ํผ ์๋ธ ํ์ ์ ๋ถ๋ฆฌ ๋ฐ ํตํฉ
>> 3๋ฒ์ชฝ ์๊ฒฌ : https://cafe.naver.com/sqlpd/39683
>> 4๋ฒ์ชฝ ์๊ฒฌ : https://cafe.naver.com/sqlpd/39785
โ
2. ๊ณ ๊ฐ ->-----<- ์๋น์ค ๋ก ์ด๋ฃจ์ด์ง ERD ์์ ์ ๊ทํ๊ฐ ์ ์ ํ๊ฒ ๋ ๊ฒ์? (๊ณ ๊ฐ์ ์๋น์ค๋ฅผ ํ๋๋ง ๊ฐ์ง๋ค.)
4๋ฒ: ๊ณ ๊ฐ ---<-์๋น์ค๊ณ์ฝ ->----- ์๋น์ค
>> ์๋น์ค ๊ณ์ฝ์๋ ๊ณ ๊ฐ๋ฒํธ์ ์๋น์ค๋ฒํธ๋ง ์์ด์ผ ํจ.
>> ์๋น์ค๊ณ์ฝ๋ฒํธ๊ฐ ์์ผ๋ฉด ๊ณ ๊ฐ์ด ๋์ผ ์๋น์ค๋ฅผ ๊ฐ์ง์ ์์
โ
โ
3. ์๋์ ERD ( A, B, C ,D ํ ์ด๋ธ์ด ์๊ณ ๋ชจ๋ ๊ด๊ณ๋ ์๋ณ์ ๊ด๊ณ๋ก ์ด๋ฃจ์ด์ง) ์ ๋ํ ์ค๋ช ์ผ๋ก ์ ์ ํ์ง ์์ ๊ฒ์?
-> A ์ B ์ ๊ด๊ณ๊ฐ ๋น์๋ณ์ ๊ด๊ณ๊ฐ ๋๋ฉด A,C ์ ์กฐ์ธ์ด ์ฌ์ ์ง๋ค.
>> A,B,C ๊ฐ ์๋ณ์ ๊ด๊ณ์ด๋ฉด A์ C ์ ์กฐ์ธ์ B ๊ฐ ์์ด ๋ฐ๋ก ์กฐ์ธ์ด ๊ฐ๋ฅํ๋ A ์ B ์ ๊ด๊ณ๊ฐ ๋น์๋ณ์๊ฐ ๋๋ฉด A์ ํค๊ฐ C ๋ก ์ ๋ฌ์ด ๋์ง ์์ A์ C ๋ฅผ ์กฐ์ธํ๊ธฐ ์ํด์๋ ๋ฐ๋์ B ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ ๋ถํธํจ์ด ์๊น.
โ
โ
4. ์์ฑ์ ๋ํ ์ค๋ช ์ ๋ํด ์๋ง๊ฒ ์์ฑ์ด ์ง์ง์ด์ง ๊ฒ์?
<๋ณด๊ธฐ>
์์ฑ์ ์ ๋ฌด๋ถ์์ ํตํด ๋ฐ๋ก ์ ์ํ ์์ฑ์ ( ) ,
์๋ ์ ๋ฌด์ ์กด์ฌํ์ง๋ ์์ง๋ง ์ค๊ณ๋ฅผ ํ๋ฉด์ ๋์ถํด๋ด๋ ์์ฑ์ ( ),
๋ค๋ฅธ ์์ฑ์ผ๋ก๋ถํฐ ๊ณ์ฐ์ด๋ ๋ณํ์ด ๋์ด ์์ฑ๋๋ ์์ฑ์ ( ) ์ด๋ผ๊ณ ํ๋ค
-> ๊ธฐ๋ณธ์์ฑ, ์ค๊ณ ์์ฑ , ํ์ ์์ฑ
โ
โ
5. ๋ค๋ฅธ ์์ฑ์ ์ด์ฉํ์ฌ ๋ง๋ค์ด์ง๋ ์์ฑ์?
โ -> ํ์ ์์ฑ
โ
โ
6. ์๋์ ์ ๊ทํ์ ๋ํ ์ค๋ช ์ผ๋ก ๋ฐ๋ฅธ ๊ฒ์?
<๋ณด๊ธฐ> ๋ชจ๋ ์์ฑ์ด ์ฃผ์๋ณ์์ ์์ ์ข ์๋๋ค
-> ์ 2์ ๊ทํ
* ๋ฆด๋ ์ด์ ์ ์ํ ๋ชจ๋ ์์ฑ์ ๋๋ฉ์ธ์ด ์์ ๊ฐ(atomic value)์ผ๋ก๋ง ๊ตฌ์ฑ๋์ด ์์ผ๋ฉด ์ 1์ ๊ทํ์ ์ํ๋ค.
* ๋ฆด๋ ์ด์ ์ด ์ 1์ ๊ทํ์ ์ํ๊ณ , ๊ธฐ๋ณธํค๊ฐ ์๋ ๋ชจ๋ ์์ฑ์ด ๊ธฐ๋ณธํค์ ์์ ํจ์ ์ข ์๋๋ฉด ์ 2์ ๊ทํ์ ์ํ๋ค.
โ
โ
7. ์๋์ ERD ์ ๋ํ ์ค๋ช ์ผ๋ก ์ ์ ํ ๊ฒ์?
โ <๋ณด๊ธฐ> ์ปดํจํฐ -o|--------|- ๋ง๋๋ณด๋
-> ๋ง๋๋ณด๋๋ ๋๋๋ก ์ปดํจํฐ์ ํฌํจ๋๋ค.
โ
โ
8. ์ฃผ์๋ณ์์ ๋ํ ์๋์ ์ค๋ช ์ ๋ํด ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ง ๊ฒ์?
โ <๋ณด๊ธฐ> --> ๋ต์ ๋ง์ถฐ์ ์ค๋ช ์ ์ฑ ์์ ์ฐพ์ ์ ์ ๋ด์ฉ์ ๋๋ค. (์ฐธ๊ณ )
( ) - ์ํฐํฐ ๋ด์์ ๊ฐ ์ด์ปค๋ฐ์ค๋ฅผ ๊ตฌ๋ถํ ์ ์๋ ๊ตฌ๋ถ์์ด๋ฉฐ, ์ํฐํฐ์ ์ฐธ์กฐ๊ด๊ณ๋ฅผ ์ฐ๊ฒฐํ ์ ์๋ ์๋ณ์
( ) - ์ํฐํฐ ๋ด์์ ๊ฐ ์ด์ปค๋ฐ์ค๋ฅผ ๊ตฌ๋ถํ ์ ์๋ ๊ตฌ๋ถ์์ด๋ ๋ํ์ฑ์ ๊ฐ์ง์ง ๋ชปํจ
( ) - ์ ๋ฌด์ ์ํด ๋ง๋ค์ด์ง๋ ์๋ณ์
( ) - ํ ์ํฐํฐ์์ ๊ด๊ณ๋ฅผ ํตํด ํ ์ํฐํฐ๋ก๋ถํฐ ๋ฐ์์ค๋ ์๋ณ์
-> ์ฃผ์๋ณ์ , ๋ณด์กฐ์๋ณ์ , ๋ณธ์ง ์๋ณ์, ์ธ๋ถ ์๋ณ์
โ
<๋จ๋ตํ>
9.๊ฐ ์์ฑ์ ๊ฐ์ง ์ ์๋ ๊ฐ์ ๋ฒ์๋ฅผ ๋ฌด์์ด๋ผ ํ๋๊ฐ?
-> ๋๋ฉ์ธ
โ
โ
10. ์๋์ ๋น์นธ์ ์๋ง์ ๊ฒ์ ์์ฑํ์์ค
> ์ ์ผ์ฑ : ์ฃผ์๋ณ์์ ์ํด ์ํฐํฐ๋ด์ ๋ชจ๋ ์ธ์คํด์ค๋ค์ ์ ์ผํ๊ฒ ๊ตฌ๋ถํจ
์กด์ฌ์ฑ : ์ฃผ์๋ณ์๊ฐ ์ง์ ๋๋ฉด ๋ฐ๋์ ๋ฐ์ดํฐ ๊ฐ์ด ์กด์ฌ
(์ต์์ฑ) : ์ฃผ์๋ณ์๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ์ ์๋ ์ ์ผ์ฑ์ ๋ง์กฑํ๋ ์ต์์ ์๊ฐ ๋์ด์ผ ํจ
(๋ถ๋ณ์ฑ) : ์ฃผ์๋ณ์๊ฐ ํ ๋ฒ ํน์ ์ํฐํฐ์ ์ง์ ๋๋ฉด ๊ทธ ์๋ณ์์ ๊ฐ์ ๋ณํ์ง ์์์ผ ํจ
<2๊ณผ๋ชฉ : 37๋ฌธ์ (๊ฐ๊ด์) + 3๋ฌธ์ (๋จ๋ตํ) >
โ
1. ์๋์ ๊ณ์ธตํ ์ฟผ๋ฆฌ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์๋ง์ ๊ฒ์? ( SQL ์ํ ํ ๊ฒฐ๊ณผ ํ์ธ ์๋ฃ)
โ
col1 col2 col3
--------------------
A null 1
B A 2
C A 3
D B 4
โ
SELECT *
FROM SQLD46_01
WHERE COL3 <> 2
START WITH COL3 = 4
CONNECT BY COL1 = PRIOR COL2;
-> 2๊ฑด
โ
2. ์๋์ SQL ์ค ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๊ฒ์?
-> IFNULL ( COL, 'value') = nvl( COL, 'value') ์ ๋์ผ
-> NULL ์ด๋ฉด ๊ฐ์ด ๋์ค๊ฒ ๋์ด ์๋ ๊ฒ. IFNULL ( COL2, 0) ์ผ๋ก ๋์ด ์์ผ๋ฉด ๋จ
โ
3. ์๋์ ๊ณ์ธตํ ์ฟผ๋ฆฌ์ ๋น์นธ์ ์ฑ์ ๋ฃ์ผ์์ค.
SELECT ..
FROM ...
WHERE ...
START WITH ( ) --> ๊ด๋ฆฌ์ IS NULL
CONNECT BY PRIOR ( ์ฌ์ ) = ( ๊ด๋ฆฌ์ )
โ
4. ์๋์ SQL ์ ๋ํ ๊ฒฐ๊ณผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ( UNION ALL ๊ณผ UNION ์ ๋ํ ๊ฒฐ๊ณผ)
SELECT A,B,C FROM TAB1
UNION ALL
SELECT A,B,C FROM TAB2
โ
SELECT A,B,C FROM TAB1
UNION
SELECT A,B,C FROM TAB2
โ
5. ์๋์ SQL ์ค ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๊ฒ์? ( ์ ์ฒด ์ง๊ณ๊ฐ ํฌํจ๋ ์ง๊ณํจ์ ๊ฒฐ๊ณผ ์ฐพ๊ธฐ)
1) SELECT A, SUM(..) FROM ...
UNION ALL
SELECT NULL, SUM(...) FROM ..
2) SELECT A, SUM(..) FROM ... GROUP BY GROUPING SETS(A) --> GROUPIUNG SETS(A) ๋ ์ ์ฒด ์ง๊ณ๊ฐ ์์
โ
6. SQL ์ ๋ถ๋ฅ์ ๋ํ ์ค๋ช ์ค ํ๋ฆฐ ๊ฒ์?
-> ๋ฐ์ดํฐ ์ ์ด์ด๋ CREATE, ALTER, DROP ์ด๋ค. --> DDL ์.
โ
7. ๋งค์ฅID, ๋งค์ฅ๋ช ?? , ๋ ๋๊ฐ ์๊ณ , ๋งค์ฅID๋ ์ง๊ณ๊ฐ ์๊ณ , ๋งค์ฅID,๋งค์ฅ๋ช ์ผ๋ก ๋ฌถ์ธ ์ง๊ณ๊ฐ ๋ ๋์ ๋ฌถ์ฌ์ ๋ค์ ์ง๊ณ๊ฐ ๋จ
-> GROUP BY ROLLUP(๋งค์ฅID, ๋งค์ฅ๋ช ), ๋ ๋
โ
8. ์๋์ SQL ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๊ฒ์? ( ๊ณต์งํฉ์ผ ๊ฒฝ์ฐ ์ง๊ณํจ์์ ๊ฒฐ๊ณผ๋ NULL ์)
1) SELECT NVL( SUM(COL1), 0 ) ... WHERE 1=2 --> 0
2) SELECT MIN(COL1) ... WHERE 1=2 --> NULL
3) SELECT COUNT(*) ... WHERE 1=2 --> 0
-> MIN(..) ์ ๊ณต์งํฉ์ผ ๊ฒฝ์ฐ NULL ์ ๋ฐํํจ
โ
9. ์๋์ SQL ๊ฒฐ๊ณผ๋ก ์ณ์ ๊ฒ์? ( UNION MINUS ์ ๋ํ ์ฐ์ฐ ๊ฒฐ๊ณผ)
โSELECT *
UNION
SELECT *
MINUS
SELECT *
-> ์์ฐจ์ ์ผ๋ก ์ํ. UNION ๊ฒฐ๊ณผ 1,2,3,4,5 MINUS 2 ์ด๋ฏ๋ก 1,3,4,5 -> 4๊ฐ
โ
10. ์๋์ SQL ์์ ๊ฒฐ๊ณผ์ ์๊ด์์ด ๋ชจ๋ ๋ก์ฐ๋ฅผ ๊ฐ์ง๊ณ ์ค๋ ํ ์ด๋ธ์?
<SQL>
SELECT ...
FROM TUTOR LEFT OUTER JOIN SESSIONS .....
-> TUTOR
โ
11. ์๋์ SQL ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ๊ฒ์? ( RANK, DENSE_RANK, ROW_NUMBER() ๊ตฌ๋ถ)
1) SELECT ... COUNT... RANK... RN < 4 --> RANK 1,2,2,4,5
2) SELECT ... COUNT... DENSE_RANK ... RN < 4 --> 1,2,2,3,5
3) SELECT ... COUNT... ROW_NUMBER() ... RN < 4 --> 1,2,3,4,5
4) SELECT ... COUNT... ROWNUMBER ... RN < 4 --> 1,2,3,4,5
โ
12. Window Function ์ค ์์ ํจ์๊ฐ ์๋๊ฒ์?
-> RATIO_TO_REPORT
โ
13. ์๋์ SQL ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ SQL ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ( WINDOW FUNCTION ์์ ROWS ์ RANGE ๋ฅผ ๊ตฌ๋ถํ๋ ๋ฌธ์ )
-> A, 300
A, 300
โ
ROWS BETWEEN ...
RANGE BETWEEN ....
โ
-> ORDER BY ์ ์ค๋ณต์ด ์์ ๋ ํ๋๋ก ์ทจ๊ธํ๋ฉฐ SUM ๊ฐ์ ๊ฐ์ ๊ฒ์ผ๋ก ๊ฐ์ ธ๊ฐ๋ฉด RANGE, ์ค๋ณต์ด ์๋๋ผ๋ ROWS ๋จ์๋ก
SUM ์ ํด๋๊ฐ๋ฉด ROWS ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
-> ์ค๋ณต ์์์ ๋ํด ๋์ผ ํฉ์ ๊ฐ์ง๋ฏ๋ก RANGE BETWEEN ์ผ๋ก ํ์ธ๋จ
โ
14. ์๋์ SQL ์ํ ์ ๊ฒฐ๊ณผ๋ก ์๋ง์ ๊ฒ์?
-> MAX(์ฐ๋ด) OVER (ORDER BY ์ฐ๋ด ROWS CURRENT ROWS) --> ํ์ฌ ์ฐ๋ด์ด ์ถ๋ ฅ๋จ
โ
15. ์๋์ SQL ์ค ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ๊ฒ์? ( ์ค๋ณต ๋ฐ์ดํฐ ์ ๊ฑฐ์ ๋ํ ๋ฌธ์ )
1) SELECT JOB
FROM .. WHERE ... EXISTS (SELECT ... FROM .... ) --> ์ค๋ณต ์ ๊ฑฐ๊ฐ ์๋
2) SELECT DISTINCT JOB
3) SELECT JOB ... GROUP BY JOB
4) SELECT JOB UNION SELECT JOB ...
โ
16. ํ๊ท ํค๊ฐ 180 ์ด์์ธ SQL ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์?
-> SELECT ...
FROM ...
WHERE ..
HAVING AVG(HEGIHT)>=180
GROUP BY ...
: HAVING ๊ณผ GROUP BY ๋ ์์๊ณผ ๋ฐ๋์ด๋ ์๊ด ์์
โ
17. ์๋์ SQL ๊ฒฐ๊ณผ๋ก ์ณ์ ๊ฒ์?
<SQL>
SELECT ... FROM ... WHERE SALARY >= (SELECT MAX(SALARY) FROM ... GROUP BY DEPT )
1) single-row subquery returns more than one row ์๋ฌ๊ฐ ๋ฐ์ํจ
18. ์๋์ ERD ์ ๋ํ ์ค๋ช ์ผ๋ก ์ฎ์ ๊ฒ์? ( ํ์คํ์ง ์์)
์ง์ ---<- ๊ณ ๊ฐ
-> ์ง์ ์ ์ํ์ง ์๋ ๊ณ ๊ฐ์ ๋ณ๋๋ก ์ถ์ถํด์ผ ํ๋ค.
โ
19. ์๋์ SQL ์ค ์๋ฌ๊ฐ ๋์ง ์๋ ๊ฒ์?
1) SELECT A, SUM(..) FROM ... GROUP BY A ORDER BY C --> ์๋ฌ ๋ฐ์.
2) SELECT A, SUM(..) FROM ... GROUP BY A HAVING COUNT(C)
* ์ผ๋ถ DBMS ์์ 1) ๋ ์๋ฌ๊ฐ ๋์ง ์์.
โ
20. ์ค๋ผํด, SQL SERVER ์์ ์๋์ SQL ์ํ ๊ฒฐ๊ณผ์ ๋ํ ์ค๋ช ์ผ๋ก ์ ์ ํ์ง ์์ ๊ฒ์?
UPDATE .. SET COL2 = 200
CREATE TABLE TAB1 ...
ROLLBACK
-> ORACLE ์์ ROLLBACK ์ด ๋๋ฉด ํ
์ด๋ธ๋ ๋ง๋ค์ด์ง์ง ์๋๋ค.
โ
21. ROLLBACK ์ ๋ํ ์ค๋ช ์ค ์ ์ ํ์ง ์์ ๊ฒ์?
-> ROLLBACK ๋๋ฉด ํ ์ด๋ธ ์์ฑ๋ ์ทจ์๋๋ค.
โ
22. ์๋์ ๊ฐ์ด ์ฌ์ (5 ROWS) , ๋ถ์ (3 ROWS) ๋ก ๊ตฌ์ฑ๋์ด ์์ ๋ SQL ๊ฒฐ๊ณผ๋ ?
>> CORSS JOIN ํํ ๋ฌธ์ . 15๊ฐ
โ
23. ๊ถํ์ ๋ถ์ฌํ๋ ๋ช ๋ น์ด๋?
-> GRANT
โ
24. ์๋์ SQL ๊ฒฐ๊ณผ์ ๋ํ ์ค๋ช ์ผ๋ก ์ณ์ ๊ฒ์?
SQL> SELECT ์ด์ ์, COUNT(์ดํ๋ฒํธ) AS ์ดํ ํ์ FROM ... GROUP BY ์ด์ ์
1) ์ด์ ์์ ์ดํํ์๋ฅผ ๋ชจ๋ ์ ์ ์๋ค.
โ
25. ์๋์ SQL ์ ๋ํ ์ค๋ช ์ผ๋ก ์ณ์ ๊ฒ์? ( IN ์ ์ ๋ํ ์ค๋ช )
SQL) SELECT ... FROM ... WHERE COL1 IN ('์์ธ','๋์ ','๋ถ์ฐ')
2) ์์ธ์ด๊ฑฐ๋ ๋์ ๋๋ ๋ถ์ฐ์ ์ํ ........ --> IN ์ OR ์กฐ๊ฑด์ผ๋ก ๋๋ ์ผ๋ก ๊ตฌ๋ถ๋จ
โ
26. ์๋์ SQL ๊ฒฐ๊ณผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ( ORACLE ์ผ ๋ NULL ์ ์์ ๋ฐ DESC ์ ๋ํ ์ดํด)
SQL> SELECT ...
FROM ..
ORDER BY COL1, COL2, COL3 DESC
-> ORACLE ์ NULL ์ด ๊ฐ์ฅ ํฐ ๊ฐ์ผ๋ก ์ธ์ํจ. ์ฆ, ASC ๋ก ๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋ค๋ก ๊ฐ.
โ
27. ์๋์ SQL ํจ์๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์ ๊ณ ๋ฅด์์ค.
๋ณด๊ธฐ> ๋ฌธ์์ด์์ M ์ ์์น์์ N๊ฐ ๋งํผ์ ๋ฆฌํด
1) SUBSTR / SUBSTRING
โ
28. ์๋์ ํธ๋์ญ์ ์ ๋ํ ํน์ฑ์ ๋ํ ์ค๋ช ์ค ์ ์ ํ ๊ฒ์?
๋ณด๊ธฐ> ํธ๋์ญ์ ์์ ์ ์๋ ์ฐ์ฐ๋ค์ ๋ชจ๋ ์ฑ๊ณต์ ์ผ๋ก ์คํ๋๋์ง ์๋๋ฉด ์ ํ ์คํ๋์ง ์์ ์ํ๋ก ๋จ์ ์์ด์ผ ํจ (ALL OR NOTHING)
-> ์์์ฑ
โ
29. ์๋์ SQL ๊ฒฐ๊ณผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ( NOT IN ์ ์์ NULL ์ด ์์์ ๋ ์ ๊ฒฐ๊ณผ )
SQL> SELECT ... FROM ... WHERE COL1 NOT IN (SELECT COL2 FROM ... ) --> COL2 ๊ฐ NULL ์ด ์์
-> ๊ฒฐ๊ณผ 0 ๊ฑด ๋์ด
โ
30. ์๋์ SQL ๊ฒฐ๊ณผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ( CASE ๋ฌธ์ด ์ฌ์ฉ๋ ๋์ ๊ฒฐ๊ณผ ๋ฌป๋ ๋ฌธ์ )
SQL> SELECT ... CASE ... WHEN COL1 <= 100 THEN 'B'
WHEN COL2 <= 200 THEN 'A'
ELSE 'S'
-> B A A S ( CASE ๊ฐ์ด ์์ ๊ฐ์ ๊ฒฝ์ฐ)
โ
31. ๊ณ์ธตํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ ์กฐ์ธ์?
-> Self Join
โ
32. ์๋์ SQL ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ( ROUND ์์ ์์๊ฐ ๋ณ์๋ฅผ ๋ฐ์ ๋์ ๋ฌธ์ )
SQL> ROUND( 10333.3333. -2) ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฌป๋ ๋ฌธ์
-> 10300
โ
33. ์๋์ SQL ์ ๋ํ ๊ฒฐ๊ณผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์? ( COALESCE ์ ๋ํ ๋ฌธ์ )
SQL> SELECT ... COALESCE(COM, SAL) --> COM ์ด NULL ์ด๋ฉด SAL ์๋๋ฉด COM
โ
34. ์๋์ SQL ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์?
SQL>
SELECT ..
FROM (SELECT .. ROW_NUMBER() OVER (...) RN )
WHERE RN <=2
-> 150, 140 ???
โ
35. ์๋์ SQL ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์?
SQL> SELECT COUNT(COL), AVG(COL2)
FROM.
WHERE COL2 > 21
-> 3, 27
โ
36.
โ
37.
โ
<๋จ๋ตํ>
โ
38. 6๊ฐ ๊ฐ์ค 2๊ฐ์ NULL ์ด ํฌํจ๋ ๋ฐ์ดํฐ์ ๋ํ AVG ๊ฐ์ ๊ตฌํ๋ ๋ฌธ์
SQL> SELECT AVG(COL1) - AVG(NVL(COL1,0) ) ===> 6 - 4 = 2
โ
39. ๋ถ์ ์๋ ์ฌ์์ ์กฐํํ ๋ ์ฌ์ฉํ๋ ์กฐ์ธ : ์ฌ์์ด ์ค๋ฅธ์ชฝ์ด๋ฏ๋ก RIGHT OUTER JOIN
โ
40. GRADE ์ ๋ํ ์ง๊ณ์ GRADE,JOB ์ ๋ํ ์ง๊ณ๋ฅผ ๋ํ๋๋ SQL ์์ฑ ๋ฌธ์
-> GROUPING SETS ( ใฑ, (ใด, ใท) )
-> GRADE, GRADE, JOB
* ๋ฌธ์ ๊ฐ ๋๊ฐ ํ ์ด๋ธ์ ์กฐ์ธ ๊ฒฐ๊ณผ ์๋์ง ๊ธฐ์ต์ด ์๋๋๋ฐ, ๋๊ฐ ํ ์ด๋ธ์ด๊ณ ์ปฌ๋ผ์ด ๋ ํ ์ด๋ธ์ ๊ฐ์ด ์กด์ฌํ๋ค๋ฉด,
alias (A.GRADE ๋ฑ) ๋ฅผ ์จ์ค์ผ ํ๋ฉฐ, ํ ์ด๋ธ ํ๋์๋ง ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ alias ๋ฅผ ์จ์ฃผ์ง ์์๋ ๋จ
* ํ ์ด๋ธ์ด ํ๊ฐ์๋ค๋ฉด alias ๋ ์จ๋ ๋๊ณ , ์์จ๋ ๋จ.
* GROUPING SETS (A, B) = GROUP BY (A) UNION ALL GROUP BY (B) ์ด๋ฏ๋ก GRADE , JOB, GRADE ๋ก ์จ๋ ์๊ด์์
์ถ์ฒ : ๋ฐ์ดํฐ ์ ๋ฌธ๊ฐ ํฌ๋ผ ( ์์ผ๋ฃจ๋ ์ธ ํ์๋๋ค )
โ
โ
โ
โ
โ
โ
โ
โ
โ
'IT์๊ฒฉ์ฆ ๊ณต๋ถ > SQLD ์์๋ณต์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQLD] 2023๋ SQLD 50ํ ๊ธฐ์ถ๋ณต์ (1๊ณผ๋ชฉ/2๊ณผ๋ชฉ) (7) | 2023.09.09 |
---|---|
[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 |
[SQLD] 45ํ ๊ธฐ์ถ ๋ต์ ์์๋ณต์/ํด์ค (1) | 2022.05.29 |