본문 바로가기

프로그래밍&IT/SQL Server (MS-SQL)

MSSQL의 조회데이터를 csv로 만들기

MSSQL의 조회데이터를 CSV파일로 만들기

DB에 저장해놓은 Kospi지수정보를 조회해서 CSV파일로 저장해야할 필요성이 있어서 찾아봤다.

 

1. UI에서 바로 저장하기

  1. 쿼리 실행: SSMS에서 원하는 데이터를 조회하는 SQL 쿼리를 실행합니다.
  2. 결과 저장:
    • 조회된 결과에서 마우스 오른쪽 버튼을 클릭하고 결과 저장 > 파일로 저장을 선택합니다.
    • 파일 형식을 CSV로 설정하고 저장 경로를 지정합니다.
  3. CSV 파일로 내보내기:
    • 파일 형식을 "CSV(쉼표로 구분된 값)"으로 선택하여 CSV 형식으로 데이터를 내보낼 수 있습니다.

 

2. SQL 쿼리와 bcp 명령줄 도구를 이용한 방법

bcp 명령어를 사용하면 대량의 데이터를 CSV 파일로 쉽게 내보낼 수 있습니다.

bcp "SELECT * FROM [데이터베이스명].[스키마명].[테이블명]" queryout "C:\경로\파일명.csv" -c -t, -S [서버이름] -d [데이터베이스명] -U [유저이름] -P [비밀번호]
 

파라미터 설명:

  • queryout: 쿼리의 결과를 파일로 내보냅니다.
  • -c: 문자를 기본 문자 형식으로 출력합니다.
  • -t,: 필드 구분자를 쉼표(,)로 설정합니다.
  • -S: SQL Server 인스턴스 이름을 지정합니다.
  • -d: 사용할 데이터베이스 이름을 지정합니다.
  • -U와 -P: SQL Server 사용자 이름과 비밀번호를 지정합니다.

3. Python을 이용한 방법 (추가적으로 Python을 사용할 수 있는 경우)

Python의 pandas 라이브러리와 pyodbc를 사용하여 데이터를 가져와 CSV로 저장하는 방법도 있습니다.

 
import pyodbc
import pandas as pd

# MSSQL 서버에 연결
conn = pyodbc.connect('DRIVER={SQL Server};'
                      'SERVER=서버이름;'
                      'DATABASE=데이터베이스명;'
                      'UID=유저이름;'
                      'PWD=비밀번호')

# SQL 쿼리 실행
query = "SELECT * FROM [데이터베이스명].[스키마명].[테이블명]"
df = pd.read_sql(query, conn)

# 데이터프레임을 CSV 파일로 저장
df.to_csv('C:/경로/파일명.csv', index=False)