Verbindung zu einem Microsoft SQL Server mit Python und Pyodbc
Microsoft SQL Server ist ein relationales Datenbankmanagementsystem oder kurz RDBMS. Wie der Name schon sagt, wurde es von Microsoft entwickelt und ist in C/C++ geschrieben. Es ist ein Werkzeug, das seinen Benutzern die Interaktion mit relationalen Datenbanken unter Verwendung von SQL
oder der Structured Query Language ermöglicht.
Bei der Arbeit mit realen Anwendungen müssen wir mit vielen Daten umgehen. Die Daten müssen jede Sekunde aktualisiert, erstellt und gelöscht werden, und diese RDBMS sind intelligent und robust genug, um solche Vorgänge schnell und sicher abzuwickeln.
Heute werden Anwendungen mit verschiedenen Programmiersprachen entwickelt. Das bedeutet, dass jede Programmiersprache eine Möglichkeit haben sollte, sich mit diesen RDBMS zu verbinden und auf die in den Datenbanken gespeicherten Daten zuzugreifen. Zu diesen Möglichkeiten gehören ORMs
oder Object Relational Mapping-Bibliotheken und Open Database Connectivity- oder ODBC
-Pakete. Dies sind zwei sehr unterschiedliche Dinge, und beide können verwendet werden, um eine Verbindung zu Datenbanken herzustellen.
Ein einfacher Unterschied zwischen den beiden besteht darin, dass ORM
Entwicklern ermöglicht, mit Datenbanken zu interagieren, indem sie Python-Klassen oder Modelle verwenden, die Datenbanktabellen und -manager darstellen, eine weitere Python-Klasse), um Abfragen über die Modelle durchzuführen. Auf der anderen Seite ermöglicht ODBC
Entwicklern, rohe oder native SQL-Abfragen zu schreiben, um direkt mit der Datenbank zu interagieren.
Da Python eine bekannte und weit verbreitete Programmiersprache ist, bietet es auch eine gute Unterstützung für ORMs
und ODBCs
. Und da wir über die Verbindung zu Microsoft SQL Server mit Python und pyodbc
sprechen, werden wir hauptsächlich über ODBCs
lernen, denn pyodbc
ist ein ODBC
.
Verbindung zu einem Microsoft SQL Server mit pyodbc
Um eine Verbindung zu einem Microsoft SQL Server herzustellen, benötigen wir zunächst einige Angaben zum Server: den Treibernamen, den Servernamen und den Datenbanknamen. Mit den obigen Informationen muss ein spezieller String erstellt werden, der an die Funktion connect()
der Bibliothek pyodbc
übergeben wird.
Das Format der Zeichenkette ist wie folgt.
Driver = { < driver_name > }
Server = <server_name >
Database = <database_name >
Trusted_Connection = yes
Mit der Methode connect()
wird eine Verbindung zwischen dem Programm und dem Server aufgebaut, über die dann SQL
-Abfragen direkt über die Datenbank ausgeführt werden können.
Siehe den folgenden Code für dasselbe.
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}")
Man kann sich auch mit dem DSN
oder Data Source Name
, einer Benutzer-ID und einem Passwort mit einem Server verbinden. Und die Zeichenkette dafür ist wie folgt.
DSN = <dsn >
UID = <user >
PWD = <password >
Beziehen Sie sich in einem solchen Fall auf den folgenden Code.
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}")
Weitere Informationen zu Treibern von Microsoft SQL Server, Verbindungen und Informationen, die für die Verbindung mit der Bibliothek erforderlich sind, finden Sie hier. Weitere Informationen über die Bibliothek selbst finden Sie in der offiziellen Dokumentation hier.