0% encontró este documento útil (0 votos)
31 vistas

Python y Bases de Datos

Python_y_bases_de_datos
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas

Python y Bases de Datos

Python_y_bases_de_datos
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

ODBC

Open DataBase Connectivity (ODBC) es un estándar de acceso


a las bases de datos desarrollado por SQL Access Group (SAG) en
1992. El objetivo de ODBC es hacer posible el acceder a cualquier
dato desde cualquier aplicación, sin importar qué sistema de
gestión de bases de datos (DBMS) almacene los datos.

Para desarrollar un proyecto en Python en el que se quiera


implementar el uso de Bases de Datos SQL, se tienen distintos
módulos que pueden ser útiles. pyodbc es uno de ellos.

pyodbc
pyodbc es un módulo de Python de código abierto que simplifica
el acceso a las bases de datos ODBC desde Python,
implementando el uso de la DB API 2.0 de una forma conveniente
para Python. pyodbc también es considerado como un controlador
SQL para Python.

Una base de datos es un modelo informático compuesto por un


conjunto de datos pertenecientes a un mismo contexto y
almacenados de forma ordenada para su posterior uso. Este
modelo es sumamente utilizado en la actualidad para el desarrollo
de proyectos computacionales. Entre las mas utilizadas, se
encuentran las bases de datos SQL, que son desarrolladas con el
lenguaje de programación SQL (Structured Query Language).

Instalar pyodbc
Para instalar pyodbc se utiliza el instalador de paquetes de
Python, pip, desde la terminal del sistema, con la siguiente linea de
código:

pip install pyodbc


Esto es igual para cualquier sistema. Se puede comprobar que el
módulo fue instalado de forma correcta iniciando la terminal de
Python e importando el módulo con import.

>> import pyodbc

Si no arroja ningún error, entonces el paquete fue instalado de


forma correcta

Uso de pyodbc con SQL


pyodbc es utilizado principalmente para desarrollar scripts en
Python para consultar, manejar y editar bases de datos.

Conexión al servidor SQL:


import pyodbc

'''

Otros posibles nombres de servidores pueden ser

servidor = 'localhost\sqlexpress' # para casos


específicos

servidor = 'miservidor,puerto' # para especificar un


puerto alterno

'''

servidor = 'puerto:servidor.base.sql' # Nombre del


servidor SQL con el cual se hará la conexión

bddatos = 'mibdd' # Nombre de la base de datos SQL


usuario = 'username' # Nombre del usuario de SQL

clave = 'clave' # Contraseña del usuario de SQL

conn = pyodbc.connect('DRIVER={Controlador ODBC para el


servidor SQL};

SERVER='+servidor+';

DATABASE='+bddatos+';

UID='+usuario+';

PWD='+clave)

'''

pyodbc.connect() inicia la conexión con el servidor SQL

tomando como argumentos, en orden,:

- El nombre del controlador SQL

- El servidor al cual se hará la conexión

- El nombre de la Base de datos que será consultada

- El nombre de usuario que tiene acceso a la base de


datos

- La contraseña del usuario que accede a la base de


datos

'''
cursor = conn.cursor() # se crea el cursor para la
conexión

Cursor
Un cursor en una base de datos es el objeto que es utilizado para
manejar el contexto de una operación de consulta.

Métodos de los cursores


execute()
Con la función ‘execute(sql,*parametros)’ se ejecuta expresión SQL
especificada en el primer argumento, tomando en cuenta los
parámetros especificados en el segundo argumento. Siempre
devuelve el mismo cursor. Ejemplo:

import pyodbc

conn = pyodbc.connect('DRIVER={Controlador ODBC para el


servidor SQL};

SERVER='+servidor+';

DATABASE='+bddatos+';

UID='+usuario+';

PWD='+clave)
cursor = conn.cursor()

cursor.execute('select * from tracking_sales') # Se


genera el cursor con el criterio

# de
búsqueda o query

for fila in cursor.fetchall():

print(row)

fetchone()
Devuelve la siguiente fila disponible en el query, o ‘None’ en el
caso de que no queden datos disponibles. En caso de que no se
haya ejecutado ningún SQL.

cursor.execute("select user_name from users where


user_id=?", userid)

row = cursor.fetchone()

if fila:

print(fila.user_name)

fetchall()
Devuelve una lista con todas las filas disponibles en el query.

cursor.execute("select user_id, user_name from users


where user_id < 100")

rows = cursor.fetchall()
for fila in filas:

print(fila.user_id, fila.user_name)

commit()
Guarda los cambios hechos a la base de datos.

Uso de pyodbc con


Microsoft Access
Existen dos controladores ODBC para Access oficiales. Estos son:

1. Microsoft Access Driver (*.mdb): Es la version antigua de 32 bits de


los controladores ODBC. Está incluida como estándar en las
instalaciones de Windows. Funciona solo con los archivos .mdb.
Está oficialmente descontinuado.
2. Microsoft Access Driver (*.mdb,*.accdb): Es la nueva versión de los
controladores ODBC para Access. No está incluido con Windows,
pero está incluido generalmente en la instalación de Microsoft
Office. También está disponible el paquete de instalación
independiente para los equipos que no tengan Office.
La forma mas adecuada de comprobar cual controlador se tiene
disponible, es desde la terminal de Python:

>>> import pyodbc

>>> [x for x in pyodbc.drivers() is


x.startswith('Microsoft Access Driver')]

De esta forma se obtiene el nombre del controlador ODBC para


Access instalado.
Conexión con base de datos Access
desde Python
import pyodbc

conn = pyodbc.connect('DRIVER={Microsoft Access Driver


(*.mdb,*.accdb)};

DBQ=C:\ruta\base\de\datos;')

cursor = conn.cursor() # Se crea el cursor

for fila in cursor.fetchall():

print(fila) # Se imprimen las filas de la base de


datos

Con pyodbc.connect() se inicia la conexión a la base de datos.


Recibe como parámetros el nombre del controlador ODBC y la ruta
en donde se encuentra la base de datos .mdb o .accdb.

Al igual que con a una base de datos SQL, las operaciones se


hacen con el cursor y los métodos del cursor (execute, fetchall,
fetchone, commit).

Es importante destacar que pyodbc es como una extensión a sqlite


que viene integrado a python, ya que utilizan prácticamente la
misma sintaxis y que además de eso posee soporte para otros
tipos de bases de datos.
Share:
Conexión a SQL Server con Python
#database#sql#python#tutorial

En esta ocasión quiero hablar sobre como accedes a un SQL Server


usando Python. Estuve investigando un poco y la solución que encontré
mas practica es _mssql.

_mssql es una librería de código abierto que de una forma simple y


eficiente nos permite ingresar y modificar a bases de datos SQL
utilizando Python.

Conectarse a una base de datos SQL


El primer paso es muy sencillo, para crear la conexión primero
importamos la librería _mssql y llamamos al método .connect():

import _mssql

server = 'SERVER_NAME'
user = 'USER_NAME'
password = '<PASSWORD>'
database = 'MY_DATABASE'
conn = _mssql.connect(server, user, password, database)

# aqui creamos una tabla de ejemplo

conn.execute_non_query('CREATE TABLE pets(id INT, name


VARCHAR(100))')
conn.execute_non_query("INSERT INTO pets VALUES(1, 'Firulais')")
conn.execute_non_query("INSERT INTO pets VALUES(2, 'Pelusa')")
De esta forma ya deberíamos estar conectados a la base de datos SQL,
pero ahora viene lo importante: poder utilizar estos datos a través de
queries.

Realizar Queries
Y para poder realizar queries y manipular la base de datos, debemos
llamar al método .execute_query(). Aquí dejo un ejemplo:

conn.execute_query('SELECT * FROM pets WHERE name=%s', 'Firulais')

# como extraer filas de una tabla


for row in conn:
print "ID=%d, Name=%s" % (row['id'], row['name'])

Dejo el link a la documentación de esta librería.

Van un par de ejemplos más de como realizar queries:

# contar filas de una tabla


num_pets = conn.execute_scalar("SELECT COUNT(*) FROM pets")

# seleccionar segunda fila de determinada tabla


pet_2 = conn.execute_row("SELECT * FROM pets WHERE id=%d", 2)

Cierre de la conexión
Una vez terminadas todas las tareas que se debían realizar con la base
de datos, procedemos a cerrar la conexión con el SQL Server:

conn.close()

Este paso es importante para no desperdiciar recursos en tareas que ya


han sido finalizadas o que ya no son necesarias 👍

También podría gustarte