파이썬(Python)을 사용하여 애저(Azure) 데이터베이스 쿼리 실습하기
들어가며
- 파이썬(Python)을 사용하여 애저(Azure)에 올린 데이터베이스를 쿼리해보자.
- 이번 실습은 이전의 글(https://dev-astra.tistory.com/387)에 이어서 진행한다.
실습하기
OCBC 드라이버 설치하기
- 파이썬에서
mssql
로 연결하는 방법은 일반적으로pyodbc
와pymssql
이 있으며, 이번 실습에서는pyodbc
를 사용한다. - 윈도우(Windows)의 경우, 아래의 ODBC 드라이버를 설치한다.
SQL Server용 ODBC 드라이버 다운로드 - ODBC Driver for SQL Server
Microsoft ODBC Driver for SQL Server를 다운로드하여 SQL Server 및 Azure SQL Database에 연결하는 네이티브 코드 애플리케이션을 개발합니다.
learn.microsoft.com
- 필요한 경우 Visual C++ 재배포 패키지도 설치한다.
- 설치 사이트 : 클릭
- 윈도우 외의 OS는 아래 문서를 참고한다.
1단계: Pyodbc Python 환경 구성 - Python driver for SQL Server
이 시작 가이드의 1단계에는 Python, Microsoft ODBC Driver for SQL Server 및 pyODBC를 개발 환경에 설치하는 작업이 포함됩니다.
learn.microsoft.com
- 파이썬 및 Azure SQL Database의 데이터베이스를 자세히 살펴보려면 아래 문서를 참고한다.
Home
Python ODBC bridge. Contribute to mkleehammer/pyodbc development by creating an account on GitHub.
github.com
pyodbc 설치하기
- 다음 명령을 실행하여 원격으로
pyodbc
를 설치한다.
> pip install pyodbc

SQL 데이터베이스에 연결하기
- 텍스트 편집기에서
sqltest.py
라는 새 파일을 만든다. - 각각의 변수들에 데이터베이스 연결 정보를 입력한다.
import pyodbc server = 'your_server.database.windows.net' database = 'mySampleDatabase' username = 'your_username' password = 'your_password' driver= '{ODBC Driver 18 for SQL Server}' cnxn = pyodbc.connect('DRIVER=' + driver + '; PORT=1433; SERVER=' + server + ';PORT=1443; DATABASE=' + database + ';UID=' + username + ';PWD=' + password) cursor = cnxn.cursor()
- 각각의 변수들에 넣을 값들은 애저 포털에서 배포한 데이터베이스 리소스 페이지에서 확인할 수 있다.

- 각각의 변수들에 값을 넣은 후, 파이썬 코드를 실행시킨다.
![]() |
![]() |
쿼리 실행하기
sqltest.py
파일에 다음 코드를 추가하여 실행한다.
cursor.execute("SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName FROM [SalesLT].[ProductCategory] pc JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid") row = cursor.fetchone() while row: print (str(row[0]) + " " + str(row[1])) row = cursor.fetchone()

행 삽입하기
sqltest.py
파일에 다음 코드를 추가하여 실행한다.
count = cursor.execute(""" INSERT INTO SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) VALUES (?, ?, ?, ?, GETDATE())""", 'SQL Server Express New 20', 'SQLEXPRESS New 20', 0, 0).rowcount cnxn.commit() print('Rows inserted: ' + str(count))

- 원래는 다음과 같이 MS Learn 사이트에서 주어진 예시 코드를 넣어 실행하려고 하였으나,
NameError: name 'CURRENT_TIMESTAMP' is not defined
오류가 출력되었다.
#Sample insert query count = cursor.execute(""" INSERT INTO SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) VALUES (?,?,?,?,?)""", 'SQL Server Express New 20', 'SQLEXPRESS New 20', 0, 0, CURRENT_TIMESTAMP).rowcount cnxn.commit() print('Rows inserted: ' + str(count))
CURRENT_TIMESTAMP
는 SQL 서버에서 현재 시간을 가져오는 내장 함수인데,CURRENT_TIMESTAMP
가 정의되지 않았기 때문에 발생하는 오류인 것이다.- 이 문제를 해결하기 위해서
CURRENT_TIMESTAMP
를 문자열로 쿼리에 포함시켰다. (다음과 같이execute
함수의SellStartDate
매개변수의 값으로GETDATE()
함수를 사용하여 현재 날짜와 시간으로 설정하도록 변경했다.)
count = cursor.execute(""" INSERT INTO SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) VALUES (?, ?, ?, ?, GETDATE())""", 'SQL Server Express New 20', 'SQLEXPRESS New 20', 0, 0).rowcount cnxn.commit() print('Rows inserted: ' + str(count))
pyodbc
샘플 실습해보기
- 아래의 사이트에 있는
pyodbc
샘플을 실습해본다.
Getting started
Python ODBC bridge. Contribute to mkleehammer/pyodbc development by creating an account on GitHub.
github.com
참고 사이트
Python을 사용하여 데이터베이스 쿼리 - Azure SQL Database & SQL Managed Instance
이 문서에서는 Python을 사용하여 Azure SQL Database의 데이터베이스에 연결하고 Transact-SQL 문을 사용하여 쿼리하는 프로그램을 만드는 방법을 보여줍니다.
learn.microsoft.com
1단계: Pyodbc Python 환경 구성 - Python driver for SQL Server
이 시작 가이드의 1단계에는 Python, Microsoft ODBC Driver for SQL Server 및 pyODBC를 개발 환경에 설치하는 작업이 포함됩니다.
learn.microsoft.com
SQL Server용 Python 드라이버 - Python driver for SQL Server
Windows, Linux 또는 macOS에서 Python을 사용하여 SQL Database에 연결합니다.
learn.microsoft.com
3단계: pyodbc를 사용하여 SQL에 연결 - Python driver for SQL Server
3단계는 Python 및 pyODBC를 사용하여 SQL Server에 연결할 수 있는 방법을 보여 주는 개념 증명입니다. 기본 예제에서는 데이터를 선택하고 삽입하는 방법을 보여 줍니다.
learn.microsoft.com
Getting started
Python ODBC bridge. Contribute to mkleehammer/pyodbc development by creating an account on GitHub.
github.com
'DevOps > Azure' 카테고리의 다른 글
[Azure] 도커(Docker) 실습하기 : 도커 이미지를 다른 사람과 공유하여 사용해보기 (0) | 2023.05.27 |
---|---|
[Azure] 도커(Docker) 실습하기 : Dockerfile을 이용하여 직접 도커 이미지를 만들고 컨테이너 만들어보기 (0) | 2023.05.27 |
[Azure] 도커(Docker) 실습하기 : 간단한 실습 해보기 (0) | 2023.05.27 |
[Azure] 도커(Docker) 실습하기 : 도커 설치하기 (0) | 2023.05.27 |
[Azure] SQL Server 실습하기 (0) | 2023.05.24 |
[Azure] SSMS/VS Code를 사용하여 연결 및 쿼리 실습하기 (0) | 2023.05.23 |
[Azure] 단일 데이터베이스 만들기 (0) | 2023.05.23 |
[Azure] WebApp 생성 및 Flask 배포하기 (0) | 2023.05.23 |