Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío: manipulando una base de datos

Crear la base de datos local con la biblioteca SQLAlchemy.

# Importamos la biblioteca
import sqlalchemy
from sqlalchemy import create_engine, MetaData, Table, inspect, text
from sqlalchemy.exc import SQLAlchemyError
engine = create_engine('sqlite:///:memory:')
import pandas as pd
archivo_clientes = '/content/drive/MyDrive/Pandas_2/banco_de_datos/clientes_banco.csv'
# Se almacena en una variable tipo DataFrame que recibe todos los registros guardados
# Es importante pasar los datos a un DataFrame antes de enviarlos a SQL
datos_clientes = pd.read_csv(archivo_clientes)

Escribir los datos del archivo CSV en esta base de datos local.

# Exporta los registros o el archivo a una tabla sql - muestra la cantidad de registros.
datos_clientes.to_sql('clientes',engine,index=False)
# Para obtener el DataFrame
pd.read_sql_table('clientes', con =engine.connect())

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

# Revisa todo lo que hay dentro del motor engine y lo almacena en la variable 'inspector'
inspector = inspect(engine)
# Devuelve una lista con los nombres de todas las tablas que existen en la base de datos actualmente conectada con SQLAlchemy.
print(inspector.get_table_names())

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Realizar tres actualizaciones en la base de datos:


Actualizar el registro del cliente

query = 'UPDATE clientes SET Rendimiento_anual=300000  WHERE ID_Cliente=6840104 '

try:
  r_set = engine.connect().execute(text(query))
except SQLAlchemyError as e:
  print(e)
else:
  print('#Registros actualizados: ',r_set.rowcount)

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

# Confirmar que se haya actualizado el registro 
pd.read_sql_table('clientes', con =engine.connect())

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Eliminar el registro de cliente

query = 'DELETE FROM clientes WHERE ID_Cliente=5008809	'
try:
  r_set = engine.connect().execute(text(query))
except SQLAlchemyError as e:
 print(e)
else:
  print('#Registros eliminados: ',r_set.rowcount)

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

# Confirmar que se haya eliminado el registro 
pd.read_sql_table('clientes', con =engine.connect())

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Crear un nuevo registro de cliente

query = 'INSERT INTO clientes ("ID_Cliente", "Edad","Grado_estudio","Estado_civil","Tamaño_familia","Categoria_de_renta","Ocupacion","Años_empleado","Rendimiento_anual","Tiene_carro","Vivienda")'\
        'VALUES(6850985,33,"Doctorado","Soltero",1,"Empleado","TI",2,290000,0,"Casa/Departamento propio")'
try:
  r_set = engine.connect().execute(text(query))
except SQLAlchemyError as e:
 print(e)
else:
  print('#Registros creados: ',r_set.rowcount) 

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

# Confirmar que se haya creado el registro 
pd.read_sql_table('clientes', con =engine.connect())

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

# Devuelve una lista con los nombres de todas las tablas que existen en la base de datos actualmente conectada con SQLAlchemy.
print(inspector.get_table_names())

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

¡Hola! ¿Cómo estás?

Gracias por tu aporte en el foro. Tu contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!