Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Esta prueba de concepto de ejemplo usa pyodbc
para conectarse a una base de datos SQL. En este ejemplo se supone que usa la base de datos de ejemplo AdventureWorksLT.
Nota
Este ejemplo solo debe considerarse una prueba de concepto. El código de ejemplo se simplifica para mayor claridad y no representa necesariamente los procedimientos recomendados por Microsoft.
pyodbc
paquete de PyPI.Conéctese a una base de datos con sus credenciales.
Cree un nuevo archivo llamado app.py.
Agregue una docstring de módulo.
"""
Connects to a SQL database using pyodbc
"""
Importe el paquete pyodbc
.
import pyodbc
Cree variables para las credenciales de conexión.
SERVER = '<server-address>'
DATABASE = '<database-name>'
USERNAME = '<username>'
PASSWORD = '<password>'
Cree una variable de cadena de conexión mediante la interpolación de cadenas.
connectionString = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={SERVER};DATABASE={DATABASE};UID={USERNAME};PWD={PASSWORD}'
Use la pyodbc.connect
función para conectarse a una base de datos SQL.
conn = pyodbc.connect(connectionString)
Use una cadena de consulta SQL para ejecutar una consulta y analizar los resultados.
Cree una variable para la cadena de consulta 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;
"""
Use cursor.execute
para recuperar un conjunto de resultados de una consulta en la base de datos.
cursor = conn.cursor()
cursor.execute(SQL_QUERY)
Nota
Esta función acepta cualquier consulta y devuelve un conjunto de resultados que se puede iterar mediante el uso de cursor.fetchone().
Use cursor.fetchall
con un loop foreach
para obtener todos los registros de la base de datos. A continuación, imprima los registros.
records = cursor.fetchall()
for r in records:
print(f"{r.CustomerID}\t{r.OrderCount}\t{r.CompanyName}")
Guarde el archivo app.py.
Abra un terminal y pruebe la aplicación.
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
En este ejemplo, se ejecuta una sentencia INSERT
de forma segura y se pasan parámetros. El paso de parámetros como valores protege la aplicación del ataque por inyección de código SQL.
Importe randrange
desde la biblioteca random
.
from random import randrange
Genere un número de producto aleatorio.
productNumber = randrange(1000)
Sugerencia
La generación de un número de producto aleatorio aquí garantiza que puede ejecutar este ejemplo varias veces.
Cree una cadena de instrucción SQL.
SQL_STATEMENT = """
INSERT SalesLT.Product (
Name,
ProductNumber,
StandardCost,
ListPrice,
SellStartDate
) OUTPUT INSERTED.ProductID
VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)
"""
Ejecute la instrucción mediante cursor.execute
.
cursor.execute(
SQL_STATEMENT,
f'Example Product {productNumber}',
f'EXAMPLE-{productNumber}',
100,
200
)
Capture la primera columna del único resultado mediante cursor.fetchval
, imprima el identificador único del resultado y, a continuación, confirme la operación como una transacción mediante connection.commit
.
resultId = cursor.fetchval()
print(f"Inserted Product ID : {resultId}")
conn.commit()
Sugerencia
Opcionalmente, puede usar connection.rollback
para revertir la transacción.
Cierre el cursor y la conexión mediante cursor.close
y connection.close
.
cursor.close()
conn.close()
Guarde el archivo app.py y vuelva a probar la aplicación.
python app.py
Inserted Product ID : 1001
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyCursos
Ruta de aprendizaje
Introducción a las consultas con Transact-SQL - Training
Introducción a las consultas con Transact-SQL
Documentación
Controlador Python para SQL (pyodbc) - Python driver for SQL Server
En esta guía se describe la instalación de Python, ODBC Driver for SQL Server y pyodbc. El código de ejemplo correspondiente muestra cómo conectarse a una base de datos SQL e interactuar con ella.
Paso 1: Configuración del entorno dde pyodbc - Python driver for SQL Server
El paso 1 de esta guía de introducción implica la instalación de Python, el controlador Microsoft ODBC Driver for SQL Server y pyODBC en el entorno de desarrollo.
Paso 2: Creación de una base de datos SQL para pyodbc - Python driver for SQL Server
El paso 2 de esta guía de introducción implica la creación de una base de datos en SQL Server o Azure SQL Database para este ejemplo de pyodbc.