Knowledge๐Ÿฆข/SQL

ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ• ๋–„ ์ปฌ๋Ÿผ์— ๋“ค์–ด๊ฐˆ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ œ์•ฝ์กฐ๊ฑด์„ ๊ฑธ์—ˆ์—ˆ๋Š”๋ฐ, ๊ทธ ์•ˆ์—์„œ ์ปฌ๋Ÿผ์— ๋“ค์–ด๊ฐˆ ์ž๋ฃŒํ˜•๋„ ์ง€์ • ํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ค ์ž๋ฃŒํ˜•์ด ์žˆ๋Š”์ง€ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด์ž ์ž๋ฃŒํ˜• (์ปดํ“จํ„ฐ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ 0๊ณผ 1๋กœ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์„ ๋‹ค์‹œ ์ƒ๊ธฐํ•˜๊ธฐ) ํ…Œ์ด๋ธ”์˜ ๊ฐ ์ปฌ๋Ÿผ(์—ด ๋ฐ์ดํ„ฐ)๋“ค๋งˆ๋‹ค ์–ด๋–ค ์ž๋ฃŒํ˜•์ด ๋“ค์–ด๊ฐˆ ๊ฒƒ์ธ์ง€ ๋ช…์‹œํ•ด์•ผ(์ˆซ์ž์ธ์ง€, ๋ฌธ์ž์ธ์ง€ ๋“ฑ), ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์–ด ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์ž๋ฃŒํ˜•์„ ์ž…๋ ฅํ•ด์ค€๋‹ค. ex) ์ด๋ฆ„์„ ๋„ฃ๋Š”๋ฐ ์ˆซ์ž๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ์•ˆ๋˜๋‹ˆ๊น ๋ฌธ์ž๋งŒ ๋“ค์–ด์˜ฌ์ˆ˜ ์žˆ๊ฒŒ ์ง€์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. 1. ์ˆซ์ž ์ž๋ฃŒํ˜• 1) ์ •์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰์— ๋”ฐ๋ผ ์ˆซ์ž ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•œ๋‹ค. ๊ฐ€์žฅ ์ž‘์€ ๋ฐ์ดํ„ฐ๋Š” TINYINT => ๊ฐ€์žฅ ํฐ ๋ฐ์ดํ„ฐ๋Š” BIGINT ์ˆœ ์ด๋‹ค. SIGNED : ์Œ์ˆ˜๋ถ€ํ„ฐ ..
UNION ๊ณผ UNION ALL ์˜ ์‚ฌ์šฉ๋ฒ•๊ณผ ์ฐจ์ด์  employees_1 ํ…Œ์ด๋ธ” employess_2 ํ…Œ์ด๋ธ” 1. UNION (DISTINCT) - ์ค‘๋ณต์ œ๊ฑฐ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ•ฉ์นœ๋‹ค. ์ค‘๋ณต๋œ ROW๋Š” ์ œ๊ฑฐ employee_1 ํ…Œ์ด๋ธ”๊ณผ employee_2 ํ…Œ์ด๋ธ” UNION ๊ฒฐ๊ณผ๊ฐ’ # ์˜ˆ์ œ select count(*) from (SELECT gu, rent_nm, rent_id AS id FROM rent_data UNION SELECT gu, rtn_nm AS rent_nm, rtn_id AS id FROM rent_data) a 2. UNION ALL - ์ค‘๋ณต๊นŒ์ง€ ๋ชจ๋‘ ์ถœ๋ ฅ ๋ชจ๋“  ์ปฌ๋Ÿผ๊ฐ’์ด ๊ฐ™์€ ROW๋„ ๊ฒฐ๊ณผ๋กœ ๋ณด์—ฌ์ค€๋‹ค. ์ค‘๋ณต์ œ๊ฑฐ ํ•˜์ง€ ์•Š๋Š”๋‹ค. UNION ALL ์ด ์ค‘๋ณต์ œ๊ฑฐํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ UNION ๋ณด๋‹ค ์†๋„๊ฐ€..
# ๊ทธ๋ฆผ # ๊ทธ๋ฆผ ์š”์•ฝ 1) from / join / where 2) group by / having 3) select 4) order / limit FROM ์ ˆ (+ Join) ์ฟผ๋ฆฌ์˜ ์ฒซ๋ฒˆ์งธ ์‹คํ–‰ ์ˆœ์„œ๋Š” FROM์ ˆ์ด๋‹ค. FROM ์ ˆ์—์„œ๋Š” ์กฐํšŒํ•  ํ…Œ์ด๋ธ”์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ Join์„ ์‹คํ–‰ํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ฐ€์ƒ ํ…Œ์ด๋ธ”๋กœ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. WHERE ์ ˆ WHERE ์ ˆ์—์„œ๋Š” ํ…Œ์ด๋ธ”์—์„œ ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•„ํ„ฐ๋งํ•œ๋‹ค. GROUP BY GROUP BY ์ ˆ์—์„œ๋Š” ์„ ํƒํ•œ ์นผ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์กฐํšŒํ•œ ๋ ˆ์ฝ”๋“œ ๋ชฉ๋ก์„ ๊ทธ๋ฃนํ•‘ํ•œ๋‹ค. HAVING ์ ˆ HAVING ์ ˆ์€ ๊ทธ๋ฃนํ•‘ ํ›„์— ๊ฐ ๊ทธ๋ฃน์— ์‚ฌ์šฉ๋˜๋Š” ์กฐ๊ฑด ์ ˆ์ด๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด ๊ทธ๋ฃน์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. HAVING ์ ˆ์˜ ์กฐ๊ฑด์„ WHERE ์ ˆ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด WHERE์ ˆ์—..
์˜ˆ์ „์—๋Š” ๊ทธ๋ƒฅ min, max, sum ๋“ฑ์˜ ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ๋ชฉ์ ์„ฑ ์—†์ด ์‚ฌ์šฉํ–ˆ๋˜๊ฒƒ ๊ฐ™์€๋ฐ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€, ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋„์ถœ๋˜๋Š”์ง€ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ ๋ณด์•˜๋‹ค ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค! # ์ง‘๊ณ„ ํ•จ์ˆ˜์˜ ์ •์˜์™€ ์œ ์˜์‚ฌํ•ญ ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์„ ๊ณ„์‚ฐํ•ด์„œ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜์ž„. count(*)๋ฅผ ์ œ์™ธํ•˜๊ณ , ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” null ๊ฐ’์„ ๋ฌด์‹œํ•จ. ์œ ์˜์‚ฌํ•ญ 1) select ๊ตฌ๋ฌธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค 2) where์ ˆ์— ๋ฐ”๋กœ ์ง‘๊ณ„ํ•จ์ˆ˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ. ๋ณดํ†ต์€ 1) group by๋ฅผ ํ•˜๊ณ  select๋ฌธ์—์„œ ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค 1) ~๋ณ„๋กœ => ๊ทธ๋ฃน๋ณ„ ๋ฌถ๊ธฐ 2) ๊ทธ ์ดํ›„ => ์ง‘๊ณ„ํ•จ์ˆ˜๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ (์ปฌ๋Ÿผ๋ช… ์œ ์˜) ex) (์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„๋กœ) [ํŒ๋งค๋Ÿ‰์„ ์ง‘๊ณ„ํ•˜์‹œ์˜ค] 2) group by๋ฅผ ํ•˜๊ณ  h..
์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” SQL์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ€๊ณต๊ณผ ์กฐ๊ฑด๋ฌธ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค # SQL ๊ธฐ์ดˆ 1) SQL ์—์„œ ๊ฐ€์žฅ ๊ธฐ์ดˆ๊ฐ€ ๋˜๋Š” ๊ฒƒ์€ select from where group by order by ์ด ๊ตฌ๋ฌธ์ด๋‹ค 2) ๋˜ํ•œ, select๋ฌธ์—์„œ ๊ฐ๊ฐ์˜ ์ปฌ๋Ÿผ๋“ค์„ ๋“ค์—ฌ์“ฐ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค๋ฉด ๋”์šฑ ๊ฐ€๋…์„ฑ์ด ์ข‹์•„์ง„๋‹ค! select name, age, gender from customers ์ด๋Ÿฐ ์‹์œผ๋กœ! ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋‹ค๋ณด๋ฉด, Query ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋Œ€๋กœ ์ด์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, ๋ณด๋…ธ๋ณด๋…ธ ํ•™์ƒ์ด ์ด๋ ‡๊ฒŒ ์งˆ๋ฌธํ•œ๋‹ค "์ €๋Š” ์ฃผ์†Œ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ‘์‹œ๋„’ ์ •๋ณด๋งŒ ํ•„์š”ํ•ด์š”. ์„œ์šธ์˜ ํ†ต๊ณ„๋งŒ ๊ตฌํ•˜๊ณ  ์‹ถ์€๋ฐ, ์ „์ฒด ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ‘์„œ์šธ’ ๋กœ ๋ฌธ์ž๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜๋Š” ์—†์„๊นŒ์š”?" .. ๊ทธ๋ ‡๋‹ค ๋ฐ์ดํ„ฐ ๊ฐ€๊ณต์ด ํ•„์š”ํ•œ ์‹œ์ ์ด๋‹ค..
SQL ์—ฐ์‚ฐ์ž์˜ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„๋“ค์„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค ๋ถ€์ • ๋น„๊ต ์—ฐ์‚ฐ์ž์—์„œ != not = ์ด๋ ‡๊ฒŒ ํ™œ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค = ๊ฐ™๋‹ค > ๋ณด๋‹ค ํฌ๋‹ค >= ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค # AND ์•ž์— ์žˆ๋Š” ์กฐ๊ฑด๊ณผ ๋’ค์— ์˜ค๋Š” ์กฐ๊ฑด์ด ์ฐธ์ด๋˜๋ฉด ๊ฒฐ๊ณผ๋„ ์ฐธ์ด ๋œ๋‹ค ์ฆ‰ ์•ž์˜ ์กฐ๊ฑด๊ณผ ๋’ค์˜ ์กฐ๊ฑด์„ ๋™์‹œ์— ๋งŒ์กฑํ•ด์•ผํ•œ๋‹ค # OR ์•ž์˜ ์กฐ๊ฑด์ด ์ฐธ์ด๊ฑฐ๋‚˜ ๋’ค์˜ ์กฐ๊ฑด์ด ์ฐธ์ด ๋˜์–ด์•ผ ๊ฒฐ๊ณผ๋„ ๊ฒฐ๊ณผ๋„ ์ฐธ์ด ๋œ๋‹ค. ์ฆ‰ ์•ž๋’ค ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋งŒ ์ฐธ์ด๋ฉด ๋œ๋‹ค # NO..
ํŒŒ์นดํŒŒ์˜ค
'Knowledge๐Ÿฆข/SQL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)