Conectarse a un Microsoft SQL Server usando Python y Pyodbc
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í.