<์ค๋์ ํ์ต>
- SQL ์ฝ๋์นดํ : ๊ธฐ์ด๋ ๋ฒจ ์๋ฃ
- ํ์ด์ฌ ๋ผ์ด๋ธ ์ธ์ (class.....)
- ํ์ด์ฌ 5ํ์ฐจ ๋ณต์ต, ์ฐ์ต๋ฌธ์
- ํ์ด์ฌ 3, 4ํ์ฐจ ์ฌํ๋ฌธ์
- SQL ์ฝ๋์นดํ
<ํ์ต๋ด์ฉ ์ ๋ฆฌ>
SQL ์ฝ๋์นดํ
โ ์ฌ๊ตฌ๋งค๊ฐ ์ผ์ด๋ ์ํ๊ณผ ํ์ ๋ฆฌ์คํธ ๊ตฌํ๊ธฐ

select
USER_ID
, PRODUCT_ID
from ONLINE_SALE
group by USER_ID, PRODUCT_ID
having count(PRODUCT_ID) > 1
order by USER_ID, PRODUCT_ID desc
<๊ฐ๋ ์ ๋ฆฌ>
group by๋ก ์๋ณธ ํ๋ค์ ๋ฌถ์ ๊ฒฐ๊ณผ(= ๋ฌถ์ธ ํ๋์ ํ) != ํ 1๊ฐ
๊ฐ์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํ ๋ ๊ทธ๋ฃน ์์ ์๋ณธ ํ๋ค์ ๋ชจ๋ ์ด์ ์๋ค.
โญ๏ธ having์ ๊ทธ ๊ทธ๋ฃน ๊ฐ๊ฐ์ ์กฐ๊ฑด ๋ถ์ฌ
ex. ์ ์ฝ๋์์์ having count(PRODUCT_ID) > 1
๋ฌถ์ธ ๊ทธ๋ฃน๋ค ์์ ์๋ ํ๋ค์ product_id์ ๊ฐ์๋ฅผ ์นด์ดํธ.
ID๋ ๊ณ ์ ํ๊ณ null์ด ์์ผ๋๊น ์นด์ดํธ ๊ธฐ์ค์ผ๋ก ์ ํฉ.

ํ์ด์ฌ ๋ผ์ด๋ธ ์ธ์
1. ํด๋์ค
์ดํด ๋ถ๊ฐ + ๋ฐฉ๋ํ ํ์ด์ฌ์ ์ธ๊ณ... ์ ๋ฆฌ ๋ถ๊ฐ๋ฅ...........
ํ๋ ์๊ฐ์ด์๋ค...\
ํ์ด์ฌ 3ํ์ฐจ(ํํ, ๋ฆฌ์คํธ, ๋์ ๋๋ฆฌ) ์ฌํ๋ฌธ์
โ
๋ฌธ์ 4
๋ค์ ์ฝ๋์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ ํํ ์ฐ์ธ์. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ด์ ๋ฅผ ์ค๋ช
ํ์ธ์..
lst = [0, 1, 2, 3, 4]
lst[1:4] = (9, 8)
print(lst)
lst = [0, 1, 2, 3, 4]
lst[1:4] = [9, 8]
print(lst)
# ๋ด ์์ ๊ฒฐ๊ณผ
[0, (9, 8), 4]
[0, [9, 8], 4]
# ์ค์ ์ถ๋ ฅ ๊ฒฐ๊ณผ
[0, 9, 8, 4]
[0, 9, 8, 4]
- ๋ด ์์
์ฌ๋ผ์ด์ฑ ๊ตฌ๊ฐ์ ์ฐ๋ณ์ ํต์ผ๋ก ๋ฃ๋๋ค. - ์ค์ ์๋
์ฌ๋ผ์ด์ฑ ๊ตฌ๊ฐ์ iterable ๊ฐ์ฒด๋ฅผ ํ์ด์ ํ๋์ฉ ๋ฃ๋๋ค.
<๊ฐ๋ ์ ๋ฆฌ>
"์ฌ๋ผ์ด์ฑ ๋์ "
๋ฆฌ์คํธ ์ฌ๋ผ์ด์ฑ์ ๊ฐ์ ๋์ ํ๋ฉด, ๊ทธ ๊ฐ์ด iterable(๋ฐ๋ณต ๊ฐ๋ฅ)์ด๋ผ๋ฉด ๊ทธ ์์ ์์๋ค์ด ํ๋์ฉ ํ๋ ค์ ๋ค์ด๊ฐ๋ค.
→ ๊ทธ๋์ ํํ, ๋ฆฌ์คํธ ๋ฑ ๊ดํธ๋ ์๊ด X, ๊ทธ ์์ ๊ฐ๋ค๋ง ๋ค์ด๊ฐ.
"๊ทธ ์์ฒด๋ก ๋ฃ๊ณ ์ถ์ผ๋ฉด?"
์ธ๋ฑ์ค๋ก ๋ฃ๊ธฐ
lst = [0, 1, 2, 3, 4] lst[1] = (9, 8) print(lst) # ์ถ๋ ฅ ๊ฐ [0, (9, 8), 2, 3, 4]