๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ž๊ฒฉ์ฆ_์ •์ฒ˜๊ธฐ,DAsP,COSpro..

SQLD ๋Œ€๋น„ ํ‚ค์›Œ๋“œ ์ •๋ฆฌ(1) - ๊นก๋งˆ๋‹˜ ์œ ํŠœ๋ธŒ ๊ฐ•์˜

by hyerong 2022. 9. 1.

SQL ๋ฒผ๋ฝ์น˜๊ธฐ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์œ ํŠœ๋ธŒ์— ์˜ฌ๋ผ์˜จ ๊น€๊ฐ•๋ฏผ ๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ํ‚ค์›Œ๋“œ๋งŒ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. 

์ €์ฒ˜๋Ÿผ ๋ฒผ๋ฝ์น˜๊ธฐ ํ•˜์‹œ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์ •๋ฆฌํ•œ ๋ฌธ์ œ ์ถœ์ œ ํ‚ค์›Œ๋“œ๋“ค์ž…๋‹ˆ๋‹ค. ๊น€๊ฐ•๋ฏผ ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ 1ํŽธ ์˜์ƒ์—์„œ ์–ธ๊ธ‰ํ•˜์‹  ๋‚ด์šฉ๋“ค

ํ•˜๋‚˜๋„ ๋†“์น˜์ง€ ์•Š๊ณ  ์ •๋ฆฌํ–ˆ์ง€๋งŒ ํ‚ค์›Œ๋“œ๋งŒ ์ •๋ฆฌํ•˜๊ณ  ๋”ฐ๋กœ ๊ฐœ๋… ๋ฐ ์„ค๋ช…์€ ๋‹ฌ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์‹œํ—˜์— ๋‚˜์˜ค๋Š” ํ‚ค์›Œ๋“œ/์œ ํ˜•์ด ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•˜๋Š” ์šฉ๋„๋กœ ๋ด์ฃผ์„ธ์š”!

 

https://www.youtube.com/watch?v=PC3ypt_VGWI 

SQLD ์ตœ์ข… ์ •๋ฆฌ๊ฐ•์˜ 1ํŽธ - SELECT๋ฌธ์žฅ ~ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ์–ธ์–ด(TCL) - ๊น€๊ฐ•๋ฏผSQLP ์ฑ„๋„

 

1. SQL ๋ช…๋ น๋ฌธ ๊ฐœ๊ด„ 

- ์—ฐ์‚ฐ๋ฌธ ์ˆœ์„œ : From - where - group by - having - select - order by 

- DML : select,  insert, delete, update

- DDL : alter, create, modify, drop 

- TCL : rollback, commit 

- DCL : grant, revoke 

 

2. SELECT

- distinct ์›ํ•˜๋Š” ์ •๋ณด๋กœ๋งŒ ์ง‘์•ฝ ๊ธฐ๋Šฅ 

Distinct deptno, mgr ์˜๋ฏธ - group by(deptno, mgr)๊ณผ ์œ ์‚ฌํ•˜๋‹ค

- AS : select - as์ƒ๋žต ๊ฐ€๋Šฅ, ์ปฌ๋Ÿผ ๋ช…์— ๋„์–ด์“ฐ๊ธฐ ์žˆ๋Š” ๊ฒฝ์šฐ ex. " ์ง์› ~ ๋ฒˆํ˜ธ" / - from : as ์‚ฌ์šฉ๋ถˆ๊ฐ€!  

- Concat : ์—ฐ์‚ฐ์ž  ๊ธฐํ˜ธ + : sql server / || : orcale / 

: concat (),() ์ธ์ˆ˜๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋‘๊ฐœ 

 

3. ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž

- and ๋‘˜๋‹ค ๋งŒ์กฑ 

- or ๋‘˜ ์ค‘ ํ•˜๋‚˜ 

- not ๋‘˜๋‹ค no 

- ์—ฐ์‚ฐ์ž์˜ ์—ฐ์‚ฐ ์ˆœ์œ„ : not(1์ˆœ์œ„) -> and -> or 

 

[์˜ˆ์‹œ]

not(์กฐ๊ฑด) -> not ์„ ํฌํ•จํ•œ ์กฐ๊ฑด์œผ๋กœ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ (1)

and(์กฐ๊ฑด)

and, not(์กฐ๊ฑด) -> not ์„ ํฌํ•จํ•œ ์กฐ๊ฑด์œผ๋กœ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ (2)

or(์กฐ๊ฑด)

=> (not ์กฐ๊ฑด 1) and ์กฐ๊ฑด and (not ์กฐ๊ฑด 2) or ์กฐ๊ฑด 

=>  ์กฐ๊ฑด or ์กฐ๊ฑด  (and์กฐ๊ฑด๋ผ๋ฆฌ ์กฐ๊ฑด ํ•ฉ์นจ )

 

4. SQL ์—ฐ์‚ฐ์ž

- Between and -> 1 and 2 : 1๊ณผ 2 ์‚ฌ์ด 

-  in -> A in (1,2,3) : A๋Š” 1or 2or 3

- LIKE : _ (์–ธ๋” ๋ฐ”): ์˜๋ฏธ๋Š” ๋ฏธ์ง€์˜ ํ•œ ๊ธ€์ž๋ฅผ ์˜๋ฏธ , % : 0 ์ด์ƒ์˜ ๊ธ€์ž๋ฅผ ์˜๋ฏธ 

- escape : ์˜ˆ์‹œ) ename like 'A_A' ์™€์ผ๋“œ ์นด๋“œ์ธ _์™€ %๋ฅผ ๋ฌธ์ž๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ํ’€๊ธฐ -> 'A@_A' ๋กœ ์ถ”์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค

์‹œํ—˜์—์„œ @ ์•„๋‹ˆ๋ผ #๋„ ๊ฐ€๋Šฅ

- Rownum (oracle) : where์กฐ๊ฑด ์ ˆ์—์„œ Rownum์ด 1์ธ ๊ฒฝ์šฐ๋ฅผ ํฌํ•จํ•ด์•ผํ•œ๋‹ค.

- [rownum ex][๋งค์šฐ ์ค‘์š”!!!]

select empno, sal from where rownum <= 3 order by sal desc ์–ด๋–ค ๊ฒฐ๊ณผ? 

=> sal ์ •๋ ฌ ์ „ / sal ์ •๋ ฌ ํ›„ ์ฐจ์ด 

order by sal์ด ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์‚ฌ์šฉ๋œ๋‹ค. => ์ •๋ ฌ ์ „์— rownum์— ์˜ํ•œ ์กฐ๊ฑด์ ˆ์ด ์‹คํ–‰๋œ๋‹ค. ์ฆ‰ ์ด๋ฏธ 3๊ฐœ ์ดํ•˜๋กœ ๋ฝ‘๊ณ ์„œ ๊ทธ ํ›„์— ์ •๋ ฌ์ด ์‹คํ–‰๋œ๋‹ค. 

์ถœ์ฒ˜ : ๊น€๊ฐ•๋ฏผ๋‹˜ ์œ ํŠœ๋ธŒ ๊ฐ•์˜ ํ™”๋ฉด

- Top (sql server) : select ์ ˆ์—์„œ ์‚ฌ์šฉ. ์ƒ์œ„ n๊ฐœ์˜ ํ–‰์„ ๊ฐ€์ ธ์˜จ๋‹ค.  select Top(n) <์ปฌ๋Ÿผ๋ช…> ์ปฌ๋Ÿผ์„ ์ถœ๋ ฅํ•  ๋•Œ, ์ƒ์œ„ n๊ฐœ์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฒ ๋‹ค๋Š” ์˜๋ฏธ 

 

5. NULL [๋งค์šฐ ์ค‘์š”!!!]

- null์˜ ์ •์˜ : ๋ถ€์žฌ, ๋ชจ๋ฅด๋Š” ๊ฐ’ 

- null +2, null-4, null*null => null์˜ ์‚ฐ์ˆ ์—ฐ์‚ฐ 

- null = null, null = 2 ๋น„๊ต์—ฐ์‚ฐ :  ์•Œ์ˆ˜์—†์Œ(unknown)๋…ผ๋ฆฌ:where์กฐ๊ฑด ์ ˆ์ด unknown์ด๋ผ๋ฉด False๋กœ ๋‚˜ํƒ€๋‚จ. 

 

- ์ •๋ ฌ์—์„œ์˜ ์˜๋ฏธ ์ฐจ์ด 

oracle : ๋ฌดํ•œ๋Œ€. ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ผ๋•Œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋‚˜์˜ด   

sql server : ์ตœ์†Œ์˜ ๊ฐ’ (-๋ฌดํ•œ๋Œ€). ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ผ๋•Œ ๊ฐ€์žฅ ์ฒ˜์Œ ๋‚˜์˜ด 

 

- nvl(๊ฐ’1, ๊ฐ’2), nvl2(๊ฐ’1, ๊ฐ’2,๊ฐ’3), isnull(๊ฐ’1,๊ฐ’2) (๋„๋›ฐ๊ธฐ) 

nvl : ๊ฐ’1 is null์ด๋ฉด ๊ฐ’ 2 / is not null์ด๋ฉด (null์ด ์•„๋‹ˆ๋ผ๋ฉด) ๊ฐ’ 1 

nvl2์˜ ๊ฐ’3 : ๊ฐ’1 is null์ด๋ฉด ๊ฐ’3 / is not null์ด๋ฉด ๊ฐ’2

- is null : nvl๊ณผ ๋™์ผ

- null if(๊ฐ’1,๊ฐ’2) (๊ฐ™์ด ๋†€์ž) : ๋‘๊ฐœ์˜ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด null, ๋‹ค๋ฅด๋ฉด ๊ฐ’1 

-coalesce(๊ฐ’1, ๊ฐ’2, ....๋ฌดํ•œ๋Œ€) (null ์•„๋‹Œ ์ฒซ๋ฒˆ์งธ ๊ฐ’) : ๊ฐ๊ฐ์˜ ๊ฐ’์ด null์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•ด์„œ ์ฒ˜์Œ ๋‚˜์˜จ ๊ฐ’ ์ฐพ๊ธฐ 

 

6. ์ •๋ ฌ

- ์ •๋ ฌ์˜ ์ •์˜, ์ •๋ ฌ์˜ ํŠน์„ฑ : ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์‹คํ–‰, (์ฟผ๋ฆฌ๋ฌธ ๋Œ๋ฆฌ๋Š”๋ฐ) ์„ฑ๋Šฅ์ด ๋Š๋ ค์งˆ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ 

- null๊ฐ’ ๊ณผ์˜ ๊ด€๊ณ„ - oracle๊ณผ sql server์—์„œ์˜ ์ฐจ์ด (๋ฌดํ•œ๋Œ€, ์ตœ์†Ÿ๊ฐ’ : ์Œ์˜ ๋ฌดํ•œ๋Œ€) 

- ์ปฌ๋Ÿผ ๋ฒˆํ˜ธ๋กœ ์ •๋ ฌ : ์ถœ๋ ฅ๋˜๋Š” ์ปฌ๋Ÿผ์˜ ์ˆ˜๋ณด๋‹ค ํฐ ๊ฐ’์€ ๋ถˆํ—ˆ (์˜ค๋ฅ˜ ๋‚˜์˜ค๋Š” ์„ ์ง€ ์ž˜ ํ™•์ธํ•˜๊ธฐ) 

- ์ธ์ˆ˜ ๋‘๊ฐœ ์ •๋ ฌ  : [ex] sal desc, ename asc ์˜๋ฏธ :  sal์ด ๊ฐ™์œผ๋ฉด ename ์˜ค๋ฆ„์ฐจ์ˆœ 

- ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š” ์ปฌ๋Ÿผ๋ช…์œผ๋กœ ์ •๋ ฌ ๊ฐ€๋Šฅ : [ex] select ename order by sal : ename ๋’ค์— sal์ด ์—†์ง€๋งŒ sal ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- ์ •๋ ฌ์€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์‹คํ–‰๋œ๋‹ค๋Š” ์  ๊ธฐ์–ตํ•˜๊ธฐ 

 

7. ์ˆซ์ž ํ•จ์ˆ˜ 

- Round ์ž๋ฆฟ์ˆ˜ ํ™•์ธ [ex] Round(138.94)(์ธ์ˆ˜) ์ผ๋•Œ ์ธ์ˆ˜ ์ž๋ฆฌ์— ๋ญ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š”์ง€! 

- ceil (orcale ๊ธฐ์ค€) / ceiling (sql server ๊ธฐ์ค€) 

 

8. ๋ฌธ์ž์—ด ํ•จ์ˆ˜ 

- ๋Œ€์†Œ๋ฌธ์ž ๋ฐ”๊ฟ”์ฃผ๋Š” upper / lowerํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ 

- LPad, RPad, LTrim, RTrim ๋ณด๊ธฐ 

- substr, nstr ์‹ค์Šต๋งŒ ํ•ด๋ณด๊ธฐ 

(- replaceํ•จ์ˆ˜๋Š” ์š”์ฆ˜ ์ž˜ ์•ˆ ๋‚˜์˜ด)

 

9. ๋‚ ์งœ ํ•จ์ˆ˜ 

- TO_Char, TO_date ์‹ค์Šตํ•ด๋ณด๊ธฐ : ํ˜•๋ณ€ํ™˜ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๋ฌป๋Š” ๋ฌธ์ œ ๋‚˜์˜ด 

[ex] ๋‹ค์Œ ์ค‘ ๋ฐ์ดํ„ฐ์˜ ํ˜•๋ณ€ํ™˜์„ ์ด๋ฅดํ‚ค๋Š”/ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ•จ์ˆ˜๋Š”? -> ๋‹ต ์„ ์ง€์— TO_Char, TO_date  ์ ํž˜ 

- sysdate (oracle) : ํ˜„์žฌ ์‹œ๊ฐ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ํ•จ์ˆ˜. ๋™์ผ ๊ธฐ๋Šฅํ•จ์ˆ˜ Getdate() (SQL server์—์„œ ์‚ฌ์šฉ)  

- ๋‚ ์งœ ๋ฐ์ดํ„ฐ + ์ˆซ์ž(n) : ์ˆซ์ž(n)๋งŒํผ์˜ ๋‚  ์ดํ›„๋ฅผ ์˜๋ฏธ,n์„ day๋กœ ์ธ์‹ํ•จ 

 

10. DECODE/CASE

- case๋งŒ ๋‚˜์˜ด. 

- case when / case when then / when then / else end : else๊ฐ€ ์—†๋‹ค๋ฉด, ์กฐ๊ฑด1, ์กฐ๊ฑด2 ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ null์ด ์ถœ๋ ฅ๋œ๋‹ค. 

- DECODE๋Š” ๋ณ„๊ฑฐ ์—†์Œ. ์‹ค์Šต ํ•œ๋ฒˆ ํ•ด๋ณด๊ธฐ 

 

11. ์ง‘๊ณ„ํ•จ์ˆ˜[๋งค์šฐ ์ค‘์š”!!!]

- null๊ณผ์˜ ๊ด€๊ณ„ 

null + ์—ฐ์‚ฐ = null

null + null = null

์ˆซ์ž +์ˆซ์ž=์ˆซ์ž

์ถœ์ฒ˜ : ๊น€๊ฐ•๋ฏผ๋‹˜ ์œ ํŠœ๋ธŒ ๊ฐ•์˜ ํ™”๋ฉด

- sum(A)+sum(B)+sum(C) vs sum(A+B+C)์˜ ์ฐจ์ด ์•Œ๊ธฐ ๊ผญ!!

 

12. GROUP BY 

- ์ง‘์•ฝ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. 

- where๋‹ค์Œ์— ์‹คํ–‰๋œ๋‹ค. 

- ๊ทธ๋ฃน ์ˆ˜์ค€์˜ ์ •๋ณด๋ฅผ ๋ฐ”๊พผ๋‹ค. having๋„ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์กฐ๊ฑด์‹. 

 

13. JOIN

- natural join, using ๋‘๊ฐœ์˜ ๊ฒฝ์šฐ ์ด์™ธ์—๋Š” ์ค‘๋ณต๋œ ์ปฌ๋Ÿผ์ด ์‚ฌ๋ผ์ง„๋‹ค. ์ค‘๋ณต๋œ ์ปฌ๋Ÿผ ํ•˜๋‚˜๋งŒ ์ถœ๋ ฅ, ์ œ์ผ ์•ž์— ๋“ฑ์žฅ.

- using์˜ ๊ฒฝ์šฐ alias ์‚ฌ์šฉ ๋ถˆ๊ฐ€. 

- left outer join : a left outer join ์˜๋ฏธ ๋™์ผ a coll = b coll(+) ๋ผ๊ณ  ์จ์ ธ์žˆ์„๋•Œ ์˜๋ฏธ ๋™์ผํ•˜๋‹ค. 

- right outer join๋„ ๋™์ผ, ํ™•์ธํ•˜๊ธฐ 

- joinํ•˜๋ฉด ํ• ์ˆ˜๋ก ์ปฌ๋Ÿผ์€ ๋Š˜์–ด๋‚œ๋‹ค. 

์ถœ์ฒ˜ : ๊น€๊ฐ•๋ฏผ๋‹˜ ์œ ํŠœ๋ธŒ ๊ฐ•์˜ ํ™”๋ฉด

- ์กฐ์ธ ์ˆœ์„œ ์•„๋ž˜ ๊ทธ๋ฆผ ์ฐธ๊ณ 

์ถœ์ฒ˜ : ๊น€๊ฐ•๋ฏผ๋‹˜ ์œ ํŠœ๋ธŒ ๊ฐ•์˜ ํ™”๋ฉด

 

14. ์„œ๋ธŒ์ฟผ๋ฆฌ 

- select from where group by having order by ์ด ์ค‘ group by๋งŒ ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ์•ˆ ๋“ค์–ด๊ฐ„๋‹ค

- slect -> scalar / from ->inline view, ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ์ปฌ๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ / where, having -> ๊ฑฐ์˜ ๋ชจ๋“  ์„œ๋ธŒ์ฟผ๋ฆฌ, ์ค‘์ฒฉ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ผ๊ณ  ๋งํ•จ / order by -> scalar 

-  In, any/some, all, exist ํ•จ์ˆ˜ ์˜๋ฏธ ๊ธฐ์–ต  

- exist ์˜ ๊ฒฝ์šฐ '1', 'x', 'a' ๋ชจ๋‘ ์ถœ๋ ฅ ๊ฐ€๋Šฅ =>True๋กœ ์ถœ๋ ฅ, ์•„๋ฌด๊ฒƒ๋„ ์—†์ด 0 rows์ผ ๊ฒฝ์šฐ False ์ถœ๋ ฅ 

 

15. ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž 

- union, interest, minus(oracle)-Except(sql server), => 3๊ฐ€์ง€ ๋ชจ๋‘ ์ •๋ ฌ ์ž‘์—…์ด ์žˆ๋‹ค. ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค. 

- unionall : ์ค‘๋ณต ๋ฐ์ดํ„ฐ ์กด์žฌ, ์ •๋ ฌ ์ž‘์—… ์—†์Œ, ์†๋„ ๋น ๋ฆ„

์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ ๋‚˜ํƒ€๋‚˜์žˆ๋“ฏ์ด, ์—ฐ์‚ฐ์ž ๊ฐ๊ฐ์˜ ์˜๋ฏธ ์•Œ๊ณ  ์žˆ๊ธฐ 

์ถœ์ฒ˜ : ๊น€๊ฐ•๋ฏผ๋‹˜ ์œ ํŠœ๋ธŒ ๊ฐ•์˜ ํ™”๋ฉด

 

16. DDL 

- TCL๊ณผ ์—ฐ๊ฒฐ์ง€์–ด์„œ ์ƒ๊ฐ 

- Truncate vs Drop ์ฐจ์ด :  ์ „์ž๋Š” ์ž…์ฃผ๋ฐ€ ํ‡ด๊ฑฐ, ๊ตฌ์กฐ๋Š” ๋‚จ์•„์žˆ์Œ. drop์€ ๊ฑด๋ฌผ ์ฒ ๊ฑฐ, ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ๋‚จ๋Š”๋‹ค. 

- Truncate vs delete  ์ฐจ์ด : DDL vs DML -rollback๊ณผ commit ์—ฐ๊ด€์ง€์–ด์„œ ๋‚˜์˜จ๋‹ค. 

 

17. DML 

- insert, update, delete : TCL commit, rollback๊ณผ ์—ฐ๊ฒฐ์ง€์–ด ๋‚˜์˜จ๋‹ค. *์˜ค๋ฅ˜ ์ƒํ™ฉ๋งŒ ๊ณต๋ถ€/์š”์ƒˆ ์ž˜ ์•ˆ ๋‚˜์˜ด

- merge  : ์‹ ์œ ํ˜• 37ํšŒ๋งŒ ์ฐธ๊ณ  

 

18. ์ œ์•ฝ์กฐ๊ฑด [๋งค์šฐ ์ค‘์š”!!!]

- PK(unique + not null, ํ•˜๋‚˜๋งŒ ์กด์žฌ), unique, not null ๊ธฐ์–ตํ•˜๊ธฐ 

 

19. DCL 

- grant, revoke ์ •์˜๋ฅผ ๋ฌป๋Š” ์งˆ๋ฌธ 

- role์˜ ํŠน์ง• : ๋ช…๋ น์–ด๋Š” ์•„๋‹ˆ๊ณ  ๊ฐ์ฒด-object์˜ ํ•˜๋‚˜ 

 

20. VIEW

- "๋…ํŽธ๋ถ€" : ๋…๋ฆฝ์„ฑ, ํŽธ๋ฆฌ์„ฑ, ๋ณด์•ˆ์„ฑ ์˜ ์žฅ์  

 

21. ๊ทธ๋ฃน ํ•จ์ˆ˜ [๋งค์šฐ ์ค‘์š”!!!]

- roll up, cube, grouping sets, => ๊ฒฐ๊ณผ๊ฐ’ ์ฃผ๊ณ  3๊ฐœ ์ค‘ ๋ฌด์—‡์„ ์ผ๋Š”์ง€ ๋ฌป๋Š” ๋ฌธ์ œ, ๋น„๊ตํ‘œ ๋‚˜์˜ฌ ๊ฐ€๋Šฅ์„ฑ ๋†’์Œ

[ex]

rollup(A,B) vs rollup(B,A) ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋ƒ? -> no. ๊ณ„์ธต๊ตฌ์กฐ๋กœ ์ง„ํ–‰๋˜๊ธฐ๋•Œ๋ฌธ์— 

cube(A,B) vs cube(B,A) -> ๊ฐ™์€ ๊ฒฐ๊ณผ ๋‚˜์˜ด 

* rollup์ธ์ง€ cube์ธ์ง€ ์ฐพ๋Š” ๋ฐฉ๋ฒ• *๊ธฐ์ถœ๋ฌธ์ œ ๋ณด๋ฉด์„œ ์—ฐ์Šตํ•˜๊ธฐ 

1) null ๋‹ค ์ฐพ๊ธฐ 2) ์ดํ•ฉํ–‰ ์žˆ๋Š”์ง€ ์ฐพ๊ธฐ->์žˆ์Œ : rollup(ํ•œ์ชฝ๋งŒ ๊ฒฐ๊ณผ), cube(์–‘์ชฝ ๋‹ค ๊ฒฐ๊ณผ) / ์—†์Œ -> groupingsets

- grouping : ์š”์ƒˆ ์ž˜ ์•ˆ๋‚˜์˜ด 

 

22. TCL 

- commit, rollback ๊ธฐ์–ตํ•˜๊ธฐ 

- auto commit off, Begin transaction : ์š”์ฆ˜ ์ž˜ ์•ˆ ๋‚˜์˜ด, DDL์— commit ๊ธฐ๋Šฅ ์—†์•ค ๊ฒƒ