Programación de Bases de Datos en Python
Programación de Bases de Datos en Python
PROGRAMACIÓN EN PYTHON
Course Code: CS721PE
C. RAJEEV
Prof. Asistente
CSE,
MRECW.
UNIDAD-5
UNIDAD – V
Programación de Bases de Datos: Introducción, Base de Datos en Python
Python soporta varias bases de datos como MySQL, Oracle, Sybase, PostgreSQL, etc.
Python también soporta el Lenguaje de Definición de Datos (DDL), Lenguaje de Manipulación de Datos
Para la programación de bases de datos, la API DB de Python es un módulo ampliamente utilizado que proporciona un
GadFly Informix
mSQL Interbase
MySQL Oráculo
PostgreSQL Sybase
Microsoft SQL Server 2000
Base de datos de Python.
Los datos se recuperan de un sistema de base de datos utilizando el lenguaje SQL.
Los datos están en todas partes y las aplicaciones de software los utilizan. Los datos están en la memoria, en archivos o
bases de datos.
Python tiene bindings para muchos sistemas de bases de datos, incluyendo MySQL, Postregsql, Oracle,
SQLite fue creado en el año 2000 y es uno de los muchos sistemas de gestión en el
base de datos zoológico.
SQL:
SQL es un lenguaje de programación de propósito especial diseñado para gestionar datos almacenados en
Los comandos y consultas de la base de datos se dan a una base de datos mediante SQL.
La mayoría de las bases de datos están configuradas para ser insensibles a mayúsculas y minúsculas, especialmente los comandos de bases de datos.
El estilo aceptado es usar MAYÚSCULAS para las palabras clave de la base de datos.
La mayoría de los programas de línea de comandos requieren un punto y coma ( ; ) al final para terminar una SQL
declaración.
Aquí hay algunos ejemplos de comandos SQL.
1. Creando una base de datos
Suponiendo que eres un administrador de bases de datos, esta segunda línea se puede utilizar para
otorgar permisos a usuarios específicos (o a todos ellos) para que puedan realizar el
operaciones de base de datos
2. Usando una base de datos
USE prueba;
If you logged into a database systemwithout choosingwhich database you want to use, this
una declaración simple te permite especificar una con la que realizar operaciones en la base de datos.
Esta declaración simple elimina todas las tablas y datos de la base de datos y los borra de
el sistema.
[Link] a Table
CREAR TABLA usuarios (login VARCHAR(8), uid INT, prid INT);
Esta declaración crea una nueva tabla con una columna de cadena login y un par de campos enteros uid
yprid.
5. Eliminando una tabla
ELIMINAR TABLA usuarios;
Esta simple declaración elimina una tabla de base de datos junto con todos sus datos.
6. Insertar una fila
INSERTAR EN usuarios VALORES('leanna', 311, 1);
Puedes insertar una nueva fila en una base de datos con la declaración INSERT. Especifica la tabla.
y los valores que van en cada campo. Para nuestro ejemplo, la cadena 'leanna' va en el
campo de inicio de sesión, y 311 y 1 a uid y prid, respectivamente.
Para cambiar filas existentes de la tabla, utilizas la instrucción UPDATE. Usa SET para el
columnas que están cambiando y proporcionar cualquier criterio para determinar qué filas deben
cambiar
En el primer ejemplo, todos los usuarios con un 'ID de proyecto' o prid de 2 serán movidos al proyecto.
filas de, y cualquier criterio opcional. Sin él, como en el segundo ejemplo, todas las filas serán
eliminado.
Beneficios de Python para la programación de bases de datos
idiomas.
Python es famoso por su portabilidad.
Es independiente de la plataforma.
conexiones abiertas y cerradas de la base de datos, para evitar más excepciones y errores. En
Python, estas conexiones están a cargo de Python soporta bases de datos relacionales
sistemas.
Las APIs de bases de datos de Python son compatibles con varias bases de datos, por lo que es muy fácil
Por ejemplo, si necesitas acceder a una base de datos Oracle así como a una base de datos MySQL,
debes descargar tanto los módulos de base de datos de Oracle como de MySQL.
La API DB proporciona un estándar mínimo para trabajar con bases de datos usando Python
4. Cerrando la conexión
Bases de datos y Python:
Podemos acceder a bases de datos relacionales desde Python, ya sea directamente a través de una base de datos
Un adaptador es básicamente un módulo de Python que te permite conectarte a una base de datos relacional.
Se recomienda que todos los adaptadores de Python se adapten a la aplicación del DB-SIG de Python.
La figura ilustra las capas involucradas en la escritura de una aplicación de base de datos en Python, con
y sin un ORM.
Los ORM pueden simplificar una aplicación al manejar todos los detalles específicos de la base de datos.
Interfaz de Programador de Aplicaciones de Base de Datos de Python (DB-API):
mecanismos para proporcionar acceso consistente a través de los diversos adaptadores de base de datos y
La DB-API es una especificación para una interfaz común a bases de datos relacionales.
En los "viejos tiempos", teníamos un escenario de muchas bases de datos y mucha gente.
implementando sus propios adaptadores de base de datos. Era una rueda que se estaba reinventando
una y otra vez. Estas bases de datos y adaptadores fueron implementados en diferentes momentos
por diferentes personas sin ninguna coherencia en la funcionalidad.
Se formó un grupo de interés especial (SIG) para la conectividad de bases de datos de Python, y
tweaking several lines of code. The current version of the specification isversion 2.0.
Atributos del Módulo
Un módulo compatible con DBAPI debe definir los atributos globales.
1: Mínimamente seguro para hilos: los hilos pueden compartir el módulo pero no las conexiones.
2: Moderadamente seguro para hilos: los hilos pueden compartir el módulo y las conexiones, pero no
cursoras.
3: Totalmente seguro para subprocesos: los subprocesos pueden compartir el módulo, conexiones y cursores.
[Link]
La API admite una variedad de formas de indicar cómo se deben integrar los parámetros.
en una instrucción SQL que finalmente se envía al servidor para su ejecución.
Este argumento es solo una cadena que especifica la forma de sustitución de cadenas que utilizarás.
Podemos pasar la información de conexión a la base de datos como una cadena con múltiples parámetros (DSN)
o parámetros individuales pasados como argumentos posicionales o, más probablemente, argumentos nombrados.
Aquí hay un ejemplo de usar connect() de PEP 249 (Propuesta de Mejora de Python):
connect(dsn='myhost:MYDB',user='guido',password='234$')
El uso de DSN frente a parámetros individuales se basa principalmente en el sistema que estás utilizando.
conectando a.
Por ejemplo, si estás utilizando una API como ODBC o JDBC, probablemente estés utilizando un DSN.
mientras que si estás trabajando directamente con una base de datos, entonces es más probable que emitas por separado
Otra razón para esto es que la mayoría de los adaptadores de bases de datos no han implementado soporte para
DSN.
A continuación se presentan algunos ejemplos de llamadas connect() que no son DSN. Tenga en cuenta que no todos los adaptadores tienen
subclases.
Jerarquía de clases de excepciones de DB-API
1. Advertencia:
Se genera una excepción para advertencias importantes como la truncación de datos al insertar, etc.
2. Error:
Excepción que es la clase base de todas las demás excepciones de error. Podemos usar esto para
4. DatabaseError:
Excepción levantada por errores relacionados con la base de datos
5. Error de datos:
Excepción generada por errores que se deben a problemas con los datos procesados como
división por cero, valor numérico fuera de rango, etc.
6. ErrorOperacional: Error durante la ejecución de la operación de la base de datos
Una vez que se ha establecido una conexión (o un conjunto de conexiones), creas cursores para
enviar solicitudes y recibir respuestas de la base de datos.
Métodos del objeto de conexión:
Nombre del método Description
cerrar() Cerrar conexión a la base de datos
cursor
V. Objetos Cursor:
Una vez que tengas una conexión, puedes comenzar a hablar con la base de datos.
El cursor permite a un usuario emitir comandos de base de datos y recuperar filas resultantes de consultas.
Un objeto cursor de la API de base de datos de Python funciona como un cursor para ti, incluso si los cursores no lo son.
admitido en la base de datos. En este caso, el creador del adaptador de la base de datos debe implementar
Esto mantiene tu código de Python consistente cuando cambias entre sistemas de bases de datos que
Una vez que hayas creado un cursor, puedes ejecutar una consulta o comando (o múltiples consultas
tamaño de arreglo Número de filas para recuperar a la vez con fetch many();
por defecto es 1
Como programador que escribe para la DB-API de Python, los parámetros que envías a una base de datos
se dan como cadenas, pero la base de datos puede necesitar convertirlas a una variedad de diferentes,
tipos de datos compatibles que son correctos para cualquier consulta particular.
DB-API es crear constructores que construyan objetos especiales que puedan ser fácilmente convertidos
Algunas bases de datos, como Sybase, SAP, Oracle y SQLServer, tienen más de uno
adaptador disponible.
Lo mejor que puedes hacer es averiguar cuáles se adaptan mejor a tus necesidades.
Para PostgreSQL, hay tres adaptadores de Python disponibles, es decir, psycopg, PyPgSQL y PyGreSQL.
datos almacenados en tablas de bases de datos relacionales en objetos que son más comúnmente utilizados
en el código de la aplicación.
El ORM es independiente de qué sistema de base de datos relacional se utilice. Desde dentro
Relacional– Esta parte representa la base de datos RDBMS que estás utilizando como –MySQL, Oracle
Mapeo - Esta parte final representa el puente y la conexión entre los dos anteriores
partes, los objetos y las tablas de la base de datos.
Los ORM proporcionan una abstracción de alto nivel sobre una base de datos relacional que permite a un desarrollador
escribe código Python en lugar de SQL para crear, leer, actualizar y eliminar datos y esquemas
su base de datos.
Los desarrolladores pueden usar el lenguaje de programación con el que se sientan cómodos para trabajar con un
Por ejemplo, sin un ORM, un desarrollador escribiría la siguiente declaración SQL para
recupera cada fila en la tabla USERS donde la columna zip_code es 94107:
SELECCIONAR * DE USUARIOS DONDE código_postal=94107;
La consulta equivalente de Django ORM se vería en su lugar como el siguiente código en Python:
La capacidad de escribir código Python en lugar de SQL puede acelerar el desarrollo de aplicaciones web,
1. SQLAlchemy
2. Peewee
3. El ORM de Django
4. PonyORM
5. SQLObject
6. Tortoise ORM
La mayor parte de las veces, esta biblioteca se utiliza como una herramienta de Mapeo de Objetos Relacionales (ORM) que
convierte clases de Python a tablas en bases de datos relacionales y convierte automáticamente funciones
SQLAlchemy proporciona una interfaz estándar que permite a los desarrolladores crear aplicaciones independientes de la base de datos.