PlayData/MySQL 7

[Day 17 | ๊ณผ์ œ] DAO, DTO, VO ์ฐจ์ด(~ing)

1) DAO (Data Access Object) DAO๋Š” DB์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด. ์ง์ ‘ DB์— ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์‚ญ์ œ, ์กฐํšŒ ๋“ฑ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Œ DB ์ ‘๊ทผ ๋กœ์ง๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ. ์ดํ•˜ ๋‚˜์˜ DAO: ๋”๋ณด๊ธฐ DeptDAO.java package com.my; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class DeptDAO { // Single..

PlayData/MySQL 2021.12.03

[Day 18 | MySQL] DAO, VO๋“ฑ (์ดํ•ด ing)

์›น ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์œ„ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ์Šคํ‚ค๋งˆ๋ผ๋Š” ๋‹จ์–ด. ๋‚ด๊ฐ€ ์•„๋Š” ์Šคํ‚ค๋งˆ๋Š” ์‹ฌ๋ฆฌํ•™ ์šฉ์–ด ๋ฟ์ด์—ˆ๋Š”๋ฐ.. ์Šคํ‚ค๋งˆ๋ž€ ๋ฌด์—‡์ธ๊ฐ€? - ์ž, ๋ ๋ ˆ๋น ์ˆ‘์„ ์•ž์œผ๋กœ ๋ถˆ๊ณ ๊ธฐ๋ฒ„๊ฑฐ๋ผ๊ณ  ํ•ฉ์‹œ๋‹ค ! --> ์šฉ์–ด ์‚ฌ์ „ ์ •์˜ - ์šฐ๋ฆฌ ํšŒ์‚ฌ์—์„œ ์ธ์‚ฌ ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š”๋ฐ, ์ง์›์ด๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” DB์• ์„œ ํ…Œ์ด๋ธ” ์ •์˜ํ•˜๋Š” ๊ฒƒ : ์Šคํ‚ค๋งˆ๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ. - RDB(๊ด€๊ณ„ํ˜•๋””๋น„)์˜ ๋ชฉ์  : ๋น„์ฆˆ๋‹ˆ์Šค ์ƒ์—์„œ ํ•„์š”ํ•œ ๊ฒƒ์„ ํ…Œ์ด๋ธ”ํ™” ํ•˜๋Š” ๊ฒƒ. - ๊ตญ์–ด ์‚ฌ์ „ : ์Šคํ‚ค๋งˆ ์ „์ง‘ - ์‚ฌ๋ฌผ / ์šฉ์–ด / ๊ฐ์ฒด ์‚ฌ์ „ ์ •์˜ - ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค: Table์ด ์ฃผ ์Šคํ‚ค๋งˆ. (๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์—๋Š” ๋ทฐ, stored procedure ๋“ฑ์ด ์žˆ๋Š”๋ฐ๋„) - Java : VO / DTO ๊ฒ€์ƒ‰๋งŒ ์ž˜ํ•˜๋ฉด ์‹œ์ค‘์— ๋„๋ ค์žˆ๋Š” ๊ฒƒ์ด ์ฝ”๋“œ. MCP(Move Cop..

PlayData/MySQL 2021.12.02

[Day 16 | MySQL] Table, Variable, ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง,

p238 239 ๋‚˜์ด์— int๋ฅผ ์ฃผ๋ฉด ๋‚ญ๋น„๋‹ค. int๋Š” ~21์–ต์—์„œ 21์–ต์ด๋‹ˆ๊นŒ. ๋ฐ์ดํ„ฐ ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ ๋งž์ถคํ˜•์œผ๋กœ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋””์Šคํฌ์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋‚ญ๋น„๊ฐ€ ๋œ๋‹ค. ์‹ค์ œ๋กœ ๋””์Šคํฌ์— 4๋ฐ”์ดํŠธ๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ๋‹ค๋ฉด, ๋ฉ”๋ชจ๋ฆฌ์—๋„ ์ˆซ์ž 10์ด๋ผ๋„ 4๋ฐ”์ดํŠธ๊ฐ€ ์˜ฌ๋ผ๊ฐ„๋‹ค. --> ๋‚ญ๋น„ ๋ชจ๋ธ๋ง์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•  ๋•Œ๋Š” int ๋งŽ์ด ํ•˜์ง€๋งŒ, ์„ฑ๋Šฅ๊นŒ์ง€ ๊ณ ๋ฏผํ•˜๋Š” ๋ฐ์ดํ„ฐ ์„ค๊ณ„๋Š” ๋ฐ์ดํ„ฐํƒ€์ž…์€ ์ ์ ˆํ•œ ๊ฒƒ์„ ๊ณ ๋ คํ•ด์„œ ํ•ด์•ผ. PK์™€ not null unique์˜ ์ฐจ์ด๋Š”? ๋ฐฑ๋‹จ์˜ ์ธ๋ฑ์Šค ๊ตฌ์กฐ๊ฐ€ ์กฐ๊ธˆ ๋‹ค๋ฆ„ PK๋Š” ํ…Œ์ด๋ธ” ๋‹น ๋ณดํ†ต ํ•˜๋‚˜ ๋งŒ๋“œ๋Š” ํ‚ค ์ œ์•ฝ์กฐ๊ฑด์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ -- -------------------- -- ํ…Œ์ด๋ธ” ์ƒ์„ฑ -- create table userTbl( uNo int auto_increment prima..

PlayData/MySQL 2021.12.01

[Day 15 | MySQL] SubQuery, DML, Table and ๊ณผ์ œ

union all ==> ์ค‘๋ณต๋œ ๊ฐ’๋„ ๊ฐ™์ด ๋ณด์—ฌ์ค€๋‹ค union ==> ์ค‘๋ณต๋œ ๊ฐ’์€ ์ œ๊ฑฐํ•˜๊ณ  ๋ณด์—ฌ์ค€๋‹ค. subquery : ์งˆ๋ฌธ์„ ์–ผ๋งˆ๋‚˜ ์งง๊ฒŒ ์งˆ๋ฌธ์„ ์ชผ๊ฐœ๋Š๋ƒ์˜ ์‹ธ์›€. ์žฅ์ 1. ์•ˆ์—์„œ ์ชผ๊ฐœ์„œ ์งˆ๋ฌธ์„ ๋งŒ๋“ค๋‹ค๋ณด๋ฉด, ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ํ˜๋Ÿฌ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ์Œ. ์žฅ์ 2. ์—๋Ÿฌ์œจ์ด ๋–จ์–ด์ง„๋‹ค. ์žฅ์ 3. ์ ˆ๋Œ€ ๋Šฆ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค. SubQuery01.SQL -- SubQuery01.sql -- smith ์™€ ๊ฐ™์€ job์„ ๊ฐ€์ง„ ์ง์›๋“ค์˜ ์ด๋ฆ„, job์€? 1) smith ์˜ job์€? SELECT JOB FROM emp WHERE (ENAME = 'SMITH'); 2) CLERK job์„ ๊ฐ€์ง„ ์ง์›๋“ค์˜ ์ด๋ฆ„, job์€ ? SELECT ENAME, JOB FROM EMP WHERE (JOB = 'CLERK'); -- ..

PlayData/MySQL 2021.11.29

[Day14 | MySQL] Join(ANSI Join, inner join, outer join, cross join etc.)

JOIN ๋ฌธ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ• ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์†์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์‹ค์Šต์ด ํ•„์š”ํ•ด์š”! ์–ธ์–ด๋กœ ์ดํ•ดํ•˜๊ณ  --> ๊ทธ๋‹ค์Œ์— ์งœ๊ธฐ. ์šฐ์„  ์ƒ๊ฐ์—†์ด select from ์“ฐ๊ณ , ๊ทธ ํ›„ ์—ฐ๊ฒฐ ๋ฐ์ดํ„ฐ ์ฐพ์•„ ์จ์ฃผ๊ณ  ์ด๋Ÿฐ ์‹์œผ๋กœ! ๋‚˜์ค‘์— ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์„ค๊ณ„ํ•  ๋•Œ ์ •์ž‘ ๋Šฅ๋ ฅ์€ ๊ณ ๊ฐ์˜ ์š”๊ตฌ๋ฅผ ํ•œ๊ธ€๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค! ์ด๊ฒŒ ์ œ์ผ ์ค‘์š”ํ•ด์šค!! Q. KING ์ด๋ฆ„, ๋ถ€์„œ๋ช…, ๋ถ€ํ•˜์ง์› ์ด๋ฆ„, ๋ถ€์„œ๋ช…? ์ด๋ ‡๊ฒŒ ๊ตฌ์กฐ์žก๊ธฐ Q. 4 ๊ธ‰์—ฌ๋“ฑ๊ธ‰์˜ ํ•ด๋‹นํ•˜๋Š” ์ง์›๋“ค์˜ ์ด๋ฆ„, ์‚ฌ๋ฒˆ, ๋ถ€์„œ๋ช…, ๊ธ‰์—ฌ๋“ฑ๊ธ‰๊ณผ ๊ทธ ์ง์›๋“ค์˜ ๋ถ€ํ•˜์ง์›์˜ ์ด๋ฆ„, ์‚ฌ๋ฒˆ, ๋ถ€์„œ๋ช…, ๊ธ‰์—ฌ๋“ฑ๊ธ‰์€? - m์€ ๋งค๋‹ˆ์ € - e๋Š” ๋ถ€ํ•˜์ง์› ์ด๋Ÿฐ ๊ตฌ์กฐ๋กœ ์ƒ๊ฐํ•ด์„œ ํ’€์–ด๊ฐ€๊ธฐ Join01.SQL -- Join01.sql -- -- SMITH์˜ ์ด๋ฆ„, ์†Œ์† ๋ถ€์„œ ์ด๋ฆ„์€? SELECT ename, d..

PlayData/MySQL 2021.11.26

[Day13 | MySQL] SQL ๊ธฐ๋ณธ RDB, where, groupby, having

์•„๋ฌด ์ƒ๊ฐ์—†์ด select, from(์–ด๋””์„œ ์˜ค๋Š”์ง€) ์„ ๋จผ์ € ์น˜๊ณ , ์‹ค์ œ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ๊ณ ๋ฏผํ•˜๊ณ , ์ปฌ๋Ÿผํ˜• ๋ช…์‚ฌ๋ฅผ ๊ณ ๋ฏผํ•˜๊ณ , Select 1) ์งˆ๋ฌธ์˜ ๊ฐœ์ˆ˜? --> Sub Query 2) Table์˜ ๊ฐœ์ˆ˜? --> Join (N-1๊ฐœ) 3) ์กฐ๊ฑด์˜ ๊ฐœ์ˆ˜, ์œ„์น˜, ์œ ํ˜•? - 1) ์ผ๋ฐ˜ ์กฐ๊ฑด : from / where (where) ifnull( ๋ช…์‚ฌ, 0) GroupByHaving01.sql -- GroupByHaving01.sql -- -- ๋ชจ๋“  ์ง์›๋“ค์˜ ๊ธ‰์—ฌ ํ•ฉ๊ณ„, ๊ธ‰์—ฌ ํ‰๊ท , ์ตœ๋Œ€ ๊ธ‰์—ฌ, ์ตœ์†Œ ๊ธ‰์—ฌ; SELECT sum(sal), avg(sal), max(sal), min(sal) -- ์ด๋Ÿฐ ๊ฒƒ๋“ค์ด ์ง‘๊ณ„(๊ทธ๋ฃน)ํ•จ์ˆ˜ from emp; -- ์—…๋ฌด ๋ณ„ ์ง์›๋“ค์˜ ๊ธ‰์—ฌ ํ•ฉ๊ณ„, ๊ธ‰์—ฌ ํ‰๊ท , ์ตœ๋Œ€ ๊ธ‰์—ฌ, ์ตœ์†Œ ๊ธ‰..

PlayData/MySQL 2021.11.25

[Day12 | MySQL] MySQL, Workbench, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •, select, order by, distinct, ๋ณ„๋ช…

์ˆ˜์—…์„ ์œˆ๋„์šฐ์œผ๋กœ ํ•ด์„œ ๋งฅ์œผ๋กœ ์ˆ˜์—… ๋‚ด์šฉ๋“ค์„ ๋”ฐ๋ผ๊ฐ€๋Š๋ผ ์• ๋จน์—ˆ๋‹ค. ์˜ค๋Š˜ ํ•œ ๊ฒƒ 1. MySQL ์„ค์น˜ 2. (์–ด๋””์„œ๋“  ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ) ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • 3. Workbench ๋‹ค์šด๋กœ๋“œ 4. ๊ธฐํƒ€ ์‚ฌ์šฉํ•  ์ฝ”๋“œ๋“ค ๋‹ค์šด๋ฐ›๊ธฐ ๋‚˜๋Š” ๊ตฌ๊ธ€๋ง์„ ํ•˜๋ฉด์„œ ์œ„ ์ž‘์—…๋“ค์„ ์ˆ˜ํ–‰ํ–ˆ๋Š”๋ฐ, ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • ์•„์ฃผ ์–ด๋ ต๊ฒŒ ํ•ด์„œ ๋ง‰ ๊ตฌ๊ธ€๋งํ•˜๋ฉด์„œ ์•…!!!๋‚˜ ์™œ ์•ˆ๋ผ!!ํ–ˆ๋Š”๋ฐ https://colinch4.github.io/2021-01-14/mysql_in_mac/์—์„œ ์•„์ฃผ ์นœ์ ˆํ•˜๊ฒŒ brew๋กœ ์„ค์น˜ํ•˜๋ฉด ํ•„์š”์—†๋‹ค๊ณ ... ์•Œ๋ ค์ฃผ์…จ๋‹ค. You are my true life saver... MySQL ๋ฃจํŠธ ๋น„๋ฒˆ : t*******1 ๊ทธ์™€์ค‘์— Homebrew๋Š” ๋Œ€์ฒด ๋‚ด๊ฐ€ ์–ธ์ œ ์„ค์น˜ํ•ด๋‘์—ˆ๋Š”์ง€ ์•„์ฃผ ๊ธฐํŠนํ•œ๋ฐ(?) Homebrew๋ฅผ ํ†ตํ•œ MySQL ์„ค์น˜ H..

PlayData/MySQL 2021.11.24