Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Dans ce guide de démarrage rapide, vous connectez un script Python à une base de données que vous avez créée et chargée avec des exemples de données. Vous utilisez le pymssql pilote pour Python pour vous connecter à votre base de données et effectuer des opérations de base, telles que la lecture et l’écriture de données.
documentation pymssql | code source pymssql | Package (PyPi)
Conditions préalables
Python 3
Si vous n’avez pas encore Python, installez le runtime Python et le gestionnaire de package Python Package Index (PyPI) à partir de python.org.
Si vous préférez ne pas utiliser votre propre environnement, ouvrez en tant que devcontainer à l’aide de GitHub Codespaces.
Package
pymssqlà partir de PyPI.Base de données sur SQL Server, Azure SQL Database ou base de données SQL dans Fabric avec l’exemple
AdventureWorks2025de schéma et une chaîne de connexion valide.
Configuration
Suivez ces étapes pour configurer votre environnement de développement pour développer une application à l’aide du pymssql pilote Python.
Remarque
Ce pilote utilise le protocole TDS (Tabular Data Stream), qui est activé par défaut dans SQL Server, sql Database dans Fabric et Azure SQL Database. Aucune configuration supplémentaire n’est nécessaire.
Installer le package pymssql
Obtenez le package pymssql à partir de PyPI.
Ouvrez une invite de commandes dans un répertoire de fichiers vide.
Installez le package
pymssql.pip install pymssql
Installer le package python-dotenv
Obtenez le python-dotenv à partir de PyPI.
Dans le même répertoire, installez le
python-dotenvpackage.pip install python-dotenv
Vérifiez les packages installés
Vous pouvez utiliser l’outil en ligne de commande PyPI pour vérifier que les packages prévus sont installés.
Vérifiez la liste des packages installés avec
pip list.pip list
Créer une base de données SQL
Ce guide de démarrage rapide nécessite le schéma Léger AdventureWorks2025, sur Microsoft SQL Server, une base de données SQL dans Fabric ou une base de données Azure SQL.
Exécuter le code
Créer un nouveau fichier
Créez un nouveau fichier appelé
app.py.Ajoutez une description docstring du module.
""" Connects to a SQL database using pymssql """Importer des packages, y compris
pymssql.from os import getenv from dotenv import load_dotenv from pymssql import connectUtilisez la fonction
pymssql.connectpour vous connecter à une base de données SQL.load_dotenv() conn = connect(getenv("SQL_SERVER"),getenv("SQL_USER"),getenv("SQL_PASSWORD"),getenv("SQL_DATABASE"))Dans le répertoire actif, créez un fichier nommé
.env.Dans le
.envfichier, ajoutez des entrées pour vos valeurs de chaîne de connexion nomméesSQL_SERVER,SQL_USER,SQL_PASSWORD,SQL_DATABASE. Remplacez les espaces réservés ici par vos valeurs de chaîne de connexion réelles.SQL_SERVER="<server_name>" SQL_USER="<sql_user_name>" SQL_PASSWORD="<sql_user_password>" SQL_DATABASE="<sql_database>"Conseil / Astuce
La chaîne de connexion utilisée ici dépend en grande partie du type de base de données SQL à laquelle vous vous connectez. Pour plus d’informations sur les chaînes de connexion et leur syntaxe, consultez les attributs de connexion FreeTDS.
Exécuter une requête
Utilisez une chaîne de requête SQL pour exécuter une requête et analyser les résultats.
Créez une variable pour la chaîne de requête SQL.
SQL_QUERY = """ SELECT TOP 5 c.CustomerID, c.CompanyName, COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC; """Utilisez
cursor.executepour récupérer un jeu de résultats à partir d’une requête sur la base de données.cursor = conn.cursor(as_dict=True) cursor.execute(SQL_QUERY)Remarque
Cette fonction accepte n'importe quelle requête et renvoie un jeu de résultats qui peut être itéré à l'aide de cursor.fetchone().
Utilisez une
foreachboucle pour obtenir tous les enregistrements de la base de données. Ensuite, imprimez les enregistrements.for r in cursor: print(f"{r['CustomerID']}\t{r['OrderCount']}\t{r['CompanyName']}")Enregistrez le
app.pyfichier.Ouvrez un terminal et testez l’application.
python app.pyVoici la sortie attendue.
29485 1 Professional Sales and Service 29531 1 Remarkable Bike Store 29546 1 Bulk Discount Store 29568 1 Coalition Bike Company 29584 1 Futuristic Bikes
Insérer une ligne en tant que transaction
Exécutez une instruction INSERT en toute sécurité et transmettez des paramètres. Le passage de paramètres en tant que valeurs protège votre application contre les attaques par injection SQL .
Ajoutez une instruction d'importation pour
randrangedepuis la bibliothèquerandomen haut deapp.py.from random import randrangeÀ la fin de
app.py, ajoutez du code pour générer un numéro de produit aléatoire.productNumber = randrange(1000)Conseil / Astuce
Générer un numéro de produit aléatoire ici vous garantit de pouvoir exécuter cet exemple plusieurs fois.
Créez une chaîne d’instruction SQL.
SQL_STATEMENT = """ INSERT SalesLT.Product ( Name, ProductNumber, StandardCost, ListPrice, SellStartDate ) OUTPUT INSERTED.ProductID VALUES (%s, %s, %s, %s, CURRENT_TIMESTAMP) """Exécutez l’instruction à l’aide de
cursor.execute.cursor.execute( SQL_STATEMENT, ( f'Example Product {productNumber}', f'EXAMPLE-{productNumber}', 100, 200 ) )Récupérez le résultat unique à l’aide de
cursor.fetchone, imprimez l’identificateur unique du résultat, puis validez l’opération en tant que transaction à l’aide deconnection.commit.result = cursor.fetchone() print(f"Inserted Product ID : {result['ProductID']}") conn.commit()Conseil / Astuce
Si vous le souhaitez, vous pouvez utiliser
connection.rollbackpour restaurer la transaction.Fermez le curseur et la connexion à l’aide de
cursor.closeetconnection.close.cursor.close() conn.close()Enregistrez le fichier et
app.pyà nouveau l’application.python app.pyVoici la sortie attendue.
Inserted Product ID : 1001
Étape suivante
Pour obtenir d’autres exemples, consultez le dépôt GitHub du pymssql pilote pour contribuer à des idées ou signaler des problèmes.