Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu připojíte skript Pythonu k databázi, kterou jste vytvořili a načetli s ukázkovými daty. Pomocí driveru pymssql pro Python se připojujete k databázi a provádíte základní operace, jako je čtení a zapisování dat.
Dokumentace pymssql | Zdrojový kód pymssql | Balíček (PyPi)
Požadavky
Python 3
Pokud ještě nemáte Python, nainstalujte z python.org správce balíčků Python runtime a Python Package Index (PyPI).
Chcete raději nepoužívat vlastní prostředí? Otevřete jako devcontainer pomocí GitHub Codespaces.
pymssqlbalíček z PyPI.Databáze na SQL Serveru, Azure SQL Database nebo SQL databáze v Fabric s ukázkovým
AdventureWorks2025schématem a platným připojovacím řetězcem.
Instalace
Podle těchto kroků nakonfigurujte vývojové prostředí pro vývoj aplikace pomocí ovladače Pythonu pymssql .
Poznámka:
Tento ovladač používá protokol TDS (Tabular Data Stream), který je ve výchozím nastavení povolený v SQL Serveru, databázi SQL v Prostředcích infrastruktury a Azure SQL Database. Nevyžaduje se žádná další konfigurace.
Instalace balíčku pymssql
pymssql
Získejte balíček z PyPI.
Otevřete příkazový řádek v prázdném adresáři.
Nainstalujte balíček
pymssql.pip install pymssql
Instalace balíčku python-dotenv
Získejte python-dotenv z PyPI.
Ve stejném adresáři nainstalujte
python-dotenvbalíček.pip install python-dotenv
Kontrola nainstalovaných balíčků
Pomocí nástroje příkazového řádku PyPI můžete ověřit, že jsou nainstalované požadované balíčky.
Zkontrolujte seznam nainstalovaných balíčků s příponou
pip list.pip list
Vytvoření databáze SQL
Tento rychlý start vyžaduje schéma AdventureWorks2025 Lightweight na Microsoft SQL Serveru, SQL databázi v Fabric nebo Azure SQL Database.
Spuštění kódu
Vytvoření nového souboru
Vytvořte nový soubor s názvem
app.py.Přidejte dokumentační řetězec modulu.
""" Connects to a SQL database using pymssql """Importujte balíčky, včetně
pymssql.from os import getenv from dotenv import load_dotenv from pymssql import connectpymssql.connectPomocí funkce se připojte k databázi SQL.load_dotenv() conn = connect(getenv("SQL_SERVER"),getenv("SQL_USER"),getenv("SQL_PASSWORD"),getenv("SQL_DATABASE"))V aktuálním adresáři vytvořte nový soubor s názvem
.env..envV souboru přidejte položky pro hodnoty připojovacího řetězce s názvemSQL_SERVER,SQL_USER,SQL_PASSWORD,SQL_DATABASE. Zástupné symboly zde nahraďte skutečnými hodnotami připojovacího řetězce.SQL_SERVER="<server_name>" SQL_USER="<sql_user_name>" SQL_PASSWORD="<sql_user_password>" SQL_DATABASE="<sql_database>"Návod
Připojovací řetězec použitý zde do značné míry závisí na typu databáze SQL, ke které se připojujete. Další informace o připojovacích řetězcích a jejich syntaxi najdete v tématu Atributy připojení FreeTDS.
Provedení dotazu
Pomocí řetězce dotazu SQL spusťte dotaz a parsujte výsledky.
Vytvořte proměnnou pro řetězec dotazu 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; """Slouží
cursor.executek načtení sady výsledků z dotazu na databázi.cursor = conn.cursor(as_dict=True) cursor.execute(SQL_QUERY)Poznámka:
Tato funkce v podstatě přijímá jakýkoli dotaz a vrací sadu výsledků, kterou lze projít pomocí cursor.fetchone().
foreachPomocí smyčky získejte všechny záznamy z databáze. Potom záznamy vytiskněte.for r in cursor: print(f"{r['CustomerID']}\t{r['OrderCount']}\t{r['CompanyName']}")app.pysoubor.Otevřete terminál a otestujte aplikaci.
python app.pyTady je očekávaný výstup.
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
Vložte řádek jako transakci
Bezpečně spusťte příkaz INSERT a předejte parametry. Předávání parametrů jako hodnot chrání vaši aplikaci před útoky prostřednictvím injektáže SQL .
Přidejte import
randrangez knihovnyrandomdo horní části souboruapp.py.from random import randrangeNa konci
app.pypřidejte kód pro vygenerování náhodného čísla výrobku.productNumber = randrange(1000)Návod
Vygenerování náhodného čísla produktu tady zajistí, že tento vzorek můžete spustit několikrát.
Vytvořte řetězec příkazu SQL.
SQL_STATEMENT = """ INSERT SalesLT.Product ( Name, ProductNumber, StandardCost, ListPrice, SellStartDate ) OUTPUT INSERTED.ProductID VALUES (%s, %s, %s, %s, CURRENT_TIMESTAMP) """Proveďte příkaz pomocí
cursor.execute.cursor.execute( SQL_STATEMENT, ( f'Example Product {productNumber}', f'EXAMPLE-{productNumber}', 100, 200 ) )Načtěte jeden výsledek pomocí
cursor.fetchone, vytiskněte jedinečný identifikátor výsledku a pak potvrďte operaci jako transakci pomocíconnection.commit.result = cursor.fetchone() print(f"Inserted Product ID : {result['ProductID']}") conn.commit()Návod
Volitelně můžete použít
connection.rollbackk vrácení transakce zpět.Zavřete kurzor a připojení pomocí
cursor.closeaconnection.close.cursor.close() conn.close()app.pysoubor a aplikaci znovu otestujte.python app.pyTady je očekávaný výstup.
Inserted Product ID : 1001
Další krok
Další příklady najdete v pymssql úložišti GitHubu ovladače, kde můžete přispívat nápady nebo hlásit problémy.