ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

#2 ์—์„œ๋Š” ์œ ์šฉํ•œ ํ‚ค์›Œ๋“œ๋“ค์„ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋ฌธ์ œ๋„ ๋ช‡ ๊ฐœ ์ •๋ฆฌํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.


- ์ง‘๊ณ„ํ•จ์ˆ˜(SUM, MAX, MIN, COUNT, AVG)

์ง‘๊ณ„ํ•จ์ˆ˜๋Š” ์ตœ๋Œ“๊ฐ’ ํ˜น์€ ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ, ๊ฐœ์ˆ˜ ์„ธ๊ธฐ ๊ทธ๋ฆฌ๊ณ  ํ‰๊ท  ๊ตฌํ•˜๊ธฐ ๋“ฑ์— ์ด์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ—#1์—์„œ ์ •๋ฆฌํ•œ GROUP BY๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜์™€ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์šฉํ•˜๋‹ˆ ๊ผญ ์•Œ์•„๋‘ก์‹œ๋‹ค. ์ด์— ๊ด€๋ จ๋œ ์˜ˆ์ œ๋Š” ๋’ค์— GROUP BY ๋ฌธ์ œ์™€ ํ•จ๊ป˜ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.


- ์ค‘๋ณต ์ œ๊ฑฐ ํ•˜๊ธฐ(DISTINCT)

DISINCT ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ—์ถ”๊ฐ€๋กœ ์ง‘๊ณ„ํ•จ์ˆ˜์™€ ์กฐํ•ฉํ•˜์—ฌ COUNT(DISTINCT NAME) ์ด๋Ÿฐ ๋ฐฉ์‹๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. NAME์˜ ์ค‘๋ณต๊ฐ’์„ ๋ฏธ๋ฆฌ ์ œ๊ฑฐํ•˜๊ณ  COUNTํ•˜๋Š” ๊ฒƒ์ด์ฃ .

-- NAME SELECT ์ค‘๋ณต ์ œ๊ฑฐ
SELECT DISTINCT NAME FROM MEMBER

-- MEMBER ํ…Œ์ด๋ธ”์—์„œ  NULL์ด ์•„๋‹Œ NAME์˜ ์ˆ˜๋ฅผ ๊ตฌํ•  ๋•Œ, ์ค‘๋ณต๋˜๋Š” ์ด๋ฆ„์„ ํ•˜๋‚˜๋กœ ์น˜๊ณ  COUNT
SELECT COUNT(DISTINCT NAME) 
FROM MEMBER
WHERE NAME IS NOT NULL

 


- ์‹œ๊ฐ„ ๊ด€๋ จ ํ•จ์ˆ˜(DATE_FORMAT, HOUR, DAY, MONTH)

์ฃผ๋กœ ์‹œ๊ฐ„์„ ๋น„๊ตํ•˜๊ฑฐ๋‚˜ ์ฃผ์–ด์ง„ format์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์—์„œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋น„๊ต๋ฅผ ์œ„ํ•ด์„œ๋Š” HOUR(datetime), DAY(date) ๋“ฑ ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋น„๊ตํ•˜๋Š” ์ƒํ™ฉ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ .

์ถœ๋ ฅ์—์„œ๋Š” DATE_FORMAT(date, format)์„ ์ด์šฉํ•ด ์ •ํ•ด์ง„ format์œผ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ์‚ฌ์ดํŠธ์— MySQL ํ•จ์ˆ˜๋“ค์ด ์•„์ฃผ ์ž˜ ์ •๋ฆฌ๋˜์–ด์žˆ์–ด์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
ํ•จ์ˆ˜์— ๋งž๋Š” ์˜ˆ์‹œ์™€ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ •๋ฆฌ๋˜์–ด์žˆ์œผ๋‹ˆ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด ์œ ์šฉํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

www.w3schools.com/sql/sql_ref_mysql.asp

 

MySQL Functions

MySQL Functions MySQL has many built-in functions. This reference contains string, numeric, date, and some advanced functions in MySQL. MySQL String Functions Function Description ASCII Returns the ASCII value for the specific character CHAR_LENGTH Returns

www.w3schools.com


- ๊ฒ€์ƒ‰์กฐ๊ฑด(IN, LIKE, REGEXP)

IN(values)๋Š” values์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„  ์•„๋ž˜ ์˜ˆ์‹œ๋“ค์„ ๋ณด๋ฉด ๋น ๋ฅธ ์ดํ•ด๊ฐ€ ๊ฐ€๋Šฅํ•  ๊ฒ๋‹ˆ๋‹ค.

๋ฌธ์ œ ์ถœ์ฒ˜๋Š” ์ด๋ฏธ์ง€ ์•„๋ž˜ ์ฃผ์„์— ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

https://programmers.co.kr/learn/courses/30/lessons/59046

 

LIKE ํ‚ค์›Œ๋“œ๋Š” ์œ ์‚ฌํ•œ ๊ฒƒ๋“ค์„ ์ฐพ์•„์ค๋‹ˆ๋‹ค. ๋’ค์— value๋กœ๋Š” ์›ํ•˜๋Š” ๊ฒ€์ƒ‰ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

https://programmers.co.kr/learn/courses/30/lessons/59047

www.w3schools.com/sql/sql_like.asp

 

SQL LIKE Operator

SQL LIKE Operator The SQL LIKE Operator The LIKE operator is used in a WHERE clause to search for a specified pattern in a column. There are two wildcards often used in conjunction with the LIKE operator:  The percent sign (%) represents zero, one, or mul

www.w3schools.com

 

REGEXP๋Š” ์ •๊ทœ ํ‘œํ˜„์‹(Regular Expression)์„ ์ด์šฉํ•ด ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
LIKE๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
IF()์™€ ์กฐํ•ฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ฃ .
์ •๊ทœ ํ‘œํ˜„์‹์— ๋Œ€ํ•œ ๊ฒƒ์€ ์—ฌ๊ธฐ์„œ ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

programmers.co.kr/learn/courses/30/lessons/59409


- IF(), IFNULL()

IF(์กฐ๊ฑด, ์ฐธ์ผ ๋•Œ ๋ฐ˜ํ™˜ ๊ฐ’, ๊ฑฐ์ง“์ผ ๋•Œ ๋ฐ˜ํ™˜ ๊ฐ’)

IFNULL(value, value๊ฐ€ NULL์ด๋ผ๋ฉด ๋Œ€์ฒด ๊ฐ’)

https://programmers.co.kr/learn/courses/30/lessons/59410


- WITH RECURSIVE CTE AS, UNION

WITH ํ…Œ์ด๋ธ”๋ช… AS
(
	SELECT ...
)

์œ„์™€ ๊ฐ™์ด WITH ํ‚ค์›Œ๋“œ๋กœ ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RECURSIVE๋Š” ์žฌ๊ท€์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฉฐ
์•„๋ž˜์™€ ๊ฐ™์ด HOUR์ด 0~23๊นŒ์ง€ ์กด์žฌํ•˜๋Š” ๊ฐ€์ƒ ํ…Œ์ด๋ธ” TIME์„ ๋งŒ๋“ค์–ด ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UNION ํ‚ค์›Œ๋“œ๋Š” ์‰ฝ๊ฒŒ ๋งํ•ด ๊ฒ€์ƒ‰ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ํ•ฉ์ณ์ค๋‹ˆ๋‹ค. ์ด๋•Œ ์นผ๋Ÿผ ๋ช…์„ ๋งž์ถ”์–ด ์ฃผ์–ด์•ผํ•˜๋Š” ์ ๋งŒ ์ฃผ์˜ํ•ฉ๋‹ˆ๋‹ค.

https://programmers.co.kr/learn/courses/30/lessons/59413

 

'PS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ MySQL ์ •๋ฆฌ #1 ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ  (0) 2021.03.18