๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ“š ์‹œ๋ฆฌ์ฆˆ/- ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ8

์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋งˆ์น˜๋ฉฐ... ๋ชฉ์ฐจ ์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. '์‹œ๋ฆฌ์ฆˆ/- ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก ํ•™์ƒ ๊ฐœ๋ฐœ์ž ์žฅ์›์ต์˜ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ wonit.tistory.com ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ ๊ธฐ์ดˆ ์ด๋ก  ๋‹ค์ง€๊ธฐ ์ด๋ก  ๋ฐ ์‹ค์Šต ํ™˜๊ฒฝ ์„ธํŒ… ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๋ฐ ์ƒ˜ํ”Œ ์ฟผ๋ฆฌ๋ฌธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ SQL์ด๋ž€? SELECT์˜ WHERE๊ณผ ORDER BY ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ GROUP BY LIMIT์™€ ์„œ๋ธŒ ์ฟผ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ์ค‘๋ณต๊ณผ NULL ๋‹ค๋ฃจ๊ธฐ SQL ์ฝ”ํ…Œ์˜ ๊ฝƒ ์กฐ์ธ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋งˆ์น˜๋ฉฐ ๋ถ€์ œ-์ด์ œ ๋ญ˜ ํ•ด์•ผ ํ•˜๋‚˜์š”? ์™œ ์‹œ์ž‘ํ–ˆ์–ด์š”? ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋Š” ์ œ๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ๋งˆ์—์ŠคํŠธ๋กœ 12๊ธฐ์˜ SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค๊ณผ ์Šคํ‚ฌ๋“ค์„ .. 2021. 2. 25.
[์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์˜ ๊ฝƒ ์กฐ์ธ ์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ ๊ธฐ์ดˆ ์ด๋ก  ๋‹ค์ง€๊ธฐ ์ด๋ก  ๋ฐ ์‹ค์Šต ํ™˜๊ฒฝ ์„ธํŒ… ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๋ฐ ์ƒ˜ํ”Œ ์ฟผ๋ฆฌ๋ฌธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ SQL์ด๋ž€? SELECT์˜ WHERE๊ณผ ORDER BY ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ GROUP BY LIMIT์™€ ์„œ๋ธŒ ์ฟผ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ์ค‘๋ณต๊ณผ NULL ๋‹ค๋ฃจ๊ธฐ SQL ์ฝ”ํ…Œ์˜ ๊ฝƒ ์กฐ์ธ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋งˆ์น˜๋ฉฐ ๋ถ€์ œ-์ด์ œ ๋ญ˜ ํ•ด์•ผ ํ•˜๋‚˜์š”? ๋ชฉ์ฐจ JOIN ์กฐ์ธ์ด๋ž€? ๊ด€๊ณ„๋ž€? 1:N ๊ด€๊ณ„ INNER JOIN ์กฐ์ธ์—์„œ ์กฐ๊ฑด ์ถ”๊ฐ€ํ•˜๊ธฐ ์กฐ์ธ์—์„œ ์ •๋ ฌํ•˜๊ธฐ OUTER JOIN LEFT JOIN RIGHT JOIN ์กฐ์ธ JOIN์€ SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์ถœ์ œ ์ˆœ์œ„ 1์ˆœ์œ„๋กœ ๊ฐ€์žฅ ๊ฐ€์žฅ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋ฉด์„œ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด๋‹ค.. 2021. 2. 25.
[์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] ์ค‘๋ณต๊ณผ NULL ๋‹ค๋ฃจ๊ธฐ ์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ ๊ธฐ์ดˆ ์ด๋ก  ๋‹ค์ง€๊ธฐ ์ด๋ก  ๋ฐ ์‹ค์Šต ํ™˜๊ฒฝ ์„ธํŒ… ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๋ฐ ์ƒ˜ํ”Œ ์ฟผ๋ฆฌ๋ฌธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ SQL์ด๋ž€? SELECT์˜ WHERE๊ณผ ORDER BY ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ GROUP BY LIMIT์™€ ์„œ๋ธŒ ์ฟผ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ์ค‘๋ณต๊ณผ NULL ๋‹ค๋ฃจ๊ธฐ SQL ์ฝ”ํ…Œ์˜ ๊ฝƒ ์กฐ์ธ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋งˆ์น˜๋ฉฐ ๋ถ€์ œ-์ด์ œ ๋ญ˜ ํ•ด์•ผ ํ•˜๋‚˜์š”? ๋ชฉ์ฐจ ์ค‘๋ณต ์ฒ˜๋ฆฌ DISTINCK์™€ GROUP BY NULL ์ฒ˜๋ฆฌ IS NULL IS NOT NULL ์ค‘๋ณต ์ฒ˜๋ฆฌ ์ค‘๋ณต์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์—๋Š” ํฌ๊ฒŒ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. DISTINCT GROUP BY ๋ง›๊ฐ„์„ ์ด์šฉํ•œ TMI ์ค‘๋ณต์„ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” ๊ต์žฌ์—์„œ ๋ณดํ†ต DISTINCT.. 2021. 2. 25.
[์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] LIMIT๊ณผ ์„œ๋ธŒ ์ฟผ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ ๊ธฐ์ดˆ ์ด๋ก  ๋‹ค์ง€๊ธฐ ์ด๋ก  ๋ฐ ์‹ค์Šต ํ™˜๊ฒฝ ์„ธํŒ… ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๋ฐ ์ƒ˜ํ”Œ ์ฟผ๋ฆฌ๋ฌธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ SQL์ด๋ž€? SELECT์˜ WHERE๊ณผ ORDER BY ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ GROUP BY LIMIT์™€ ์„œ๋ธŒ ์ฟผ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ์ค‘๋ณต๊ณผ NULL ๋‹ค๋ฃจ๊ธฐ SQL ์ฝ”ํ…Œ์˜ ๊ฝƒ ์กฐ์ธ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋งˆ์น˜๋ฉฐ ๋ถ€์ œ-์ด์ œ ๋ญ˜ ํ•ด์•ผ ํ•˜๋‚˜์š”? ๋ชฉ์ฐจ LIMIT ์ถœ๋ ฅ ์ œํ•œํ•˜๊ธฐ OFFSET ์„œ๋ธŒ ์ฟผ๋ฆฌ ANY SOME ALL LIMIT ์šฐ๋ฆฌ๊ฐ€ ์šฐ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ๋ž‘ํ•œ๋‹ค๋ฉด LIMIT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ•„์ˆ˜์ด๋‹ค. LIMIT์„ ์ด์šฉํ•ด์„œ ์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๊ฒŒ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1์–ต๊ฐœ์˜ ์‚ฌ์šฉ์ž ๋ฐ์ด.. 2021. 2. 25.
[์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ GROUP BY ์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ ๊ธฐ์ดˆ ์ด๋ก  ๋‹ค์ง€๊ธฐ ์ด๋ก  ๋ฐ ์‹ค์Šต ํ™˜๊ฒฝ ์„ธํŒ… ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๋ฐ ์ƒ˜ํ”Œ ์ฟผ๋ฆฌ๋ฌธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ SQL์ด๋ž€? SELECT์˜ WHERE๊ณผ ORDER BY ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ GROUP BY LIMIT์™€ ์„œ๋ธŒ ์ฟผ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ์ค‘๋ณต๊ณผ NULL ๋‹ค๋ฃจ๊ธฐ SQL ์ฝ”ํ…Œ์˜ ๊ฝƒ ์กฐ์ธ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋งˆ์น˜๋ฉฐ ๋ถ€์ œ-์ด์ œ ๋ญ˜ ํ•ด์•ผ ํ•˜๋‚˜์š”? ๋ชฉ์ฐจ ์ง‘๊ณ„ ํ•จ์ˆ˜ AVG, MIN, MAX, COUNT ์‹ค์Šต ํ•ด๋ณด๊ธฐ ํ˜ผ์ž ์ƒ๊ฐํ•ด๋ณด๊ธฐ GROUP BY ๊ธฐ๋ณธ์ ์ธ GROUP BY ํ˜•์‹ GROUP BY๋ฅผ ๋” ๊นŠ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ํ˜ผ์ž ์ƒ๊ฐํ•ด๋ณด๊ธฐ HAVING ์™œ HAVING์ด ํ•„์š”ํ• ๊นŒ HAVING์ ˆ ์‚ฌ์šฉํ•˜๊ธฐ ์ง€๋‚œ ์‹œ๊ฐ„์— ์šฐ๋ฆฌ๋Š” S.. 2021. 2. 25.
[์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] SELECT ์˜ WHERE๊ณผ ORDER BY ์— ๋Œ€ํ•ด ์นดํ…Œ๊ณ ๋ฆฌ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ๊ฐ€์‹œ๋ฉด ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉฐ ๊ธฐ์ดˆ ์ด๋ก  ๋‹ค์ง€๊ธฐ ์ด๋ก  ๋ฐ ์‹ค์Šต ํ™˜๊ฒฝ ์„ธํŒ… ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ ๋ฐ ์ƒ˜ํ”Œ ์ฟผ๋ฆฌ๋ฌธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ SQL์ด๋ž€? SELECT์˜ WHERE๊ณผ ORDER BY ์ง‘๊ณ„ ํ•จ์ˆ˜์™€ GROUP BY LIMIT์™€ ์„œ๋ธŒ ์ฟผ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ์ค‘๋ณต๊ณผ NULL ๋‹ค๋ฃจ๊ธฐ SQL ์ฝ”ํ…Œ์˜ ๊ฝƒ ์กฐ์ธ ์ดˆ๋ณด์ž๋„ ์ค€๋น„ํ•˜๋Š” SQL ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋งˆ์น˜๋ฉฐ ๋ถ€์ œ-์ด์ œ ๋ญ˜ ํ•ด์•ผ ํ•˜๋‚˜์š”? ๋ชฉ์ฐจ ์ž‘์—… ํ™˜๊ฒฝ ์„ธํŒ… SELECT ๋ž€? SELECT์˜ ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• SELECT์™€ WHERE ์กฐ๊ฑด ์—ฐ์‚ฐ์ž ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž BETWEEN A AND B IN SELECT์™€ ORDER BY ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ ์ง€๋‚œ ์‹œ๊ฐ„์— ๋Œ€์ถฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๊ณ„์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜.. 2021. 2. 25.