Programming 36

🗂 Python으로 CSV → MSSQL 대량 업로드 (속도 비교 포함)

CSV 데이터를 MSSQL로 업로드할 때, 단순 반복문을 사용하면 속도가 느려서 답답한 경우가 많습니다. 이번 포스팅에서는 pandas, SQLAlchemy, fast_executemany, BULK INSERT 등 다양한 방법으로 CSV → MSSQL 대량 업로드하는 방법을 정리하고, 속도 비교도 함께 해보겠습니다. 🐍📊🛢️✅ 사용 환경Python 3.10pandaspyodbcSQLAlchemyMSSQL Server 2019📂 예제 CSV 파일 (data.csv)id,name,score1,Alice,952,Bob,883,Charlie,76...※ 실제 예제에서는 10만 건 이상의 데이터를 사용해 속도 테스트를 진행합니다.🔗 1. pandas + to_sql() 기본 사용법import panda..

Programming 2025.03.24

🗂 Python에서 리스트 ↔ 문자열 변환 방법 총정리 (join, split 완전 이해하기)

Python에서 리스트(list)와 문자열(str) 사이 변환은 정말 자주 쓰입니다.하지만 join()과 split()의 차이를 정확히 모르면, TypeError, 공백 문제, 디버깅에 많은 시간을 쓸 수 있어요. 😓이번 포스팅에서는 join()과 split()을 활용한 리스트 ↔ 문자열 변환 방법을 핵심 예제 중심으로 정리해봅니다. ✅🔁 1. 리스트 → 문자열: join() 사용✅ 기본 문법"구분자".join(리스트)예제 👇fruits = ["apple", "banana", "cherry"]result = ", ".join(fruits)print(result) # apple, banana, cherryjoin()은 문자열만 요소로 갖는 리스트에서만 사용 가능!", "는 리스트 요소 사이에 들어갈..

Programming 2025.03.23

🔐MSSQL에서 테이블 잠금(Lock)과 Deadlock 처리법 총정리

MSSQL을 사용하다 보면 잠금(Lock)이나 데드락(Deadlock) 에러 메시지를 만나게 됩니다."왜 내 쿼리가 멈췄지?" "다른 세션이 잡고 있어서 대기 중입니다?" 이런 경험 다들 한 번쯤 있으시죠?이번 포스팅에서는 MSSQL에서 잠금이 발생하는 이유, Deadlock을 예방하고 해결하는 방법까지 쉽게 설명해보겠습니다. ✅🔍 1. Lock(잠금)이란?잠금은 여러 사용자가 동시에 데이터를 읽거나 쓸 때 데이터의 일관성을 보장하기 위한 메커니즘입니다.📌 주요 Lock 종류Lock 종류설명Shared Lock (S)데이터를 읽을 때 부여. 다른 Shared는 허용되지만 Exclusive는 막음Exclusive Lock (X)데이터를 수정할 때 부여. 다른 어떤 Lock도 허용되지 않음Update L..

Programming 2025.03.23

🔁 Python으로 MSSQL 반복 쿼리 실행 및 자동화 방법

Python을 활용하면 MSSQL 쿼리 실행을 반복하거나 예약 실행(자동화)할 수 있습니다. 이 글에서는 pyodbc와 schedule 라이브러리를 사용하여 반복 쿼리 및 자동화 작업을 구현하는 방법을 정리해봅니다. ✅📌 1. Python에서 MSSQL 연결하기MSSQL과 연결하려면 pyodbc를 사용합니다.pip install pyodbcimport pyodbc# MSSQL 연결 설정conn = pyodbc.connect( 'DRIVER={ODBC Driver 17 for SQL Server};' 'SERVER=서버주소;' 'DATABASE=데이터베이스명;' 'UID=아이디;' 'PWD=비밀번호')cursor = conn.cursor()✅ ODBC 드라이버가 없다면 Micr..

Programming 2025.03.22

📤 MERGE 문으로 MSSQL에서 UPSERT 처리하는 방법 완벽 정리

MSSQL에서 데이터를 넣을 때,이미 있으면 UPDATE, 없으면 INSERT 하고 싶을 때가 많습니다.이럴 때 유용한 기능이 바로 MERGE 문입니다. ✅이번 포스팅에서는 MERGE 문을 활용해서 UPSERT (Insert + Update) 처리하는 방법을 정리해볼게요.🎯 MERGE 문이란?MERGE 문은 소스(Source) 테이블과 대상(Target) 테이블을 비교해서 다음 3가지 작업을 자동으로 처리해주는 문법입니다:대상에 없으면 INSERT대상에 이미 있으면 UPDATE필요하면 조건에 따라 DELETE도 가능📌 즉, 조건에 따라 INSERT / UPDATE / DELETE를 한 번에 처리할 수 있는 강력한 SQL 구문입니다.🧪 MERGE 기본 구조MERGE INTO TargetTable AS..

Programming 2025.03.22

🚀 MSSQL에서 레코드 가져오기 (TOP, OFFSET, LEAD 등) 완벽 정리

MSSQL을 사용할 때 특정 개수의 레코드만 조회하거나 앞뒤 레코드와 비교할 일이 많습니다.이번 포스팅에서는 TOP, OFFSET, LEAD, ROW_NUMBER 등을 활용한 레코드 추출 방법을 정리해드립니다. ✅ 🎯 1. TOP으로 상위 N개 레코드 가져오기가장 간단한 방식입니다. TOP 키워드를 사용하면 정렬된 결과 중 상위 일부만 가져올 수 있어요.-- 예: 가장 비싼 제품 5개 가져오기SELECT TOP 5 *FROM ProductsORDER BY Price DESC;✅ ORDER BY 없이 TOP만 사용하면 예측 불가능한 결과가 나올 수 있으니 주의!🎯 2. OFFSET ... FETCH로 페이징 처리하기OFFSET과 FETCH NEXT는 페이징 처리할 때 자주 사용됩니다.-- 예: 11~..

Programming 2025.03.21

🚀 MSSQL에서 중복 데이터 처리(중복 제거 및 찾기) 완벽 가이드

MSSQL을 사용할 때 중복 데이터는 성능 저하뿐만 아니라 데이터 분석의 신뢰성을 떨어뜨릴 수 있습니다. 이번 포스팅에서는 MSSQL에서 중복 데이터를 쉽고 빠르게 처리하는 방법을 소개하겠습니다. ✅🎯 1. 중복 데이터 찾기중복 데이터를 찾을 때는 GROUP BY와 HAVING 절을 활용하면 쉽게 확인할 수 있습니다.-- 중복 데이터 찾기 예시SELECT column1, column2, COUNT(*) AS 중복횟수FROM table_nameGROUP BY column1, column2HAVING COUNT(*) > 1;✅ 위 쿼리는 중복된 컬럼 값과 해당 값이 중복된 횟수를 표시합니다.🎯 2. 중복 데이터 제거하기 (삭제 방법)중복 데이터 삭제는 주로 CTE(Common Table Expressio..

Programming 2025.03.20

🚀 MSSQL에서 날짜 연산 쉽게 하기! (`DATEADD`, `DATEDIFF`, `GETDATE` 활용)

MSSQL에서 날짜 데이터를 다룰 때 연산이 필요한 경우가 많습니다.예를 들어, "30일 후 날짜 구하기", "두 날짜 간 차이 계산" 같은 연산이 필요할 때가 있죠.이번 포스팅에서는 DATEADD, DATEDIFF, GETDATE 함수를 활용하여 날짜 연산을 쉽게 하는 방법을 정리해보겠습니다! ✅🎯 1. 현재 날짜 가져오기 (GETDATE())GETDATE()는 현재 날짜와 시간을 반환하는 함수입니다.SELECT GETDATE() AS CurrentDateTime;✅ 출력 예시📅 2025-03-19 14:35:20.123만약 날짜만 필요하다면?SELECT CAST(GETDATE() AS DATE) AS CurrentDate;📅 2025-03-19🎯 2. 특정 날짜에서 일, 월, 년 더하기 (DA..

Programming 2025.03.19

🚀 MSSQL에서 문자열 합치기 & 분할하기 완벽 가이드

MSSQL에서는 문자열 데이터를 다룰 때 문자열 합치기(Concatenation) 와 문자열 분할(Splitting) 이 자주 필요합니다.이번 포스팅에서는 다양한 방법을 통해 문자열을 합치고, 특정 구분자로 분할하는 방법을 살펴보겠습니다. ✅ 🎯 1. 문자열 합치기 (Concatenation)MSSQL에서 문자열을 합치는 대표적인 방법은 다음과 같습니다. 🔹 1.1 + 연산자를 이용한 문자열 합치기SELECT 'Hello' + ' ' + 'World' AS ConcatenatedString;✅ 결과: ConcatenatedString------------------Hello World💡 + 연산자를 사용할 때 NULL 값이 포함되면 결과가 NULL이 됩니다. SELECT 'Hello' + N..

Programming 2025.03.18

🎯 MSSQL에서 GROUP BY와 HAVING 차이점 쉽게 이해하기

MSSQL에서 GROUP BY와 HAVING은 그룹화된 데이터를 다룰 때 필수적인 기능입니다. 하지만 많은 초보 개발자가 WHERE와 HAVING의 차이를 헷갈려 합니다. 이번 글에서는 GROUP BY와 HAVING의 차이점을 쉽게 이해할 수 있도록 정리하겠습니다. ✅🎯 1. GROUP BY란?GROUP BY는 같은 값을 가진 행들을 하나의 그룹으로 묶을 때 사용됩니다. 일반적으로 SUM(), AVG(), COUNT() 같은 **집계 함수(Aggregate Functions)**와 함께 사용됩니다.✅ 예제 1: GROUP BY 사용하기예를 들어, 각 고객(CustomerID)이 주문한 총 금액을 계산한다고 가정해 보겠습니다.SELECT CustomerID, SUM(TotalAmount) AS Total..

Programming 2025.03.17