๐Ÿ”Raw query: ์ดˆ๋ณด๊ฐ€ ์ฃผ์˜ ํ•  ์ !

yeeun leeยท2020๋…„ 5์›” 24์ผ
1

1. comma(,)

์žฅ๊ณ , ํŒŒ์ด์ฌ์„ ์“ธ ๋•Œ์—๋Š” ๋งˆ์ง€๋ง‰ ์š”์†Œ์— ๋Œ€ํ•ด ์ฝค๋งˆ๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ์ด ๋ฌธ์ œ ์—†์ง€๋งŒ sql์—์„œ๋Š” ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด urls.py ์—์„œ endpoint๋ฅผ ์ •์˜ํ•  ๋•Œ, ๋’ค์— ์ถ”๊ฐ€ํ•  ๊ฒƒ์„ ์—ผ๋‘ํ•ด์„œ ์š”์†Œ์˜ ๋งˆ์ง€๋ง‰์— ,๋ฅผ ๋ถ™์—ฌ๋„ ๋ฌด๊ด€ํ•˜๋‹ค.
urlpatterns = [ A, B, C, ]

ํ•˜์ง€๋งŒ raw sql์—์„œ ๋งˆ์ง€๋ง‰์— ,๋ฅผ ๋ถ™์ด๋ฉด ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค.

INSERT INTO users ( email, password, ) values ('yeni@gg.com', 1234,) #์•ˆ๋จ
INSERT INTO users ( email, password ) values ('yeni@gg.com', 1234) # ๋จ! 

๊ฐ์ฒด ๋ช…์€ ๋”๋ธ”์ฟผํŠธ, ๋ฌธ์ž์—ด์€ ์‹ฑ๊ธ€์ฟผํŠธ๋กœ ๊ฐ์‹ผ๋‹ค. ๊ทธ๋ž˜์„œ select ๊ฐ™์€ ์˜ˆ์•ฝ์–ด๋Š” ๋ณดํ†ต ์ด๋ฆ„์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์—†์ง€๋งŒ ๋”๋ธ” ์ฟผํŠธ๋กœ ๊ฐ์‹ผ๋‹ค๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค. (๋ฌผ๋ก  ์•ˆ ์“ฐ๋Š”๊ฒŒ ์ œ์ผ ์ข‹์ง€๋งŒ)

2. quote('', "")

select price * quantity as select from table; #์•ˆ๋จ
select price * quantity as โ€œselectโ€ from table; #๋จ!

mysql์—์„œ ์ˆซ์ž๋งŒ์œผ๋กœ ์ง€์ •๋˜๋Š” ๊ฐ์ฒด๋Š” ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. ์˜ค๋ผํด์˜ ๊ฒฝ์šฐ ์•„์˜ˆ ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฐ์ฒด๋ช…์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

3. as

select ๊ตฌ์—์„œ ์ •์˜ํ•œ ๋ณ„๋ช…์€ where๊ตฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ๋‚ด์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

where ๊ตฌ(ํ–‰) -> select ๊ตฌ(์—ด) -> order by๊ตฌ

where ๊ตฌ๋กœ ํ–‰ ์กฐ๊ฑด ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ์กฐ์‚ฌํ•œ ๋’ค์— select๊ตฌ์—์„œ ์ง€์ •๋œ ์—ด์„ ์„ ํƒํ•ด ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, where๊ตฌ๋Š” ๋ณ„๋ช…์„ ์•Œ ์ˆ˜ ์—†๋‹ค.

select price * quantity as โ€œamountโ€ from table
where price * quantity >= 2000; #๋จ
where amount >= 2000; # ์•ˆ๋จ
order by amount desc; # ๋จ

๋‹ค๋งŒ order by๋Š” select ๊ตฌ์—์„œ ๋ณ„๋ช…์„ ์ง€์ •ํ•œ ๋’ค์— ๋ณ„๋ช…์„ ์‚ฌ์šฉํ•ด๋„ ๋œ๋‹ค.

4. null

null๊ฐ’์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋Š” ๋ชจ๋‘ null์ด๋‹ค. null + 1์€ 1์ด ์•„๋‹ˆ๋ผ๋Š” ๋œป์ด๋‹ค. ๋‚˜๋„ ๋ทฐ๋ฅผ ์งค ๋•Œ null ๊ฐ’์ธ ์ƒํƒœ์—์„œ ์—ฐ์‚ฐ์„ ํ•˜๋ ค๋‹ค๊ฐ€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚œ ์ ์ด ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ 0์œผ๋กœ ์šฐ์„  ๋ ˆ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด์ค€ ๋’ค์— ์—ฐ์‚ฐ์„ ํ•˜๋„๋ก ์„ค์ •ํ–ˆ๋‹ค.

+ null๊ฐ’ ๊ฒ€์ƒ‰

null์€ 0์ด ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•„์˜ˆ ๊ฐ’์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š์•„ null๋กœ ์ฒ˜๋ฆฌ๋œ record๋ฅผ ๋งํ•œ๋‹ค. null๊ฐ’์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค. where๊ตฌ๋กœ ์ง€์ •ํ•˜๋Š” ์กฐ๊ฑด์‹์€ ์ฐธ๊ณผ ๊ฑฐ์ง“์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž(=, <>, >, <, >=, <=)๋‚˜ ์ˆ ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ‘œ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค.

is null ๋˜๋Š” is not null

select * from users where bank_account is null
select * from users where bank_account is not null

5. order by

order by๋ฅผ ์“ธ ๊ฒฝ์šฐ ์ •๋ ฌ์€ desc(descendant, ๋‚ด๋ฆผ์ฐจ์ˆœ) & asc(ascendant, ์˜ค๋ฆ„์ฐจ์ˆœ) ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ์„œ ํ™œ์šฉํ•œ๋‹ค. ์ˆ˜์น˜ํ˜•๊ณผ ๋ฌธ์ž์—ดํ˜• ๋ฐ์ดํ„ฐ๋Š” ๋Œ€์†Œ๊ด€๊ณ„์˜ ๊ณ„์‚ฐ๋ฒ•์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋ถ€๋ถ„์„ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ์ „์‹ ์ˆœ์„œ์— ์˜ํ•ด ๊ฒฐ์ •๋œ๋‹ค,

profile
์ด์‚ฌ๊ฐ„ ๋ธ”๋กœ๊ทธ: yenilee.github.io

0๊ฐœ์˜ ๋Œ“๊ธ€