0% encontró este documento útil (0 votos)
9 vistas4 páginas

12 Python - Bases de Datos I

La guía proporciona una introducción al uso de la librería sqlite3 en Python para crear y gestionar bases de datos. Se explican los conceptos básicos de SQL, la creación de tablas, la inserción de datos y la recuperación de información. Además, se incluyen ejercicios prácticos para aplicar los conocimientos adquiridos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas4 páginas

12 Python - Bases de Datos I

La guía proporciona una introducción al uso de la librería sqlite3 en Python para crear y gestionar bases de datos. Se explican los conceptos básicos de SQL, la creación de tablas, la inserción de datos y la recuperación de información. Además, se incluyen ejercicios prácticos para aplicar los conocimientos adquiridos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Guía 12: Python - Profesora Mariángeles Glavina

Contenidos: PHYTON – LIBRERÍA SQLITE3 – BASES DE DATOS - PARTE I

LENGUAJE SQL

Un Motor de base de datos es el servicio principal para almacenar, procesar y proteger los datos. Proporciona
acceso controlado y procesamiento de transacciones rápido para correr aplicaciones que necesiten acceder,
recuperar y modificar datos de bases de datos.

Entre los motores de bases de datos más populares se encuentran:

• MySQL
• PostgreSQL
• SQLite
• SQL Server
• Oracle
¿Qué significa SQL y por qué la mayoría lo lleva en su nombre? El lenguaje más utilizado en las bases de datos
relacionales el lenguaje SQL (Lenguaje de Consulta Estructurada), todos estos motores de búsqueda utilizan una
sintaxis similar. Por lo tanto, si bien nosotros trabajaremos con SQLite, lo que aprendamos aquí para este motor en
Python será prácticamente igual o muy similar si programás para alguno de los demás motores.

Para interactuar con una base de datos desde Python es necesario, en primer lugar, tener instalado el módulo
correspondiente. Cada uno de los motores de bases de datos suele tener un módulo oficial y otros desarrollados por
la comunidad. Nosotros usaremos el módulo para sqlite llamado sqlite3 y que se encuentra entre los módulos de la
librería Standard de Python.

Para conectarnos a la base de datos y poder trabajar en ella, necesitamos poder conectarnos y lo segundo que
necesitamos es tener una base de datos a la cual conectarnos. Para la mayoría de los motores si queremos crear una
base de datos local para hacer pruebas, deberemos, además del módulo de Python, instalar el motor de base de
datos correspondiente (es decir, descargar e instalar MySQL, o PostgreSQL, u Oracle, etc.). Se dice por esto que las
bases de datos de programan utilizando la modalidad “cliente-servidor”. La única excepción para esto es SQLite que,
por ser muy pequeño y trabajar con archivos en el sistema, ya está incorporado en Python.

CREAR E INTERACTUAR CON UNA BASE DE DATOS


Para crear o interactuar con una base de datos necesitamos siempre de 4 instrucciones imprescindibles:

1. importar el módulo sqlite3. Es un módulo de la librería standard, por lo tanto no hace falta instalarlo

2. conectarnos a la base de datos. Para ello creamos un objeto y lo nombramos como hacemos cuando
almacenamos los diferentes tipos de datos. También nombramos un archivo en donde estará almacenada la base
de datos. La primera vez que ejecutamos nuestro script se creará el archivo. Si no especificamos un directorio se
creará en la misma carpeta en la que tenemos grabado nuestro programa. La extensión del archivo puede ser
.db o .sqlite3 entre otras.

3. crear un cursor que nos permita interactuar con la base de datos. El cursor es el objeto que nos permitirá realizar
cambios en la base de datos, como crear tablas, ejecutar consultas, agregar o borrar datos. También lo podemos
nombrar como queramos, al igual que las variables.

4. cerrar la conexión al finalizar el programa. Si no lo hacemos el archivo quedará abierto, lo que da lugar a que
pueda corromperse.
Guía 12: Python - Profesora Mariángeles Glavina

import sqlite3
conexion = sqlite3.connect('ejemplo.db')
mi_cursor = conexion.cursor()

#aquí irán todas las instrucciones

conexion.close()

CREAR UNA TABLA

Como dijimos, para interactuar con la base de datos, crear tablas, modificarlas, realizar consultas necesitamos utilizar
el cursor. En el ejemplo anterior lo habíamos nombrado mi_cursor.

Éste cursor posee varios métodos para diferentes fines.

Uno de ellos es el método execute() que permite realizar diferentes operaciones por ejemplo, utilizar la instrucción
CREATE de SQL para crear una tabla:

mi_cursor.execute("CREATE TABLE personas (nombre TEXT, edad NUMERIC)")

La instrucción anterior crea una tabla, llamada personas con dos campos para el nombre (de tipo texto) y para la edad
(de tipo numérico)

Cuando una consulta realiza una modificación (cláusulas como CREATE, INSERT, UPDATE , DELETE , etc.) en la
información o estructura de alguna tabla de la base de datos es necesario “guardar los cambios” a través de una
operación llamada commit y que en Python se realiza a través de la función homónima: conexion.commit()

Si la conexión se cierra y no se ha llamado a la función commit() , toda consulta que haya alterado la base de datos
habrá sido desestimada.

import sqlite3
conexion = sqlite3.connect('ejemplo.db')
mi_cursor = conexion.cursor()
mi_cursor.execute("CREATE TABLE personas (nombre TEXT, edad NUMERIC)")
conexion.commit()
conexion.close()

Observemos además que si la tabla ya existe, el programa da error. Por lo tanto, deberíamos usar algunas
instrucciones más para evitar el error. Se podría evitar con un if, o mejor aún con una excepción, que es una
estructura condicional expecífica para cuando hay errores de diferentes tipos. En las próximas guías veremos los
errores más comunes y como evitarlos utilizando excepciones.

import sqlite3
conexion = sqlite3.connect('ejemplo.db')
mi_cursor = conexion.cursor()
try:
mi_cursor.execute("CREATE TABLE personas (nombre TEXT, edad NUMERIC)")
conexion.commit()
except:
pass
conexion.close()

INSERTAR DATOS EN UNA TABLA

Para agregar datos en una tabla, vamos a crear una tupla llamada datos. Las tuplas son conjunto de datos separados
por comas, que son inmutables, o sea, no puedo alterar parte de su contenido.
Guía 12: Python - Profesora Mariángeles Glavina
datos= ("Pablo", 30)

y la insertaremos en la tabla personas

mi_cursor.execute("INSERT INTO personas VALUES (?, ?)", datos)

conexion.commit()

import sqlite3
conexion = sqlite3.connect('ejemplo.db')
mi_cursor = conexion.cursor()
try:
mi_cursor.execute("CREATE TABLE personas (nombre TEXT, edad NUMERIC)")
conexion.commit()
except:
pass
datos= ("Pablo", 30)
mi_cursor.execute("INSERT INTO personas VALUES (?, ?)", datos)
conexion.commit()
conexion.close()

También podemos insertar varios datos a la vez creando una tupla que contenga otras tuplas con la estructura
(nombre, edad) , y luego para cada una de ellas ejecutaremos una consulta INSERT para añadirla a la tabla.

muchos = ( ("Pablo", 30), ("Jorge", 41), ("Pedro", 27) )

for nombre, edad in muchos:

mi_cursor.execute("INSERT INTO personas VALUES (?, ?)", (nombre, edad))

conexion.commit()

Además podemos permitirle al usuario que ingrese esos datos por pantalla
import sqlite3
conexion = sqlite3.connect('ejemplo.db')
mi_cursor = conexion.cursor()
try:
mi_cursor.execute("CREATE TABLE personas (nombre TEXT, edad NUMERIC)")
conexion.commit()
except:
pass
nombre=input("Ingrese el nombre de la persona: ")
edad=int(input("Ingrese la edad de la persona: "))
mi_cursor.execute("INSERT INTO personas VALUES (?, ?)", (nombre, edad))
conexion.commit()
conexion.close()

OBTENER TODOS LOS DATOS DE UNA TABLA

Para obtener todos los datos de una tabla se utilizan las siguientes instrucciones:

mi_cursor.execute("SELECT * FROM personas")

todos = mi_cursor.fetchall()

print(todos)

Esto imprime en pantalla un lista de tuplas con todos los registros que contiene la tabla, por ejemplo:

[('Pablo', 30), ('Jorge', 41), ('Pedro', 27)]


Guía 12: Python - Profesora Mariángeles Glavina
Si se quiere retornar únicamente el primer resultado obtenido, puede utilizarse fetchone() .

print(mi_cursor.fetchone())

El valor de retorno de esta función es una tupla, no una lista, ya que solo obtiene una fila de la tabla especificada. En
este caso, imprime por ejemplo:

('Pablo', 30)

Y si volvemos a ejecutar la instrucción, imprimirá la siguiente fila, y así sucesivamente. Del mismo modo, el valor de
retorno puede ser None si la tabla está vacía o si la consulta no devolvió ningún resultado.

EJERCICIOS

1- CREAR UNA BASE DE DATOS QUE CONTENGA UNA TABLA CON AL MENOS TRES CAMPOS (UNO DEBE SER
NUMÉRICO) Y CARGAR 5 REGISTROS DESDE EL CÓDIGO.

2- EN LA TABLA ANTERIOR AGREGAR REGISTROS INGRESADOS POR EL USUARIO, MIENTRAS QUE EL USUARIO LO
REQUIERA

3- EN LA TABLA ANTERIOR, EVITAR EL ERROR POR EL INGRESO DE UN DATO NO NUMÉRICO EN EL CAMPO


NUMÉRICO.

4- EN LA TABLA ANTERIOR HALLAR EL PROMEDIO DE LOS DATOS NUMÉRICOS.

También podría gustarte