Python 및 Pyodbc를 사용하여 Microsoft SQL Server에 연결

Vaibhav Vaibhav 2021년12월4일
Python 및 Pyodbc를 사용하여 Microsoft SQL Server에 연결

Microsoft SQL Server는 관계형 데이터베이스 관리 시스템 또는 RDBMS입니다. 이름에서 알 수 있듯이 Microsoft에서 개발했으며 C/C++로 작성되었습니다. 사용자가 SQL 또는 Structured Query Language를 사용하여 관계형 데이터베이스와 상호 작용할 수 있도록 하는 도구입니다.

실제 응용 프로그램으로 작업할 때 많은 데이터를 처리해야 합니다. 데이터는 매초마다 업데이트, 생성 및 삭제되어야 하며 이러한 RDBMS는 이러한 작업을 빠르고 안전하게 처리할 수 있을 만큼 충분히 지능적이고 강력합니다.

이제 다양한 프로그래밍 언어를 사용하여 응용 프로그램이 개발됩니다. 즉, 각 프로그래밍 언어에는 이러한 RDBMS에 연결하고 데이터베이스 내부에 저장된 데이터에 액세스할 수 있는 방법이 있어야 합니다. 이러한 방법에는 ORM 또는 개체 관계형 매핑 라이브러리와 개방형 데이터베이스 연결 또는 ODBC 패키지가 포함됩니다. 이들은 매우 다른 두 가지이며 둘 다 데이터베이스에 연결하는 데 사용할 수 있습니다.

둘 사이의 간단한 차이점은 ORM을 사용하면 개발자가 Python 클래스 또는 데이터베이스 테이블 및 관리자를 나타내는 모델(또 다른 Python 클래스)을 사용하여 데이터베이스와 상호 작용하여 모델에 대한 쿼리를 수행할 수 있다는 것입니다. 반면에 ODBC를 사용하면 개발자가 원시 또는 기본 SQL 쿼리를 작성하여 데이터베이스와 직접 상호 작용할 수 있습니다.

Python은 유명하고 널리 사용되는 프로그래밍 언어이기 때문에 ORMODBC도 잘 지원합니다. 그리고 Python과 pyodbc를 사용하여 Microsoft SQL Server에 연결하는 것에 대해 이야기하고 있으므로 pyodbcODBC이기 때문에 주로 ODBC에 대해 배웁니다.

pyodbc를 사용하여 Microsoft SQL Server에 연결

Microsoft SQL Server에 연결하려면 먼저 서버에 대한 몇 가지 세부 정보(드라이버 이름, 서버 이름, 데이터베이스 이름)가 필요합니다. 위의 정보를 사용하여 pyodbc 라이브러리의 connect() 함수에 전달되는 특수 문자열을 만들어야 합니다.

문자열의 형식은 다음과 같습니다.

Driver = { < driver_name > }
Server = <server_name >
Database = <database_name >
Trusted_Connection = yes

connect() 메서드를 사용하여 프로그램과 서버 간에 연결이 설정되고 해당 연결을 사용하여 데이터베이스에서 SQL 쿼리를 직접 수행할 수 있습니다.

동일한 내용은 다음 코드를 참조하십시오.

import pyodbc

connection = pyodbc.connect(
    "Driver={<driver_name>};Server=<server_name>;Database=<database_name>;Trusted_Connection=yes;"
)  # Connection string
cursor = connection.cursor()
cursor.execute("SELECT * FROM <table_name>")  # Executing a query

for row in cursor:  # Looping over returned rows and printing them
    print(f"row = {row}")

DSN 또는 Data Source Name, 사용자 ID 및 암호를 사용하여 서버에 연결할 수도 있습니다. 그리고 동일한 문자열은 다음과 같습니다.

DSN = <dsn >
UID = <user >
PWD = <password >

이러한 경우에는 다음 코드를 참조하십시오.

import pyodbc

connection = pyodbc.connect("DSN=<dsn>;UID=<user>;PWD=<password>")  # Connection string
cursor = connection.cursor()
cursor.execute("SELECT * FROM <table_name>")  # Executing a query

for row in cursor:  # Looping over returned rows and printing them
    print(f"row = {row}")

Microsoft SQL Server의 드라이버, 연결 및 라이브러리를 사용하여 연결하는 데 필요한 정보에 대해 자세히 알아보려면 여기를 참조하십시오. 또한 라이브러리 자체에 대한 자세한 내용은 공식 문서 여기를 참조하십시오.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.