๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Data Base/MySQL27

[MySQL] DB ์ •๊ทœํ™” Q) ๋‹ค์Œ ํ…Œ์ด๋ธ”์€ ์–ด๋–ค ์ •๊ทœํ™”๋ฅผ ์œ„๋ฐ˜ํ•˜์˜€๋Š”๊ฐ€ ? ์ฃผ๋ฌธ๋ฒˆํ˜ธ ์ด๋ฆ„ ์ฃผ์†Œ ์ „ํ™”๋ฒˆํ˜ธ ์ƒํ’ˆ1 ๊ฐฏ์ˆ˜ ๊ฐ€๊ฒฉ ์ƒํ’ˆ2 ๊ฐฏ์ˆ˜ ๊ฐ€๊ฒฉ M20200801 ํ™๊ธธ๋™ ๋Œ€๊ตฌ 010-1111-1111 ๋งˆ์Šคํฌ 10 500 ๋ณผํŽœ 30 300 M20200802 ์ด์ˆœ์‹  ์„œ์šธ 010-2222-2222 ๋…ธํŠธ๋ถ 1 2000000 ๋งˆ์šฐ์Šค 1 15000 M20200803 ํ™๊ธธ๋™ ๋Œ€๊ตฌ 010-1111-1111 ์ฒญ๋ฐ”์ง€ 2 100000 โ€‹ โ€‹ โ€‹ M20200804 ๊น€์œ ์‹  ๋ถ€์‚ฐ 010-3333-3333 ํ–ฅ์ˆ˜ 2 50000 ์‹œ๊ณ„ 1 70000 โ€‹ โ€‹ A) ์ œ 1 ์ •๊ทœํ™” ์œ„๋ฐ˜ โ€‹ create table order_tb (order_no varchar(9), name varchar(10), addr varchar(45), phone varchar(13), pri.. 2021. 2. 9.
MySQL ๋ฌธ์ œ *ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ mysql> create table product( -> pro_code varchar(5) not null, -> pro_name varchar(10), -> pro_price int(5) not null default 0, -> create_day date, -> primary key (pro_code) -> )engine = innoDB; โ€‹โ€‹ โ€‹ *ํ…Œ์ด๋ธ” ์—ด์ด๋ฆ„ ๋ณ€๊ฒฝ mysql> alter table product change pro_price ์ƒํ’ˆ๊ฐ€๊ฒฉ int(5) not null default 0; โ€‹ โ€‹ *ํ…Œ์ด๋ธ” ์—ด ์ถ”๊ฐ€ mysql> alter table product add pro_etc varchar(30); โ€‹ โ€‹ *ํ…Œ์ด๋ธ” ์—ด ์‚ญ์ œํ•˜๊ธฐ mysql> alter table .. 2021. 2. 9.
MySQL 25๋ฒˆ์งธ์ˆ˜์—… ์˜ˆ์ œ 18-6) ๋ทฐ ํ…Œ์ด๋ธ”(V_AGES)์—์„œ ์žฌํ•™์ƒ ์ค‘ 21์„ธ ์ด์ƒ์ด๊ณ , 2018๋…„~2020๋…„์— ์ž…ํ•™ํ•œ ํ•™์ƒ์„ ๊ตฌํ•˜์—ฌ๋ผ. A) mysql> select * from V_AGES -> where age > 20 -> and ibhak_year between '2018' and '2020'; โ€‹ โ€‹ ์˜ˆ์ œ 18-7) ๋ทฐ ํ…Œ์ด๋ธ”(V_AGES)๋ฅผ ์‚ญ์ œํ•˜๋ผ. A) โ€‹ โ€‹ โ–ถ ๋ทฐ์˜ ์—ด ์ด๋ฆ„ โ€‹ ์˜ˆ์ œ 18-8) ์ง‘์ฃผ์†Œ๊ฐ€ ์„œ์šธํŠน๋ณ„์‹œ์ธ ํ•™์ƒ์˜ ํ•™๋ฒˆ, ์ด๋ฆ„, ์šฐํŽธ๋ฒˆํ˜ธ, ํ˜„์ฃผ์†Œ๋กœ ๊ตฌ์„ฑ๋œ ๋ทฐ ํ…Œ์ด๋ธ”(V_ADDRESS)๋ฅผ ์ƒ์„ฑํ•˜๋ผ. A) โ€‹ โ€‹ ์˜ˆ์ œ 18-9) ๋“ฑ๋ก๊ธˆ ์ด์•ก๋ณ„๋กœ ํ•™์ƒ ์ธ์› ์ˆ˜ ํ˜„ํ™ฉ์„ ์ƒ์„ฑํ•˜๋Š” ๋ทฐ ํ…Œ์ด๋ธ” V_FEETOTAL๋ฅผ ์ƒ์„ฑํ•˜๋ผ. A) โ€‹ ์˜ˆ์ œ 18-10) ๋“ฑ๋ก๊ธˆ ์ด์•ก๋ณ„๋กœ ํ•™์ƒ ์ธ์› ์ˆ˜ ํ˜„ํ™ฉ์„ ์ƒ์„ฑํ•œ ๋ทฐ ํ…Œ์ด๋ธ”.. 2021. 2. 9.
MySQL 24๋ฒˆ์งธ์ˆ˜์—… (๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ๋ฌธ์ œ๋ผ์„œ ๊ฒฐ๊ณผ๋Š” ์บก์ณ์•ˆํ•จ) โ€‹ 16-1) ํ˜„์žฌ ํ•™๋…„์ด 3ํ•™๋…„์ด๋ฉด 2019๋…„ 1ํ•™๊ธฐ์— ๋“ฑ๋ก ํ…Œ์ด๋ธ”์˜ ์ˆ˜์—…๋ฃŒ(fee_price)์— 100000์›, ๋“ฑ๋ก๊ธˆ์ด์•ก(fee_total), ๋‚ฉ๋ถ€์ด์•ก(fee_pay)์— ๊ฐ๊ฐ 100000์›์„ ๊ฐ€์‚ฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ผ. A) mysql> update fee -> set fee_price = fee_price + 100000, -> fee_total = fee_total + 100000, -> fee_pay = fee_pay + 100000 -> where fee_year = 2019 and fee_term = 1 and stu_no in -> (select stu_no from student where grade = 3); โ€‹ โ€‹ 16-2) ๋“ฑ๋ก ํ…Œ์ด๋ธ”์—์„œ.. 2021. 2. 9.
MySQL 23๋ฒˆ์งธ์ˆ˜์—… โ–ถ SELECT ๋ช…๋ น๋ฌธ : ์กฐ์ธ(JOIN) โ€‹ *์กฐ์ธ(JOIN) ํ…Œ์ด๋ธ”์˜ ์กฐ์ธ์—์„œ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ํ–‰์€ ์กฐํ•ฉ๋˜์–ด ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค. SELECT ๋ช…๋ น๋ฌธ์˜ FROM ์ ˆ์— ์ ์–ด๋„ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ” ๋ช…์„ธ๊ฐ€ ์žˆ๊ณ , WHERE ์ ˆ์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์—ด์„ ๋น„๊ตํ•˜๋Š” ์กฐ๊ฑด์ด ์ ์–ด๋„ ํ•˜๋‚˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ์กฐ์ธ(JOIN)์ด๋ผ ํ•œ๋‹ค. โ€‹ โ€‹ ์˜ˆ์ œ 15-1) ํ•™์  ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ํ•™์ƒ๋“ค ์ค‘์—์„œ ์•„์ง ๋“ฑ๋ก์„ ํ•˜์ง€ ๋ชปํ•œ ํ•™์ƒ์ด ์žˆ๋‹ค. ๊ฐ ํ•™์ƒ์— ๋Œ€ํ•˜์—ฌ ํ•™๋ฒˆ, ์ด๋ฆ„, ๋“ฑ๋ก๋…„๋„, ํ•™๊ธฐ, ํ•™์ƒ์ด ๋“ฑ๋กํ•œ ๋‚ฉ์ž…๊ธˆ ์ด์•ก์„ ์ถœ๋ ฅํ•˜๋ผ.โ€‹ A) mysql> select student.stu_no, stu_name, fee_year, fee_term, fee_pay -> from student inner join fee -> on stud.. 2021. 2. 9.
MySQL 22๋ฒˆ์งธ์ˆ˜์—… โ–ถ ๋ถ€์† ์งˆ์˜์–ด ๋ถ€์† ์งˆ์˜์–ด๋Š”(subquery)๋Š” SELECT ๋ช…๋ น๋ฌธ์˜ ์กฐ๊ฑด์— ์žˆ๋Š” SELECT ๋ช…๋ น๋ฌธ์ด๋‹ค. ๋ถ€์† ์งˆ์˜์–ด๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๋งํ•˜๋ฉด ๋‚ด๋ถ€ ์„ ํƒ๋ฌธ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. โ€‹ ์กฐ๊ฑด) 1. ๋งŒ์•ฝ ๋ถ€์† ์งˆ์˜์–ด๊ฐ€ exists ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด select์ ˆ์—๋Š” ์˜ค์ง ํ•˜๋‚˜์˜ ์ˆ˜์‹๋งŒ ์‚ฌ์šฉ๋˜์–ด์•ผํ•œ๋‹ค. 2. select์ ˆ์— distinct๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. 3. order by์ ˆ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. โ€‹ โ€‹โ€‹ โ€‹ 1. ์ƒํ˜ธ ๊ด€๋ จ ๋ถ€์† ์งˆ์˜์–ด์˜ ์˜ˆ์ œ โ€‹ ์˜ˆ์ œ 14-2) ํ•™์ƒ ์ค‘์— ๋™์•„๋ฆฌ์˜ ๋“ฑ๊ธ‰์ด ์ผ๋ฐ˜ ํšŒ์›์ธ ํ•™์ƒ์˜ ํ•™๋ฒˆ๊ณผ ์ด๋ฆ„, ์ƒ๋…„์›”์ผ์„ ์ถœ๋ ฅํ•˜๋ผ. A) mysql> select stu_no, stu_name, birthday -> from student -> where stu_no in -> (select st.. 2021. 2. 9.
๋ฐ˜์‘ํ˜•