빠른 시작: Python을 사용하여 Azure SQL Database 또는 Azure SQL Managed Instance의 데이터베이스 쿼리
적용 대상: Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics
이 빠른 시작에서는 Python을 사용하여 Azure SQL Database, Azure SQL Managed Instance 또는 Synapse SQL 데이터베이스에 연결하고 T-SQL 문을 사용하여 데이터를 쿼리합니다.
필수 구성 요소
이 빠른 시작을 완료하려면 다음이 필요합니다.
활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
쿼리를 실행할 데이터베이스입니다.
다음 빠른 시작 중 하나를 사용하여 데이터베이스를 만들고 구성할 수 있습니다.
작업 SQL Database SQL Managed Instance Azure VM의 SQL Server Azure Synapse Analytics 생성 포털 포털 포털 포털 CLI CLI PowerShell PowerShell PowerShell PowerShell 배포 템플릿 배포 템플릿 배포 템플릿 배포 템플릿 구성 서버 수준 IP 방화벽 규칙 VM에서 연결 연결 설정 온-프레미스에서 연결 SQL Server 인스턴스에 연결 연결 정보 가져오기 Azure SQL Azure SQL SQL VM Synapse SQL Python 3 및 관련 소프트웨어
동작 macOS Linux Windows ODBC 드라이버, Python 및 SQL Server용 Python 드라이버 설치 pyodbc Python 개발을 위한 환경 구성 pyodbc Python 개발을 위한 환경 구성 pyodbc Python 개발을 위한 환경을 구성합니다. Python 및 기타 필수 패키지 설치 sudo apt-get install python python-pip gcc g++ build-essential
을 사용합니다.추가 정보 macOS의 Microsoft ODBC 드라이버 Linux의 Microsoft ODBC 드라이버 Windows의 Microsoft ODBC 드라이버
Python 및 Azure SQL Database의 데이터베이스를 자세히 살펴보려면 Python용 Azure SQL Database 라이브러리, pyodbc 리포지토리 및 pyodbc 샘플을 참조하세요.
데이터베이스를 쿼리할 코드 만들기
텍스트 편집기에서 sqltest.py라는 새 파일을 만듭니다.
다음 코드를 추가합니다. 필수 조건 섹션에서 연결 정보를 가져오고 <server>, <database>, <username>, <password>에 대한 고유한 값을 대체합니다.
import pyodbc server = '<server>.database.windows.net' database = '<database>' username = '<username>' password = '{<password>}' driver= '{ODBC Driver 17 for SQL Server}' with pyodbc.connect('DRIVER='+driver+';SERVER=tcp:'+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password) as conn: with conn.cursor() as cursor: cursor.execute("SELECT TOP 3 name, collation_name FROM sys.databases") row = cursor.fetchone() while row: print (str(row[0]) + " " + str(row[1])) row = cursor.fetchone()
코드 실행
명령 프롬프트에서 다음 명령을 실행합니다.
python sqltest.py
데이터베이스 및 해당 데이터 정렬이 반환되었는지 확인한 다음, 명령 창을 닫습니다.
오류가 표시되는 경우:
- 사용 중인 서버 이름, 데이터베이스 이름, 사용자 이름 및 암호가 올바른지 확인합니다.
- 설치한 ODBC 드라이버가 위의 코드의
driver
변수와 동일한 버전인지 확인합니다. 예를 들어 코드는 17을 표시하지만 다른 버전을 설치했을 수 있습니다. - 로컬 환경에서 코드를 실행하는 경우 액세스하려는 Azure 리소스의 방화벽이 환경의 IP 주소에서 액세스를 허용하도록 구성되어 있는지 확인합니다.