์๋ ํ์ธ์ ใ์ํํธ์จ์ด์๋ฆผ์ฅใ์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๋ฏธ๋ค์จ์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ, ์์ฉ ๋ถ์ผ์ ๊ฒฝํ์ ์์์์ผ๋ฉฐ MySQL๊ณผ MariaDB๋ฅผ ๋ฐํ์ผ๋ก SQL์ ํ์ฉํ ๊ฐ์ข๋ค์ ์ ์ํ๊ณ ์์ต๋๋ค. ์ ํ๋ธ ์ฑ๋ "SQL๋ฑ ํฌ" ๋ฅผ ์ด์ํ๊ณ ์์ต๋๋ค.
Hello, this is "SQL BANK". I have accumulated experience in developing database and middleware applications and in various application fields. I create tutorials utilizing SQL based on MySQL and MariaDB. I also run a YouTube channel called "SQL BANK".
Courses
Reviews
- SQL Query Book to Find and Use When You Need It, Part I
- SQL Query Book to Find and Use When You Need It, Part I
- SQL Query Book to Find and Use When You Need It, Part I
- Let's draw a data map ERD, MySQL workbench
- Freeplane for presenters
Posts
Q&A
์๋ฃ ์ค๋น๊ฐ..
์๋ ํ์ธ์ ilovepc๋.ํ์ธํด ๋ณธ ๋ฐ๋ก๋ ๋ชจ๋ ์์์ pdf ๊ฐ์ข ํ์ผ์ด ๊ฐ๊ฐ ์ฒจ๋ถ๋์ด ์์ผ๋ฉฐ ํด๋น pdf ํ์ผ์ ๋ด์ฉ ๋ณต์ฌ๊ฐ ๊ฐ๋ฅํ ํํ์ ๋๋ค.insert ๋ฌธ, SQL ๋ฑ์ด ๋ณด์ด์ง ์๋๋ค๋ ๋ง์์ด ์ด๋ค ๊ฐ์ข์์ ์ฒดํฌํ์ ๋ถ๋ถ์ธ์ง ์๋ ค์ฃผ์๋ฉด ๋ค์ ํ์ธํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
- 0
- 2
- 114
Q&A
[์คํ ๋ฆฌ ๊ทธ ์์ฒด, ์ค์ ํ ์ด๋ธ](9:51)max_recursive_iterations
์๋ ํ์ธ์ ๋ฅ์ฌ์ ๋.๊ฐ์ข ์์ฑ ์ ์ฌ์ฉํ DB์ ๋ฒ์ ์ด MariaDB 10.x์ด์์ด๋ผ MySQL8.x๊ณผ ๋ค๋ฅธ ์ค์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.์์ ์ธํ๋ฐ AI ์ธํด๋์ ๋ต๋ณ๊ณผ ๊ฐ์ด cte_max_recursion_depth ๊ฐ์ ์กฐ์ ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.SHOW VARIABLES LIKE 'cte_max_recursion_depth';๊ธฐ๋ณธ๊ฐ์ 1000 ์ด๋ฏ๋ก ๊ต์๊ณผ ๊ฐ์ด 100000 ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. ์ฐธ๊ณ ๋ก, ์ธ์คํจํ๋ ๋ฒ์ ์ ๋ฐ๋ผ์ ์ ๊ณต๋๋ ์์คํ ๋ณ์๋ค์ ์ ๊ทธ๋ ์ด๋ ๋ด์ฉ์ ๋ฐ๋ผ ์ถฉ๋ถํ ๋ณํ ์ ์์ต๋๋ค. ํ์ง๋ง ํด๋น ๊ฒฝ์ฐ๋ MariaDB์ MySQL์ด ์๋ก ๋ค๋ฅธ ๊ธธ์(์ ํ๊ตฐ) ๊ฐ๊ณ ์๋๋ฐ์ ๋ฐ์ํ ์ด์ข DB ์ ํ ๊ฐ ์์คํ ๋ณ์๋ช ์ฐจ์ด์ ๋๋ค.์ด๋ฌํ ๋ถ๋ถ์ ๋ DB๊ฐ ๋ฟ๋ฆฌ๊ฐ ๊ฐ์ง๋ง ์์ ํ ๋ค๋ฅธ ๊ฒ๋, ๋ ๋๊ฐ์ ๊ฒ๋ ์๋๋ผ ๋ญ๋ผ ์ ํํ ์ค๋ช ์ ๋๋ฆฌ๊ธฐ๊ฐ ์ฝ์ง ์์ต๋๋ค. ๊ฐ์ ๋ชฉ์ ๊ณผ ์ฉ๋์ธ๋ฐ ์ ํ์ด ๋ฌ๋ผ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ์๋๊น ํฉ๋๋ค.(ํฅํ ์ผ๋ถ ๊ฐ์ข๋ค์์๋ MySQL8.x ๊ธฐ๋ฐ + ์ํฌ๋ฒค์น๋ฅผ ๊ฐ๋ฐํ๊ฒฝ์ผ๋ก์จ ๊ณ ๋ ค ์ค์ ๋๋ค.)
- 1
- 2
- 503
Q&A
urlcodemap ์ฟผ๋ฆฌ ํ์ผ ํ์ธ์์ฒญ
๋ง์ํ์ ํด๋น ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ๋งํฌ๋ก ๋จ๊น๋๋ค. ๋ค์ด๋ก๋ํ๊ฑฐ๋ ๋ณต์ฌ ๋ฐ ๋ถ์ฌ ๋ฃ๊ธฐ๋ฅผ ํตํด ์ํํ์๋ฉด ํ ์ด๋ธ๊ณผ ํด๋น ๋ฐ์ดํฐ๊ฐ ์์ฑ ๋ฐ ์ ๋ ฅ๋ฉ๋๋ค. https://drive.google.com/file/d/1kkYR7c_xZWpHKQ0TCSJRKyajK0qCrK5j/view?usp=sharing๊ฐ์ฌํฉ๋๋ค.
- 1
- 2
- 256
Q&A
[๊ณต์ ][๋์ฌ์ ์ก์ , ํ์ฐจ์ ๋ณดํ ์ด๋ธ]contents2 ์์ฑ๊ด๋ จ
์๋ ํ์ธ์ ๋ฅ์ฌ์ ๋์ฐ์ ์ ๊ฐ ๊ฐ์ข๋ฅผ ๋ง๋ DB๊ฐ MariaDB 10.x์ด์์ด๋ผ MySQL8.x์์ ๊ณง๋ฐ๋ก ์ ์ฉํ๋ฉด ๊ฐ๋ ๋ง์ํ์ ๋ฅ์ ๊ฐ์ ์ค๋ฅ๋ค์ด ๋ฐ์ํฉ๋๋ค.MySQL8.x์์ GROUP_CONCAT ํจ์์ ์ฌ์ฉ๋ ๋ฌธ์์ด ์ปฌ๋ผ๊ฐ์ ํฌ๊ธฐ๊ฐ 1024๋ฅผ ๋์ด๊ฐ๋ฉด ์ค๋ฅ๋ฅผ ๋ฐ์ํฉ๋๋ค.์ธ๊ธํ์ ๋ฐ์ ๊ฐ์ด ํฌ๊ธฐ ์กฐ์ ํ ์์ ์ด ์ ์์ฒ๋ฆฌ๋ฉ๋๋ค.๋ณ๊ฒฝ ์ ์ ํ์ธ์ ํ๋ฉด 1024๋ก ์กํ ์์์ ์ ์ ์์ต๋๋ค.show variables like '%group_concat_max_len%';ํด๊ฒฐ๋ฐฉ์ ์ฌ๋ ค์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.(๊ทธ๋ฐ๋ฐ ์ธํ๋ฐ AI์ธํด ์ฌ์ฐ๊ฐ ์ ๋ต๋ณ๋ณด๋ค ๋ ์ฌ์ธํ๊ณ ์ ํํด ๋ณด์ ๋๋ค. ๐ ์ฐธ๊ณ ํ์๋ฉด ๋ณด๋ค ๋์ ๋์ค ๋ฏํฉ๋๋ค.)
- 1
- 2
- 354
Q&A
[์ฃผ์ธ๊ณต๊ณผ ๋ฑ์ฅ์ธ๋ฌผ์ ์งํฉ์ฑ, ์น์์ค์ ๋ณดํ ์ด๋ธ]์๊ฐ๋ช ์์ฑ๊ด๋ จ
์ถฉ๋ถํ ์๋ฏธ ์๋ ๋ฐ์ดํฐ ๊ฐ๊ณต์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.ํ์ฌ ๋ฐ์ดํฐ๋ค ์กฐ๊ฑด์ด ์ผ๋ถ ๋ง์ง ์์ง๋ง ์๋์ ์ฟผ๋ฆฌ๋ก ๊ตฌํํด ๋ณด์์ต๋๋ค.-- ์ค๋ณต๋ ๋ ์ฝ๋๋ค ์ค ํ ๊ฑด๋ง ๋จ๊ธฐ๊ณ ์ญ์ DELETE FROM kidsetWHERE (kid, meaning)IN (SELECT kid, meaning FROM (SELECT kid, meaning,ROW_NUMBER() OVER (PARTITION BY kid ORDER BY meaning) AS row_number_FROM kidset) aWHERE a.row_number_ != 1);-- ์ค๋ณต๋ ๋ ์ฝ๋๋ค ์ค ํ ๊ฑด๋ง ๋จ๊ธฐ๊ณ ์ญ์ DELETE FROM eidsetWHERE (eid, meaning)IN (SELECT eid, meaning FROM (SELECT eid, meaning,ROW_NUMBER() OVER (PARTITION BY eid ORDER BY meaning) AS row_number_FROM eidset) aWHERE a.row_number_ != 1);-- ์๊ฐ๋ช , ํ์์์ด๋ ์ปฌ๋ผ์ ๊ฐ๊ฐ ์ค๋ณต๋์ง ์์ ์ ์ผํ ๊ฐ๋ค๋ก ์กฐํ-- ๋์์ seq ์ปฌ๋ผ์ ์ํ์ค๊ฐ์ ์์ฑํ์ฌ ์์ํ ์ด๋ธ nm ์์ฑSET @rownum :=0;SET @rownum1:=0;SET @rownum2:=0;CREATE OR REPLACE TABLE nmASWITHa AS (SELECT @rownum1:=@rownum1+1 AS num, CONCAT('*',kid) AS idset FROM kidset),b AS (SELECT @rownum2:=@rownum2+1 AS num, CONCAT(eid,'*') AS idset FROM eidset)SELECT@rownum:=@rownum+1 AS seq,a.idset AS ์๊ฐ๋ช , b.idset AS ํ์์์ด๋FROM a, bWHERE b.num = a.numORDER BY a.idset, b.idset;-- ๊ฒ์ฆ(0๊ฑด ์ ์)SELECT ์๊ฐ๋ช ,COUNT(*) FROM nmgroup BY ์๊ฐ๋ช HAVING COUNT(*)>1;-- ๊ฒ์ฆ(0๊ฑด ์ ์)SELECT ํ์์์ด๋,COUNT(*) FROM nmgroup BY ํ์์์ด๋HAVING COUNT(*)>1;-- ์๊ฐ๋ช ์ ์ผํ ๊ฐ, ํ์์์ด๋ ์ ์ผํ ๊ฐ์ผ๋ก wn_novel ํ ์ด๋ธ ํด๋น ์ปฌ๋ผ UPDATEUPDATE wn_novel a INNER JOIN nmON a.`์ํ๋ฒํธ` = nm.seqSETa.`์๊ฐ๋ช ` = nm.`์๊ฐ๋ช `,a.`ํ์์์ด๋` = nm.`ํ์์์ด๋`;๋ฌธ์ ๋ wn_novel ํ ์ด๋ธ์ ์ด 1,002 ๊ฑด์ธ๋ฐ ๋ฐํด eidset ํ ์ด๋ธ์(ํ์์์ด๋) 329 ๊ฑด(์ ์ผํ ๊ฐ) ๋ฐ์ ๋์ง ์์ ์ ์ผํ ๊ฐ์ ๋ฃ์ ์๊ฐ ์์ต๋๋ค. kidset ํ ์ด๋ธ์(์๊ฐ๋ช ) 1,372 ๊ฑด(์ ์ผํ ๊ฐ)์ด๋ฏ๋ก ์ถฉ๋ถํ ์ ์ผํ ๊ฐ ์ ๋ ฅ์ด ๊ฐ๋ฅํฉ๋๋ค.eidset ํ ์ด๋ธ์ eid ์ปฌ๋ผ๊ฐ์ด ์ ์ผํ๋๋ก 1,002 ๊ฑด ์ด์ ๋ฐ์ดํฐ ์ถ๊ฐ ํ ์์ ์ฟผ๋ฆฌ๋ค์ ์ํํ๋ค๋ฉด ์ ์ ์ฒ๋ฆฌ๋ ๊ฒ์ผ๋ก ์ฌ๊ฒจ์ง๋๋ค. โ ๊ฐ์ธ ์ฌ์ ์ผ๋ก 24~26์ผ(๋ค์ ์ฃผ ์์์ผ)๊น์ง ์๋ฆฌ๋ฅผ ๋น์๋๋ค. ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์๋ฉด ์ฐจ์ฃผ ํ์์ผ ์ดํ๋ก ๊ผญ ๋ต๋ณ๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค. ์ํด๋ถํ๋๋ฆฝ๋๋ค ๊ฐ์ฌํฉ๋๋ค.
- 1
- 1
- 253
Q&A
[์ฃผ์ธ๊ณต๊ณผ ๋ฑ์ฅ์ธ๋ฌผ์ ์งํฉ์ฒด,์น์์ค์ ๋ณดํ ์ด๋ธ]wn_novelํ ์ด๋ธ ์์ฑ
ํด๋น ๋ถ๋ถ์ด ์๋ต๋ ์ฑ pdf ๋ฌธ์ํ๋์ด ์์์ต๋๋ค.์ฒจ๋ถ ํ์ผ์ ์ ๋ฐ์ดํธํด๋์์ต๋๋ค. ๊ฐ์ข "์ฃผ์ธ๊ณต๊ณผ ๋ฑ์ฅ์ธ๋ฌผ์ ์งํฉ์ฒด, ์ธ ์์ค ์ ๋ณด ํ ์ด๋ธ"์ ๊ต์, "03-2 DATA ์์ฑ-์น์์ค ์ ๋ณด. pdf" ํ์ผ์ ๋ค์ ๋ค์ด๋ก๋ํ์ญ์์ค. ์ฒดํฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
- 1
- 1
- 220
Q&A
[ERD๋ก ๋ณด๋ ์คํ ๋ฆฌ์ ํ ์ด๋ธ์ด๋ผ๋ ๋ฑ์ฅ์ธ๋ฌผ]ํ๊ทธ์ ๋ณด ํ ์ด๋ธ ์ค๊ณ๊ด๋ จ
์๋ ํ์ธ์ ๋ฅ์ฌ์๋.1.์น์์ค๋ณํ๊ทธ์ค์ ํ ์ด๋ธ์ ์๋ก ํ๋ ๋ง๋๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.ํํํ์๋ฉด, "ํ๊ทธ์ ๋ณด(์ฐธ์กฐ)-์น์์ค๋ณํ๊ทธ์ค์ (์ค์ )-์น์์ค์ ๋ณด(๋ง์คํฐ)" ์ด๊ฒ ๋ค์. ์น์์ค๋ณํ๊ทธ์ค์ ํ ์ด๋ธ์ ํ๊ทธ์ ๋ณด์ ์น์์ค์ ๋ณด ๊ฐ๊ฐ์ PK๋ฅผ ๋ณตํฉํค๋ก ๊ฐ์ง ํ ์ด๋ธ์ด ๋๊ฒ ์ฃ .(์ํ๋ฒํธ+tgcd)์์ ํ ์ด๋ธ 3๊ฐ ๋ชจ๋ ๋ง๋ค๊ณ ์ด์ํด์ผ ํ๋ ํ ์ด๋ธ์ ๋๋ค. 2.์ฐ์ฌ์์ผ ํ ์ด๋ธ์ ๊ฒฝ์ฐ, ์ธ๊ธํ์ ๊ฒ์ฒ๋ผ ์ฝ๋/์์ผ ์ ๋ณด๋ฅผ ๊ฐ์ง ํ ์ด๋ธ์ ์๋ก ๋ง๋ค์ด ์ํ๋ฒํธ+์์ผ์ฝ๋ ํํ๋ก ๋ณตํฉํค๋ฅผ ์์ฑํด๋ ์๊ด์์ต๋๋ค. ๋ค๋ง ํ๊ทธ ์ ๋ณด์๋ ๋ฌ๋ฆฌ '์์ผ'์ด๋ผ๋ ์ ๋ณด๋ ์ผ~ํ ๊น์ง ๋ ์ด์ ๋์ด๋์ง ์๋ ์์์ ์ด๊ณ ์ ํ์ ์ธ ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฏ๋ก ์ฝ๋๊ฐ์ ๋ถ์ฌํ์ง ์๊ณ ๊ทธ๋๋ก ์ฐ๊ฑฐ๋, ํน์ ์ฝ๋๊ฐ์ ์ฐ๋๋ผ๋ ํ ์ด๋ธ์ด ์๋ ๋ฐ์ดํฐ ์์ค์์ ์(MO),ํ(TU),์(WE) ๋ฑ๊ณผ ๊ฐ์ด ๊ฐ ์์ฒด๋ฅผ ํ๋์ ๊ท์น์ฒ๋ผ ์ ์ํด ์ฐ๊ธฐ๋ ํฉ๋๋ค.(ํ ์ด๋ธ์ด ์์ด๋ ๋ช ์ธ์์ ๊ธฐ์ฌ๋ ๋ฐ์ดํฐ ์ ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก)์ฐธ๊ณ ๋ก, ๋์ฉ๋๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ์ดํฐ์จ์ดํ์ฐ์ค์ ๊ฒฝ์ฐ ์ฝ๋๊ฐ์ด ๋ฐ๋ก ์ ์๋์ด ์๋๋ผ๋ ์ฑ๋ฅ์ ๋ฌธ์ ๋ก ์ธํด ์ฝ๋์ ๊ฐ ๋ชจ๋๋ฅผ ์ค์ ํ ์ด๋ธ์ ํจ๊ป ์ ์ฅํด ๋๋ ๊ฒฝ์ฐ๋ ์ข ์ข ์์ต๋๋ค.(์กฐ์ธํด ๊ฐ์ ธ์ค๊ธฐ๋ณด๋ค๋ ๊ทธ๋๋ก ์ถ๋ ฅํด ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด ๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ด๋ฉฐ, ์ฝ๋ํ ์ด๋ธ์ ์์ ์ด ์ผ์ด๋์ง ์๋๋ค๋ ์ ์ ์กฐ๊ฑด๋ ์์ด์ผํฉ๋๋ค๋ง.)
- 1
- 1
- 242
Q&A
[๊ณต์ ][์ํฌ๋ฐด์น์ฌ์ฉ๊ด๋ จ]ํ๊ธ๊นจ์ง
๋งค์ฐ ์ ์ฉํ ์ํฌ๋ฒค์น ํ์ฉ Tip์ ๋๋ค. ์ค์ ๋ก ์ํฌ๋ฒค์น ์ ์ ๋ค์ด ERD๋ฅผ ํ์ฉํ ๋ ๊ฐ์ฅ ๋ถํธํดํ๋ ์ ๋ค ์ค ํ๋๊ฐ ๋ฐ๋ก 'ํ๊ธํ' ๋ถ๋ถ์ ๋๋ค. ๊ฐ๋ฐ์ฌ์์ ๊ด์ฌ์ ๋ ๊ฐ์ ธ์ฃผ์์ผ๋ฉด ์ข๊ฒ ๋ค์. ( ์ ์ญ์ ๊ฐ์ข๋ฅผ ๋ง๋ค๋ฉด์ '๋๋ ๊ณ ๋ 12'๋ก ๋ชจ๋ ํฐํธ๋ฅผ ๋ณ๊ฒฝํด ๋๊ณ ์์ ํ์ต๋๋ค๋ง ๊ทธ๋๋ ๊นจ์ง๋ ๋ถ๋ถ์ ๊นจ์ ธ ๋ณด์ด๋๋ผ๊ณ ์. ) ๊ธ ๋จ๊ฒจ์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
- 1
- 1
- 523
Q&A
[๊ฐ์๋ฐ์ดํฐ ์์ฑ]
์๋ ํ์ธ์ ๋ฅ์ฌ์ ๋.์ฐ์ ์ ๊ฐ ์ฌ์ฉํ๋ MariaDB์๋ฒ ๋ฒ์ ์ ์๋ ค๋๋ฆฌ๋ฉด 10.6 ๋ฐ 11.x ์ ๋๋ค. ํน์ ๋ฒ์ ๋ฌธ์ ์์ง๊ฐ ์์ ์ ์์ด ๋ง์๋๋ฆฝ๋๋ค.์์ฒญํ์ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.DELETE FROM sc_paymentWHERE (usr_phnumber, DATE_FORMAT(pay_dt,'%Y-%m-%d %H'))IN ( SELECT usr_phnumber, pay_dt FROM ( SELECT usr_phnumber,DATE_FORMAT(pay_dt,'%Y-%m-%d %H') AS pay_dt ,ROW_NUMBER() OVER (PARTITION BY usr_phnumber ORDER BY usr_phnumber,DATE_FORMAT(pay_dt,'%Y-%m-%d %H') DESC) AS row_number_ FROM sc_payment ) a WHERE a.row_number_ != 1);์์ ์ฟผ๋ฆฌ๋ ๋ -์-์ผ-์๊น์ง๋ง ๋ณด์์ ๋ ํ๋ฃจ๋์ ์ค๋ณต๋ ๊ฑด๋ค์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด ๋จ์๊น์ง ํ์๋ ค๋ฉด DATE_FORMAT์ ์๊ฐํ์ ํฌ๋งท์ ์ด ๋จ์๊น์ง ์ ์ ํ ๊ธฐ์ฌํด ์ฃผ์๋ฉด ๋ฉ๋๋ค.์ํ ๋ด์ฉ์ ๋์ผํ ์ ํ๋ฒํธ์ ๋ํด ํ๋ฃจ ๋์ ๋ง์ง๋ง ๊ฑด์๋ง ๋จ๊ธฐ๊ณ ๋๋จธ์ง๋ฅผ ์ญ์ ํ๋ ์ฟผ๋ฆฌ์ ๋๋ค. ์ ์ฌํ ๋ด์ฉ์ด ์ฑ๋์ ์์ด URL์ ๋จ๊น๋๋ค.https://www.youtube.com/watch?v=tqClIDsoa3U&t=50s
- 1
- 1
- 195
Q&A
[๊ด๊ณ์ ์์ชฝ ์๋์ ์๋ฏธ](1:22) titles ํ ์ด๋ธ ์์ฑ๊ด๋ จ
์๋ ํ์ธ์ ๋ฐ๊ฐ์ต๋๋ค ๋ฅ์ฌ์ ๋.๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด, ๋์ผํ๋ ๋ค๋ฅด๋ ์๊ด์์ต๋๋ค.(๋ง์ถ์ด ์ฃผ์ง ์์๋ ๋ฉ๋๋ค) ๋ฌผ๋ฆฌ์ ์ผ๋ก๋ ForeignKeysํญ์(์ดํ Fํญ) ๋ช ์๋ ์ด๋ฆ๋ค์ ํ์ฉํด ๊ฐ์ฒด๊ฐ ์์ฑ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.MySQL์ํฌ๋ฒค์น ERD ํ๋ฉด์์ ํ๋จ์ Indexesํญ์(์ดํ Iํญ) 'fk_'๋ก ํ์๋๋ ์ธ๋ฑ์ค๋ค์ PK ํน์ ์ง์ ์ ์ ๊ฐ ์์ฑํ ์ธ๋ฑ์ค๊ฐ ์๋๋ผ๋ฉด ๋ค์ ์์ง์ ์ธ ๋ฉด์ด ์์ต๋๋ค. '์ธ๋ ํค๋ฅผ ์์ฑํ๋ฉด ๋ฐ๋์ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋๋ค'๋ผ๋ ์ฌ์ค์ ์๋ ค์ฃผ๋ ์ ๋๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.๋ฐ๋ผ์ ๋์ค์ Forward Engineer ๋ฑ์ ๊ธฐ๋ฅ์ ํตํด(ERD->ํ ์ด๋ธ์์ฑ) ์ค์ ๋ฌผ๋ฆฌ์ ์ธ ํ ์ด๋ธ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๋๋ฉด, ERD ํ๋จ์ ๋ณด์ด๋ ํญ๋ค ์ค Fํญ์ ์ ์๋ ๋ด์ฉ์ผ๋ก ForeignKey๊ฐ ์์ฑ๋ฉ๋๋ค. Iํญ์ ์ ์๋ FK๋ช ์ ๋ํ๋์ง ์์ต๋๋ค.(์ํฌ๋ฒค์น์ ์จ๊ฒจ์ง ๋ ๋ค๋ฅธ ์ค์ ์ด ์๋ค๋ฉด ๋ชจ๋ฅด์ง๋ง์) (ํ ์ด๋ธ ์์ฑ ์คํฌ๋ฆฝํธ ์ค๋ก)CREATE TABLE titles (emp_no varchar(8) NOT NULL,title varchar(50) NOT NULL,from_date date NOT NULL,to_date date DEFAULT NULL,PRIMARY KEY (`emp_no`,`title`,`from_date`),CONSTRAINT emp_no1 FOREIGN KEY (`emp_no`) REFERENCES employees (`emp_no`) ON DELETE NO ACTION ON UPDATE NO ACTION);
- 1
- 1
- 194