Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Registrati oggiQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare le funzionalità più recenti, gli aggiornamenti della sicurezza e il supporto tecnico.
Questo modello di verifica di esempio usa pyodbc
per connettersi a un database SQL. In questo esempio si presuppone l’uso del database di esempio AdventureWorksLT.
Nota
Questo esempio deve essere considerato solo un modello di verifica. Il codice di esempio è semplificato per maggiore chiarezza e non rappresenta necessariamente le procedure consigliate da Microsoft.
pyodbc
pacchetto da PyPI.Connettere a un database usando le proprie credenziali.
Creare un file denominato app.py.
Aggiungere una docstring del modulo.
"""
Connects to a SQL database using pyodbc
"""
Importare il pacchetto pyodbc
.
import pyodbc
Creare variabili per le credenziali di connessione.
SERVER = '<server-address>'
DATABASE = '<database-name>'
USERNAME = '<username>'
PASSWORD = '<password>'
Creare una variabile stringa di connessione usando l'interpolazione di stringhe.
connectionString = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}'
Usare la pyodbc.connect
funzione per connettersi a un database SQL.
conn = pyodbc.connect(connectionString)
Usare una stringa di query SQL per eseguire una query e analizzare i risultati.
Creare una variabile per la stringa di query 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;
"""
Utilizzare cursor.execute
per riprendere un set di risultati da una query sul database.
cursor = conn.cursor()
cursor.execute(SQL_QUERY)
Nota
Questa funzione accetta essenzialmente qualsiasi query e restituisce un set di risultati su cui è possibile eseguire l'iterazione usando cursor.fetchone().
Usare cursor.fetchall
con un ciclo foreach
per ottenere tutti i record dal database. Stampare i record.
records = cursor.fetchall()
for r in records:
print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")
Salva il file app.py.
Aprire un terminale e testare l'applicazione.
python app.py
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
Questo esempio spiega come eseguire in modo sicuro un'istruzione INSERT
e passare i parametri. Il passaggio di parametri come valori protegge l'applicazione dagli attacchi SQL injection.
Importa randrange
dalla libreria random
.
from random import randrange
Generare un numero di prodotto casuale.
productNumber = randrange(1000)
Suggerimento
La generazione di un numero di prodotto casuale garantisce la possibilità di eseguire questo esempio più volte.
Creare una stringa di istruzione SQL.
SQL_STATEMENT = """
INSERT SalesLT.Product (
Name,
ProductNumber,
StandardCost,
ListPrice,
SellStartDate
) OUTPUT INSERTED.ProductID
VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
"""
Eseguire l'istruzione con cursor.execute
.
cursor.execute(
SQL_STATEMENT,
f'Example Product {productNumber}',
f'EXAMPLE-{productNumber}',
100,
200
)
Recuperare la prima colonna del singolo risultato usando cursor.fetchval
, stampare l'identificatore univoco del risultato e quindi eseguire il commit dell'operazione come transazione usando connection.commit
.
resultId = cursor.fetchval()
print(f"Inserted Product ID : {resultId}")
conn.commit()
Suggerimento
In alternativa, è possibile usare connection.rollback
per eseguire il ripristino dello stato precedente della transazione.
Chiudere il cursore e la connessione usando cursor.close
e connection.close
.
cursor.close()
conn.close()
Salvare il file app.py e testare nuovamente l'applicazione
python app.py
Inserted Product ID : 1001
Eventi
31 mar, 23 - 2 apr, 23
Il più grande evento di apprendimento di SQL, Infrastruttura e Power BI. 31 marzo - 2 aprile. Usare il codice FABINSIDER per salvare $400.
Registrati oggiTraining
Percorso di apprendimento
Introduzione all'esecuzione di query con Transact-SQL - Training
Introduzione all'esecuzione di query con Transact-SQL
Documentazione
Driver SQL per Python - pyodbc - Python driver for SQL Server
Questa guida descrive l'installazione di Python, ODBC Driver for SQL Server e pyodbc. Il codice di esempio corrispondente illustra come connettersi e interagire con un database SQL.
Passaggio 1: Configurare l'ambiente pyodbc - Python driver for SQL Server
Il passaggio 1 di questa guida introduttiva prevede l'installazione di Python, Microsoft ODBC Driver for SQL Server e pyODBC nell'ambiente di sviluppo.
Passaggio 2: Creare un database SQL per pyodbc - Python driver for SQL Server
Il passaggio 2 di questa guida introduttiva prevede la creazione di un database in SQL Server o nel database SQL di Azure per questo esempio pyodbc.