๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‹ | ๊ธฐํƒ€ ๊ธฐ์ˆ /๐Ÿ•ณ๏ธ | SQL

[SQL] ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋Œ€๋น„ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL ๋ฌธ๋ฒ• ์ •๋ฆฌ

by immgga 2023. 11. 3.

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๊ณ  ๊ณ„์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด

ํ•„์ž๊ฐ€ ์ง์ ‘ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๊ณ  ๋‚˜์„œ ์‚ฌ์šฉํ•œ SQL ๋ฌธ๋ฒ•์„ ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

์ฐธ๊ณ ๋กœ ํ•„์ž๋Š” SQL ๊ณ ๋“์  Kit์„ ์ด์šฉํ•ด SQL ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.

https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

1. Select

sql์—์„œ select๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ค€๋‹ค.

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋“ค์€ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ select๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ์— ๋ฐฐ์šฐ๋Š” ๋ฐ์— ํฐ ์–ด๋ ค์›€์€ ์—†์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค.

select๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ธ์ง€(from) ์–ด๋–ค ์กฐ๊ฑด์„ ๊ฑธ ๊ฒƒ์ธ์ง€๋„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค(where)

์•„๋ž˜์˜ SQL ์ฝ”๋“œ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ Select ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์ด๋‹ค.

SELECT column(๋˜๋Š” *)
FROM table
WHERE ์กฐ๊ฑด

1์—ด์—์„œ select๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ๋ณ„ํ‘œ(*)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ํ•ด๋‹น table์˜ ๋ชจ๋“  column์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. Sum, Max, Min

sum, max, min์„ ์ˆœ์„œ๋Œ€๋กœ ์—ญํ• ์„ ์„ค๋ช…ํ•˜์ž๋ฉด, ํ•ฉ, ์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜๋“ค์ด๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ํ•จ์ˆ˜์˜ ๊ด„ํ˜ธ ์•ˆ์— ์ž์‹ ์ด ์›ํ•˜๋Š” column์˜ ์ด๋ฆ„์„ ๋„ฃ์–ด ์ฃผ๋ฉด ๋œ๋‹ค.

SUM(column)
MAN(column)
MIN(column)

 

select ๋ฌธ๊ณผ ํ•ฉ๊ณ„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠน์ • ์—ด์˜ ํ•ฉ๊ณ„๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” sql๋ฌธ์ด๋‹ค.

SELECT SUM(column)
FROM table

์œ„์˜ ์ง‘๊ณ„ ํ•จ์ˆ˜ 3๊ฐœ ๋ง๊ณ ๋„ ๋‹ค๋ฅธ ์ข…์ข… ๋‚˜์˜ค๋Š” ์ง‘๊ณ„ ํ•จ์ˆ˜๋“ค๋„ ์žˆ๋‹ค. ์•Œ์•„๋†“์œผ๋ฉด ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

  • AVG(column): ํ•ด๋‹น column์˜ ๋ฐ์ดํ„ฐ๋“ค์˜ ํ‰๊ท 
  • COUNT(column): ํ•ด๋‹น column์˜ ๊ฐœ์ˆ˜

 

3. Group By

Group by๋Š” ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„ column๋“ค์„ ๊ทธ๋ฃน ์ง€์–ด ์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜์ž๋ฉด SELECT๋ฌธ์˜ WHERE ๋‹ค์Œ์— Group by๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

SELECT a.column, sum(b.column)
FROM table a, table b
WHERE ์กฐ๊ฑด
GROUP BY ๊ทธ๋ฃนํ™”ํ•  column
HAVING group by ์กฐ๊ฑด

group by๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ํ•„์ˆ˜๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.(๊ทธ๋ž˜์•ผ ๋ฐ์ดํ„ฐ๋ผ๋ฆฌ ๋ฌถ์–ด์„œ ๊ทธ๋ฃนํ™”๋ฅผ ํ•˜๋‹ˆ๊นŒ)

 

์œ„์˜ ๋ช…๋ น ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ฉด group by ๋‹ค์Œ ์ค„์— having์„ ์‚ฌ์šฉํ•ด ์ค€ ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

having์€ ๊ทธ๋ฃนํ™”๋ฅผ ํ•˜๊ธฐ ์ „์— ์ ์šฉํ•  ์กฐ๊ฑด์„ ์ž‘์„ฑํ•˜๋Š” ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด where ๋ฌธ๊ณผ ๋‹ค๋ฅธ ์ ์ด ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด ์‹คํ–‰ ์ˆœ์„œ ์ฐจ์ด์ด๋‹ค.

having์€ group by๊ฐ€ ์ˆ˜ํ–‰๋˜๊ธฐ ์ „์— ์‹คํ–‰๋˜๊ณ , where์€ group by๊ฐ€ ๋ชจ๋‘ ์™„๋ฃŒ๋œ ํ›„์— ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ์ ์ด ๋‹ค๋ฅด๋‹ค.

 

๋ง๋กœ ํ’€๋ฉด ์ดํ•ด๊ฐ€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๊ธฐ์— ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ ํ•˜๋‚˜๋ฅผ ์˜ˆ๋กœ ๋“ค์–ด์„œ ์„ค๋ช…ํ•ด ์ฃผ๊ฒ ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ 2๊ฐœ์˜ table์ด ์žˆ์„ ๋•Œ

FLAVOR์„ ์ด์šฉํ•ด INGREDIENT_TYPE(์ฃผ ์„ฑ๋ถ„)์ด ๋“ค์–ด๊ฐ„ ์•„์ด์Šคํฌ๋ฆผ์˜ ์ด์ฃผ๋ฌธ๋Ÿ‰์„ ๊ตฌํ•ด์•ผ ํ•  ๋•Œ๋ฅผ ์˜ˆ๋กœ ๋“ค์ž๋ฉด

์œ„์˜ ๋ฌธ์ œ์—์„œ ์ •๋‹ต์„ ๊ตฌํ•˜๋ ค๋ฉด JOIN์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ JOIN์€ ๋‚˜์ค‘์— ์„ค๋ช…ํ•ด ์ค„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— JOIN์ด ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ  ๋ณธ๋‹ค๋ฉด

INGREDIENT_TYPE์— ํ•ด๋‹น๋˜๋Š” ๋ฐ์ดํ„ฐ๋“ค ์ค‘ TOTAL_ORDER์˜ ํ•ฉ๊ณ„๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

fruit_based์™€ sugar_based์— ํ•ด๋‹น๋˜๋Š” TOTAL_ORDER์˜ ๊ฐ’์„ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค.

์ฐธ๊ณ ๋กœ ๋งํ•˜์ž๋ฉด ์œ„์˜ ์‚ฌ์ง„์ด ํ•ด๋‹น ๋ฌธ์ œ์˜ ์ •๋‹ต์ด ์•„๋‹ˆ๋‹ค!

Group by๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋‚˜์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋ฉด ์•„์ฃผ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค.

๋ฌธ์ œ ๋งํฌ: https://school.programmers.co.kr/learn/courses/30/lessons/133026

 

 

4. is Null

๋‹ค์Œ์œผ๋กœ ์•Œ์•„๋ณผ ๋ถ€๋ถ„์€ ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ NULL์ผ ๋•Œ์˜ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์ž.

์ฒซ ๋ฒˆ์งธ๋Š” IFNULL๋กœ IFNULL์€ ์„ค์ •ํ•œ column์ด null์ผ ๋•Œ, ๋Œ€์ฒด ํ…์ŠคํŠธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

IFNULL(column, 'text')

null์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” column์„ ๋„ฃ์–ด์ค€ ํ›„, ํ•ด๋‹น column์— null์ด ๋ฐœ์ƒํ•˜๋ฉด, ์„ค์ •ํ•œ text๋กœ ๋Œ€์‹  ๋ฐ”๋€Œ์–ด์„œ ์ถœ๋ ฅ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

๋‘ ๋ฒˆ์งธ๋Š” is (not) null ๋ช…๋ น์–ด์ธ๋ฐ, ๋Œ€์ฒด๋กœ ์กฐ๊ฑด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

์กฐ๊ฑด์—์„œ ์กฐ๊ฑด์˜ column์ด null์ด๊ฑฐ๋‚˜ null์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์ œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

WHERE ์กฐ๊ฑด is (not) null

์กฐ๊ฑด์—์„œ ์กฐ๊ฑด ๋ฐ์ดํ„ฐ๊ฐ€ null(not null)์ธ์ง€ ํ™•์ธํ•ด ์ฃผ๋Š” ๋ช…๋ น์ด๋ผ๊ณ  ๋ณด๋ฉด ๋˜๊ฒ ๋‹ค.

 

 

5. Join

Join์€ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์ž์ฃผ ๋‚˜์˜ค๋Š” ์œ ํ˜•์œผ๋กœ, join์„ ํ™•์‹คํžˆ ์•Œ์•„๋‘์–ด์•ผ ์ฝ”ํ…Œ๋ฅผ ๋ณผ ๋•Œ ํŽธํ•  ๊ฒƒ์ด๋‹ค ;)

Join์€ ํ…Œ์ด๋ธ” 2๊ฐœ๋ฅผ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ช…๋ น์–ด๋กœ ์ข…๋ฅ˜๊ฐ€ ๋‹ค์–‘ํ•˜๋‹ค.

Inner Join, Left / Right Join, Full Join์ด ์žˆ๋‹ค. Join์— ๋Œ€ํ•˜์—ฌ ์„ค๋ช…ํ•˜๋Š” ๋ธ”๋กœ๊ทธ๋“ค์„ ๋ณด๋ฉด ํ•„์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒƒ๊ณผ๋Š” ๋‹ฌ๋ฆฌ join์„ 

left outer join์™€ ๊ฐ™์€ outer ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์—ฌ์„œ ์„ค๋ช…ํ•˜๋Š” ๋ธ”๋กœ๊ทธ๋“ค์„ ์ข…์ข… ๋ด์™”์„ ๊ฒƒ์ด๋‹ค.

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด outer ํ‚ค์›Œ๋“œ๋ฅผ ์“ฐ๋˜ ์•ˆ ์“ฐ๋˜ ๊ฒฐ๊ณผ๋Š” ๋˜‘๊ฐ™๋‹ค.

outer ํ‚ค์›Œ๋“œ๋Š” SQL์„ ์ž‘์„ฑํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ๋ณด๊ธฐ ํŽธํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ํ‚ค์›Œ๋“œ์ด๋ฏ€๋กœ ์ƒ๋žตํ•ด๋„ ์ƒ๊ด€์—†๋‹ค.

 

๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„์™€์„œ Join์€ ์ง‘ํ•ฉ๊ณผ ๋น„์Šทํ•œ ๊ฐœ๋…์ธ๋ฐ, ๋‹ค์Œ์˜ ์‚ฌ์ง„์„ ์ฐธ๊ณ ํ•ด์„œ ์ดํ•ดํ•ด ๋ณด์ž.

 

Join์„ ๋ฌด์—‡์„ ์“ฐ๋ƒ์— ๋”ฐ๋ผ์„œ ๋‚˜์˜ค๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ๊ฒƒ์ด๋‹ค.

๊ธฐ๋ณธ์ ์ธ Join ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

SELECT a.column, b.column
FROM tabl1 a JOIN table2 b ON a.column = b.column
WHERE ์กฐ๊ฑด

JOIN ํ‚ค์›Œ๋“œ ๋’ค์˜ ON ํ‚ค์›Œ๋“œ๋Š” Join์˜ ์กฐ๊ฑด์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

 

์œ„์˜ ์ฝ”๋“œ๋Š” ๊ธฐ๋ณธ์ ์ธ Inner Join์˜ ์‚ฌ์šฉ๋ฒ•๋งŒ ๋‹ค๋ฃจ์—ˆ๋‹ค.

๋‚˜๋จธ์ง€ Join์€ ์ž์‹ ์˜ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

Left / Right Join์„ ์ด์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œ ๋งํฌ๋„ ๊ณต์œ ํ•ด ์ฃผ๊ฒ ๋‹ค.

https://school.programmers.co.kr/learn/courses/30/lessons/59042

 

 

5. String, Date

๋งˆ์ง€๋ง‰์œผ๋กœ String๊ณผ Dateํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๊ฒ ๋‹ค.

Date๋ฅผ ํ•˜๊ธฐ ์ „์— String๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๋ฉด String์„ ํ™œ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ๋“ค์€ String์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋งŽ์„ ๊ฒƒ ๊ฐ™๋‹ค.(์˜ˆ: 2023-11-03, 2022-10-02์˜ ๋ฐ์ดํ„ฐ ์ค‘ 11์›”์ธ ๋ฐ์ดํ„ฐ๋งŒ ์ถœ๋ ฅํ•˜๊ธฐ)

 

๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ SQL์—์„œ Like ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

like ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

column LIKE '์กฐ๊ฑด string'

column ๋ฐ์ดํ„ฐ์—์„œ ์กฐ๊ฑด string์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. like๊ฐ€ ๋จผ์ € ์˜ค๋Š” ๊ฒŒ ์•„๋‹ˆ๋ฏ€๋กœ ์ˆœ์„œ๋ฅผ ํ—ท๊ฐˆ๋ฆฌ๋Š” ์ผ์ด ์—†๋„๋ก ํ•˜์ž!

 

์กฐ๊ฑด์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐํ˜ธ๋“ค์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • %: ์ž„์˜์˜ ๊ธธ์ด์˜ ๋ฌธ์ž์—ด์„ ๊ฐ€์ •ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.(%12%: ๋ฌธ์ž์—ด ์ค‘ 12๊ฐ€ ์žˆ์œผ๋ฉด ์ถœ๋ ฅ, %12: '๋ผ๋ฉด'์ด๋ผ๋Š” ๋ฌธ์ž์—ด์ด ๋ฐ์ดํ„ฐ ๋ฌธ์ž์—ด์˜ ๋งจ ๋’ค์— ์žˆ์œผ๋ฉด ์ถœ๋ ฅ)
  • _(๋ฐฑ์Šฌ๋ž˜์‹œ): ํ•œ ๊ฐœ์˜ ๋ฌธ์ž๊ฐ€ ์žˆ์Œ์„ ๊ฐ€์ •ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.(_11: ํ•œ ๊ธ€์ž ๋’ค์— 11์ด ์žˆ์œผ๋ฉด ์ถœ๋ ฅ, n๋ฒˆ์จฐ ๊ธ€์ž์˜ 11์„ ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด '_'์„ n๊ฐœ ์ž‘์„ฑ ํ›„ 11์„ ์ž‘์„ฑํ•œ๋‹ค.)

 

๋‹ค์Œ์œผ๋กœ๋Š” ๋‚ ์งœ ๋ฐ์ดํ„ฐ์— ๊ด€ํ•œ ๋ช…๋ น์–ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

๋‚ ์งœ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•  ๋ฌธ์ œ๋“ค๋„ ํŠน์ • ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ๋˜๋„๋ก ์„ค์ •ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ๋งŽ์„ ๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ๋Ÿฌ๋ฉด DATE_FORMAT ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด ๋ณด์ž.

DATE_FORMAT ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

DATE_FORMAT(date string, '๋‚ ์งœ ํ˜•์‹')

date string์„ ์ž์‹ ์ด ์„ค์ •ํ•œ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ฐ”๊ฟ”์ค„ ์ˆ˜ ์žˆ๋‹ค.

๋‚ ์งœ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • %Y: ์—ฐ๋„ 4์ž๋ฆฌ
  • %y: ์—ฐ๋„ 2์ž๋ฆฌ
  • %M: ๊ธด ์›”(์˜์–ด, ์˜ˆ: July)
  • %b: ์งง์€ ์›”(์˜์–ด, ์˜ˆ: Jul)
  • %W: ๊ธด ์š”์ผ ์ด๋ฆ„(์˜์–ด, ์˜ˆ: Monday)
  • %a: ์งง์€ ์š”์ผ ์ด๋ฆ„(์˜์–ด, ์˜ˆ: Mon)
  • %i: ๋ถ„
  • %T: hh:mm:SS
  • %m: ์ˆซ์ž ์›”(๋‘ ์ž๋ฆฌ)
  • %c: ์ˆซ์ž ์›”(ํ•œ ์ž๋ฆฌ)
  • %d: ์ผ์ž(๋‘ ์ž๋ฆฌ)
  • %e: ์ผ์ž(ํ•œ ์ž๋ฆฌ)
  • %I: ์‹œ๊ฐ„(12์‹œ๊ฐ„)
  • %H: ์‹œ๊ฐ„(24์‹œ๊ฐ„)
  • %r: hh:mm:ss AM,PM
  • %s: ์ดˆ

์œ„์˜ ๋ฌธ์ž๋“ค์„ ์ ์ ˆํžˆ ํ™œ์šฉํ•ด์„œ ๋‚ ์งœ ํ˜•์‹์„ ๋งŒ๋“ค์–ด ๋ณด์ž.

 

์ •๋ฆฌ

  • ๊ณง ์ฝ”ํ…Œ๋ฅผ ๋ณด์‹œ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด์„œ ์ด ํฌ์ŠคํŒ…์ด ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.
  • ํ•„์ž๋„ ๊ฑฐ์˜ 1๋…„๊ฐ„ ์†๋„ ์•ˆ ๋Œ”๋˜ SQL์„ ํ’€์–ด๋ด์„œ ์‹ ์„ ํ–ˆ๋‹ค(?).
  • SQL ๋ฌธ์ œ๋Š” ๋ช…๋ น์–ด์˜ ์—ญํ• ์„ ์ดํ•ดํ•˜๊ณ  ์•”๊ธฐํ•ด์„œ ํ’€์–ด์•ผ ํ•˜๋Š” ๋“ฏํ–ˆ๋‹ค.

 

์ฐธ๊ณ ํ•œ ๊ธ€

date format: https://devjhs.tistory.com/89

group by: https://velog.io/@dntjd7701/SQL-GROUP-BY#group-by%EB%9E%80

join: https://data-marketing-bk.tistory.com/entry/SQL-JOIN-%ED%95%9C-%EB%B0%A9%EC%97%90-%EC%A0%95%EB%A6%AC-%EA%B0%9C%EB%85%90%EB%B6%80%ED%84%B0-%EC%BD%94%EB%93%9C%EA%B9%8C%EC%A7%80-%EC%9D%B4%EA%B2%83%EB%A7%8C-%EB%B3%B4%EC%9E%90

์ฝ”๋”ฉํ…Œ์ŠคํŠธ SQL ๋ชจ์Œ: https://velog.io/@ekfvnddl99/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-SQL-%EC%B4%9D%EC%A0%95%EB%A6%AC#%EF%B8%8F-11-%EC%A4%91%EB%B3%B5-%EC%A0%9C%EA%B1%B0

like ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰: https://lcs1245.tistory.com/entry/SQL-LIKE-%EC%97%B0%EC%82%B0%EC%9E%90-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B6%80%EB%B6%84%EC%9D%BC%EC%B9%98-%EA%B2%80%EC%83%89

728x90