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은 유명하고 널리 사용되는 프로그래밍 언어이기 때문에 ORM
및 ODBC
도 잘 지원합니다. 그리고 Python과 pyodbc
를 사용하여 Microsoft SQL Server에 연결하는 것에 대해 이야기하고 있으므로 pyodbc
는 ODBC
이기 때문에 주로 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의 드라이버, 연결 및 라이브러리를 사용하여 연결하는 데 필요한 정보에 대해 자세히 알아보려면 여기를 참조하십시오. 또한 라이브러리 자체에 대한 자세한 내용은 공식 문서 여기를 참조하십시오.