HOWTO · Python

Conectarse a un Microsoft SQL Server usando Python y Pyodbc

Aprenda a conectarse a Microsoft SQL Server usando Python y pyodbc

En esta página

Microsoft SQL Server es un sistema de administración de bases de datos relacionales o RDBMS en resumen. Como su nombre indica, fue desarrollado por Microsoft y está escrito en C/C++. Es una herramienta que permite a sus usuarios interactuar con bases de datos relacionales utilizando SQL o lenguaje de consulta estructurado.

Cuando trabajamos con aplicaciones del mundo real, tenemos que lidiar con una gran cantidad de datos. Los datos deben actualizarse, crearse y eliminarse cada segundo, y estos RDBMS son lo suficientemente inteligentes y robustos para manejar tales operaciones de forma rápida y segura.

Ahora, las aplicaciones se desarrollan utilizando varios lenguajes de programación. Significa que cada lenguaje de programación debe tener una forma de conectarse a estos RDBMS y acceder a los datos almacenados dentro de las bases de datos. Estas formas incluyen ORM o bibliotecas de mapeo relacional de objetos y paquetes de conectividad abierta de bases de datos o ODBC. Estas son dos cosas muy diferentes y ambas se pueden usar para conectarse a bases de datos.

Una simple diferencia entre los dos es que ORM permite a los desarrolladores interactuar con bases de datos usando clases de Python o modelos que representan tablas y administradores de bases de datos (otra clase de Python) para realizar consultas sobre los modelos. Por otro lado, ODBC permite a los desarrolladores escribir consultas SQL nativas o sin procesar para interactuar con la base de datos directamente.

Dado que Python es un lenguaje de programación famoso y ampliamente utilizado, también tiene un buen soporte para ORM y ODBC. Y, dado que estamos hablando de conectarse a Microsoft SQL Server usando Python y pyodbc, aprenderemos principalmente sobre ODBC, porque pyodbc es un ODBC.

Conexión a un servidor Microsoft SQL mediante pyodbc

Para conectarse a Microsoft SQL Server, primero necesitamos algunos detalles sobre el servidor: el nombre del controlador, el nombre del servidor y el nombre de la base de datos. Con la información anterior, se debe crear una cadena especial, que se pasará a la función connect() de la biblioteca pyodbc.

El formato de la cadena es el siguiente:

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

Usando el método connect(), se establecerá una conexión entre el programa y el servidor, y luego, usando esa conexión, las consultas SQL se pueden realizar directamente sobre la base de datos.

Consulte el siguiente código para el mismo.

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

También se puede conectar a un servidor utilizando el DSN o el Nombre de la fuente de datos, una identificación de usuario y una contraseña. Y la cadena para el mismo es la siguiente.

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

Para tal caso, consulte el siguiente código.

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

Para saber más sobre los drivers de Microsoft SQL Server, las conexiones y la información necesaria para conectarse usando la librería, consulte aquí. Y, para aprender más sobre la biblioteca en sí, consulte la documentación oficial aquí.