Se connecter à un serveur Microsoft SQL à l'aide de Python et Pyodbc

Vaibhav Vaibhav 4 décembre 2021
Se connecter à un serveur Microsoft SQL à l'aide de Python et Pyodbc

Microsoft SQL Server est un système de gestion de base de données relationnelle ou SGBDR en bref. Comme son nom l’indique, il a été développé par Microsoft et est écrit en C/C++. C’est un outil qui permet à ses utilisateurs d’interagir avec des bases de données relationnelles en utilisant SQL ou Structured Query Language.

Lorsque nous travaillons avec des applications du monde réel, nous devons traiter de nombreuses données. Les données doivent être mises à jour, créées et supprimées chaque seconde, et ces SGBDR sont suffisamment intelligents et robustes pour gérer de telles opérations rapidement et en toute sécurité.

Désormais, les applications sont développées à l’aide de divers langages de programmation. Cela signifie que chaque langage de programmation doit avoir un moyen de se connecter à ces SGBDR et d’accéder aux données stockées dans les bases de données. Ces moyens incluent les bibliothèques ORM ou Object Relational Mapping et les packages Open Database Connectivity ou ODBC. Ce sont deux choses très différentes, et elles peuvent toutes les deux être utilisées pour se connecter à des bases de données.

Une simple différence entre les deux est que ORM permet aux développeurs d’interagir avec des bases de données en utilisant des classes ou des modèles Python qui représentent des tables et des gestionnaires de base de données, encore une autre classe Python) pour effectuer des requêtes sur les modèles. D’autre part, ODBC permet aux développeurs d’écrire des requêtes SQL brutes ou natives pour interagir directement avec la base de données.

Étant donné que Python est un langage de programmation célèbre et largement utilisé, il prend également en charge les ORM et les ODBC. Et, puisqu’il s’agit de se connecter à Microsoft SQL Server en utilisant Python et pyodbc, nous apprendrons principalement les ODBC, car pyodbc est un ODBC.

Se connecter à un serveur Microsoft SQL à l’aide de pyodbc

Pour se connecter à un serveur Microsoft SQL, nous avons d’abord besoin de quelques détails sur le serveur : le nom du pilote, le nom du serveur et le nom de la base de données. Avec les informations ci-dessus, une chaîne spéciale doit être créée, qui sera passée à la fonction connect() de la bibliothèque pyodbc.

Le format de la chaîne est le suivant -

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

En utilisant la méthode connect(), une connexion sera établie entre le programme et le serveur, puis, en utilisant cette connexion, des requêtes SQL peuvent être directement effectuées sur la base de données.

Reportez-vous au code suivant pour la même chose.

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}")

On peut également se connecter à un serveur en utilisant le DSN ou Data Source Name, un identifiant et un mot de passe. Et, la chaîne pour le même est la suivante.

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

Pour un tel cas, reportez-vous au code suivant.

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}")

Pour en savoir plus sur les pilotes de Microsoft SQL Server, les connexions et les informations nécessaires pour se connecter à l’aide de la bibliothèque, consultez ici. Et pour en savoir plus sur la bibliothèque elle-même, consultez la documentation officielle ici.

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.