๐Ÿ“… 2024-01-09, 22์ผ์ฐจ

TODO

๐Ÿ‘ฝ ๊ณต๋ถ€ ํ•œ๋‹ฌ์งธ ๋‚˜์˜ ๋ณ€ํ™” ์ •๋ฆฌํ•˜๊ธฐ
์ฒซ ๋‚  ์–ด๋–ค๊ฑธ ๋ชฐ๋ž๊ณ  ์–ด๋–ค๊ฑธ ์•Œ์•˜๋Š”์ง€์™€ ํ˜„์žฌ ๋‚ด๊ฐ€ ์ง€๊ธˆ ์–ด๋–ค๊ฑธ ๋ชจ๋ฅด๊ณ  ์–ด๋–ค๊ฑธ ์•„๋Š”์ง€ ๋น„๊ตํ•˜๊ธฐ.
๋ฌธ์ œ ์ง๋ฉดํ–ˆ์„๋•Œ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ์ ์œผ๋ฉด ์ข‹์Œ. ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…!
์ž์†Œ์„œ ์“ธ ๋•Œ ๋„์›€์ด ๋งŽ์ด ๋จ!

[SQL]
1. SQL ์‚ฌ์›, ๋ถ€์„œ ๋ฌธ์ œ ๋‹ค์‹œ ํ•ด๋ณด๊ธฐ
2. SQL ์‡ผํ•‘๋ชฐ ๋ฌธ์ œ ๋‹ค์‹œ ํ•ด๋ณด๊ธฐ

  • ํ…Œ์ด๋ธ” ๋ถ„๋ฆฌ ์ „ ๋ฌธ์ œ
  • ํ…Œ์ด๋ธ” ๋ถ„๋ฆฌ ํ›„ ๋ฌธ์ œ
  1. <๋ฌธ์ œ ์ƒํ™ฉ์— ๋งž๋Š” SQL์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”, SUM, MAX, MIN, COUNT> ๊ฐ•์˜ ์˜์ƒ ๋ณด๊ณ  GROUP BY ๊ฐœ๋… ๋‹ค์‹œ ์ดํ•ดํ•˜๊ธฐ
  2. SQL sum, max, min, count ๋ฌธ์ œ ๋‹ค์‹œ ํ•ด๋ณด๊ธฐ
  3. w3schools -> SQL ํ™œ์šฉ์ •๋ฆฌ ๋ณด๊ณ  ์ฟผ๋ฆฌ ์—ฐ์Šต

[JDBC]
1. <์ž‘์—… 11, DBUtil ํ™œ์šฉ, ์†Œ์Šค์ฝ”๋“œ ์ •๋ฆฌ> ๊ฐ•์˜ ์˜์ƒ์—์„œ Map๋ถ€๋ถ„ ์„ค๋ช… ๋‹ค์‹œ ๋ณด๊ธฐ

[๊ธฐํƒ€]
1. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ œํ’€๊ธฐ(SQL ๋‚œ์ด๋„ LV.0~1)
2. ๋…นํ™”
3. 1์‹œ ์•ˆ์— ๋งˆ๋ฌด๋ฆฌ

[์ถ”๊ฐ€๋กœ ํ•œ ๊ฒƒ]
1. JDBC <์ž‘์—… 12, ๊ฒŒ์‹œ๋ฌผ ์‚ญ์ œ, ์ƒ์„ธ๋ณด๊ธฐ, ์—†๋Š” ๊ธ€ ์ฒ˜๋ฆฌ, ๋‚ ์งœ ํ˜•์‹>

์บ๊ธ€ ๊ตฌ๊ฒฝํ•ด๋ด
https://www.kaggle.com/


mySQL

  • ํ…Œ์ด๋ธ”์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž˜ ์งœ์•ผํ•จ
    • ํ…Œ์ด๋ธ” ๋ชป์งœ๋ฉด ๋ฐ์ดํ„ฐ ๋„ฃ์ง€๋„ ๋ชปํ•จ

JOIN

  • ๋ชจ์ž๋ž€ ์ •๋ณด๋ฅผ ์ฑ„์›Œ์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์›๋ž˜ ๊ฐ–๊ณ ์žˆ๋˜ ํ…Œ์ด๋ธ”์˜ ์ •๋ณด๋ฅผ ์ฐธ๊ณ  ํ•ด์•ผํ•œ๋‹ค.
  • ๋ถ€์„œ๋ช…์ด ๋ฐ”๋€๋‹ค๊ณ , ๋ชจ๋“  ํ…Œ์ด๋ธ”์„ ์ˆ˜์ • ํ•˜๊ธฐ์—” ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กœ์šฐ๋‹ˆ
    ๋ถ€์„œ์˜ ์ •๋ณด๋งŒ๋งŒ ๋‹ด๊ฒจ์žˆ๋Š” ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ๋ช…์„ ๋ฐ”๊พธ๊ณ 
    ์‚ฌ์›ํ…Œ์ด๋ธ”์—์„œ๋Š” ๋ถ€์„œ๋ฅผ dept no. (๊ณ ์œ ์‹๋ณ„๊ฐ’)์œผ๋กœ ๊ตฌ๋ณ„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ดํ›„ ์‚ฌ์›์ด ์–ด๋–ค ๋ถ€์„œ์ธ์ง€ ์•Œ๊ณ ์ž ํ• ๋•Œ๋Š” ๋ถ€์„œํ…Œ์ด๋ธ”์„ ๊ฐ€์ง€๊ณ ์™€ ๊ฐ™์ด ๋Œ€์กฐํ•ด๋ณด๋ฉด ๋˜๋Š” ์‹์ด๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ ๋ถ€์„œํ…Œ์ด๋ธ”์ด ์—†๋‹ค๋ฉด?
  • ์‚ฌ์›ํ…Œ์ด๋ธ”๋งŒ ์žˆ์œผ๋ฉด ์–ด๋–ป๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ????? ๐Ÿ˜’

JOIN์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋กฑ

INNER JOIN dept;
SELECT emp.*, dept.name AS `๋ถ€์„œ๋ช…`
FROM emp
INNER JOIN dept;
  • ๊ทผ๋ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์ข€ ์ด์ƒํ•˜๊ฒŒ ์ถœ๋ ฅ๋œ๋‹ค

SELECT emp.*, dept.id, dept.name AS `๋ถ€์„œ๋ช…`
FROM emp
INNER JOIN dept
ON emp.deptId = dept.id;
  • ๊ทธ๋ž˜์„œ ON์„ ์‚ฌ์šฉํ•ด์„œ empํ…Œ์ด๋ธ”์˜ deptId์™€ deptํ…Œ์ด๋ธ”์˜ Id๋ฅผ ๋น„๊ตํ•˜๋ฉด ์ž˜ ๋‚˜์˜จ๋‹ค

SELECT emp.id AS `์‚ฌ์›๋ฒˆํ˜ธ`,
emp.name AS `์‚ฌ์›๋ช…`,
DATE(emp.regDate) AS `์ž…์‚ฌ์ผ`,
dept.name AS `๋ถ€์„œ๋ช…`
FROM emp
INNER JOIN dept
ON emp.deptId = dept.id
ORDER BY `๋ถ€์„œ๋ช…`, `์‚ฌ์›๋ฒˆํ˜ธ`;
  • ๐Ÿ’ก AS๋กœ ์ž„์‹œ๋ณ„๋ช… ์ง€์–ด์ฃผ๋ฉด ๋œ๋‹ค. ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ฐ”๊พธ์ง€๋Š” ์•Š์ง€๋งŒ ๋ฐ์ดํ„ฐ์กฐํšŒ ์‹œ ์ฝ๊ธฐ ํŽธํ•˜๋„๋ก ์ ์ ˆํžˆ ํ™œ์šฉํ•˜๋ฉด ์ข‹์Œ!

count()

  • count(* ) ๋Š” ๋ช‡์ค‘์ฒฉ์ธ์ง€ ์„ธ๋Š” ๊ฑฐ์ด๊ธฐ ๋•Œ๋ฌธ์—, () ์•ˆ์— ๋ญ๊ฐ€ ๋“ค์–ด๊ฐ€๋„ ๋˜‘๊ฐ™๋‹ค!

group_ concat(์ปฌ๋Ÿผ๋ช…)

  • ๋ฝ‘์•„๋‚ด์„œ ์ด์–ด์ค€๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ๊ฒฐ๊ณผ๋ฅผ ํ•œ์ค„๋กœ ํ•ฉ์ณ ๋‚ธ๊ฑฐ

truncate (AVG(e.salary), 0)

  • ์†Œ์ˆ˜์  ์–ด๋А์ž๋ฆฌ์—์„œ ๋ฒ„๋ฆฐ๋‹ค.
profile
hello world

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