[MySQL] EXCEL to DB insert

κΉ€μ •λ―ΌΒ·2024λ…„ 1μ›” 2일
1
post-thumbnail

πŸ’‘ μ§€μ—­μ½”λ“œ 관리

🧲 λ‹€μš΄λ‘œλ“œ

https://www.code.go.kr/stdcode/regCodeL.do

법정동 μ½”λ“œ μ „μ²΄μžλ£ŒλŠ” .txt둜 λ‹€μš΄λ‘œλ“œκ°€ λœλ‹€. EXCEL μ‹€ν–‰ ν›„ 볡사 λΆ™μ—¬λ„£κΈ° ν•œλ‹€.

λ§Žμ€ 데이터 쀑 ν˜„μž¬ μ‘΄μž¬ν•˜λŠ” λ²•μ •λ™μ½”λ“œ μ•žμ—μ„œ 5μžλ¦¬μ™€ 00ꡬ κΉŒμ§€λ§Œ μ €μž₯ν•  μ˜ˆμ •μ΄λ‹€.

πŸ”‘ 데이터 가곡

EXCEL ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ 데이터λ₯Ό κ°€κ³΅ν•œλ‹€.

5자리λ₯Ό κ°€μ Έμ˜€λŠ” ν˜•νƒœλŠ” =LEFT(A2,5)을 μ‚¬μš©ν•΄μ„œ κ°€μ Έμ˜¬ 수 있고, 00ꡬ ν˜•νƒœλ‘œ κ°€κ³΅ν•˜κΈ° μœ„ν•΄μ„œλŠ” =LEFT(B2, FIND(" ", B2, FIND(" ",B2)+1))을 μ‚¬μš©ν•΄μ„œ κ°€μ Έμ˜¬ 수 μžˆλ‹€.

πŸͺ“ μ—λŸ¬λ°œμƒ

μ΄λ ‡κ²Œ 데이터λ₯Ό κ°€κ³΅ν•œ 경우 μ•„λž˜μ™€ 같이 μ—λŸ¬κ°€ λ‚˜λŠ” 뢀뢄을 확인 ν•  수 μžˆλ‹€.

πŸ› οΈ 해결방법

띄어쓰기 2번 κΈ°μ€€μœΌλ‘œν•˜μ—¬ μ™Όμͺ½ 데이터λ₯Ό 좜λ ₯ν•œ 것 이기 λ•Œλ¬Έμ— 값이 μ œλŒ€λ‘œ 좜λ ₯λ˜μ§€ μ•ŠλŠ” 지역에 λŒ€ν•΄μ„œλŠ” =B2 & " "을 μ‚¬μš©ν•˜μ—¬ 띄어쓰기λ₯Ό μΈμœ„μ μœΌλ‘œ μΆ”κ°€ν•΄μ£Όμ–΄ ν•΄κ²°ν•˜μ˜€λ‹€.

πŸͺ“ πŸͺ“ μ—λŸ¬λ°œμƒ

μ΄λ ‡κ²Œ 정리가 λ˜λŠ” 쀄 μ•Œμ•˜λŠ”λ° μ•„λž˜μ™€ 같이 띄어쓰기가 ν•˜λ‚˜λ„ μ—†λŠ” 뢀뢄도 μ—λŸ¬κ°€ λ°œμƒν•˜μ˜€λ‹€.

πŸ› οΈ πŸ› οΈ 해결방법

μœ„μ— μ„€λͺ…ν–ˆλ“―이 띄어쓰기 2번 κΈ°μ€€μœΌλ‘œ μ™Όμͺ½ 데이터λ₯Ό 좜λ ₯ν•œ κ²ƒμ΄λ‹ˆ =B2 & " " λ‘λ²ˆ λ„μ–΄μ“°κΈ°λ‘œ ν•΄κ²°ν•˜μ˜€λ‹€.

κ²°κ³ΌλŠ” μ•„λž˜μ™€ 같이 λ‚˜μ˜¨λ‹€.

βœ‚οΈ 데이터 쀑볡 제거

μƒˆλ‘œμš΄ μ‹œνŠΈλ₯Ό μ—΄μ–΄ 데이터λ₯Ό λΆ™μ—¬λ„£κ³  λͺ¨λ‘ λ“œλž˜κ·Έν•˜μ—¬ 쀑볡 제거λ₯Όν•œλ‹€.

πŸ’Ž 이제 μ›ν•˜λŠ” 데이터 ν˜•μ‹μœΌλ‘œ DB에 μ €μž₯될 μ€€λΉ„κ°€ λ˜μ—ˆλ‹€.

πŸšͺ ν…Œμ΄λΈ” 생성

μ§€μ—­λ²ˆν˜Έμ™€ ꡬ 이름을 μ €μž₯ν•œ μ»¬λŸΌμ„ 가진 ν…Œμ΄λΈ”μ„ μƒμ„±ν•œλ‹€.

CREATE TABLE `AREA` (
  `AREA_CODE` char(5) NOT NULL,
  `AREA_NAME` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`AREA_CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='지역 μ½”λ“œ κ΄€λ ¨ ν…Œμ΄λΈ”';

πŸͺ„ INSERT 쿼리문 생성

EXCEL 데이터λ₯Ό DB둜 μ €μž₯ν•˜κΈ° μœ„ν•΄μ„œ 각 ν–‰ λ§ˆλ‹€ INSERT문을 μž‘μ„±ν•œλ‹€.

μ—‘μ…€μ—μ„œλŠ” μ•„μ£Ό μœ μš©ν•œ ν•¨μˆ˜μΈ CONCATENATE λ₯Ό μ œκ³΅ν•œλ‹€.

=CONCATENATE("INSERT INTO AREA VALUES('"&A1&"', '"&TRIM(B1)&"');")

μ—¬κΈ°μ„œ μ€‘μš”ν•œ 것은 λ¬Έμžμ—΄μ΄λ©΄ '' 을 κ³ λ €ν•˜μ—¬ λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.

πŸͺ„ EXCEL -> DB μ €μž₯

μ΅œμ’…μ μœΌλ‘œ INSERT 문을 λͺ¨λ‘ λ³΅μ‚¬ν•˜μ—¬ DB에 μ €μž₯ν•΄μ£Όλ©΄ λœλ‹€.

πŸ‘€ 데이터 확인

μ €μž₯된 데이터λ₯Ό 확인할 수 μžˆλ‹€.


마무리

μ—‘μ…€λ‘œ DB에 데이터λ₯Ό λŒ€λŸ‰μœΌλ‘œ μ €μž₯ν•  수 μžˆλ‹€κ³  μ•Œκ³ μžˆμ—ˆμ§€λ§Œ μ‹€μ œλ‘œ μ‚¬μš©ν•΄λ³΄λŠ” 것은 μ²˜μŒμ΄μ˜€λ‹€.

엑셀도 μ–΄λŠμ •λ„ κ³΅λΆ€ν•΄μ„œ μ•Œμ•„λ‘λ©΄ λ§Žμ€ 도움이 될 것이라고 생각이 λ“€μ—ˆλ‹€.

뿐만 μ•„λ‹ˆλΌ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ΄λ‚˜ 배치 같은 μž‘μ—…μ„ ν•  λ•Œ μ•„μ£Ό μœ μš©ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμ„ 것 κ°™λ‹€.


0개의 λŒ“κΈ€