-
Notifications
You must be signed in to change notification settings - Fork 1
Registros con Postgresql y Python
Este proyecto tiene como objetivo mostrar ejemplos de código utilizando Python y la biblioteca psycopg2 para interactuar con una base de datos PostgreSQL. A continuación, se presentan diferentes ejercicios que cubren consultas, inserciones, actualizaciones y eliminaciones de registros en la base de datos.
Ejercicio 5.1: Uso de with y psycopg2 Este ejercicio muestra cómo utilizar la sentencia "with" junto con la biblioteca psycopg2 para conectarse a una base de datos PostgreSQL y ejecutar consultas.
import psycopg2`
`conexion = psycopg2.connect(user='postgres',password='Admin',host='127.0.0.1',port='5432',database='Test_bd')`
`try:`
`with conexion:`
`with conexion.cursor() as cursor:`
`sentencia = 'SELECT * FROM persona WHERE id_persona = %s' # Placeholder`
`id_persona = input('Digite un número para el id persona: ')`
`cursor.execute(sentencia,(id_persona,))`
`registros = cursor.fetchone()`
`print(registros)`
`except Exception as e:`
`print(f'Ocurrió un error: {e}')`
`finally:`
`conexion.close()
En este ejercicio, aprenderás cómo utilizar la función fetchone de psycopg2 para recuperar un solo registro de la base de datos:
import psycopg2`
`conexion = psycopg2.connect(user='postgres',password='Admin',host='127.0.0.1',port='5432',database='Test_bd')`
`try:`
`with conexion:`
`with conexion.cursor() as cursor:`
`sentencia = 'SELECT * FROM persona WHERE id_persona = %s' # Placeholder`
`id_persona = input('Digite un número para el id persona: ')`
`cursor.execute(sentencia,(id_persona,))`
`registros = cursor.fetchone()`
`print(registros)`
`except Exception as e:`
`print(f'Ocurrió un error: {e}')`
`finally:`
`conexion.close()`
Este ejercicio muestra cómo utilizar la función fetchall de psycopg2 para recuperar varios registros de la base de datos:
`import psycopg2`
`conexion = psycopg2.connect(user='postgres',password='Admin',host='127.0.0.1',port='5432',database='Test_bd')`
`try:`
`with conexion:`
`with conexion.cursor() as cursor:`
`sentencia = 'SELECT * FROM persona WHERE id_persona IN (1,2)' # Placeholder`
`id_persona = input('Digite un número para el id persona: ')`
`cursor.execute(sentencia,(id_persona,))`
`registros = cursor.fetchall()`
`for registro in registros:`
`print(registro)`
`except Exception as e:`
`print(f'Ocurrió un error: {e}')`
`finally:`
`conexion.close()`
Este ejercicio muestra cómo utilizar la función fetchall de psycopg2 para recuperar varios registros de la base de datos:
import psycopg2
conexion = psycopg2.connect(user='postgres',password='Admin',host='127.0.0.1',port='5432',database='Test_bd')
try:
with conexion:
with conexion.cursor() as cursor:
sentencia = 'SELECT * FROM persona WHERE id_persona IN %s ' #place holder
entrada = input('Digite los_persona a buscar (separados por coma):')
llaves_primarias = (tuple(entrada.split(',')),)
cursor.execute(sentencia,(llaves_primarias,)) # se ejecuta la sentencia
registros = cursor.fetchall() # recupera todos los registros
print(registros)
except Exception as e:
En este ejercicio, aprenderás cómo insertar un nuevo registro en la base de datos utilizando la biblioteca psycopg2.
import psycopg2
conexion = psycopg2.connect(user='postgres',password='Admin',host='127.0.0.1',port='5432',database='Test_bd')
try:
with conexion:
with conexion.cursor() as cursor:
sentencia = 'INSERT INTO persona(nombre, apellido, email) VALUES(%s, %s, %s)'
nombre = input('Digite el nombre: ')
apellido = input('Digite el apellido: ')
email = input('Digite el correo electrónico: ')
valores = (nombre, apellido, email)
cursor.execute(sentencia, valores)
conexion.commit()
print('Registro insertado correctamente.')
except Exception as e:
print(f'Ocurrió un error: {e}')
finally:
conexion.close()
Este ejercicio muestra cómo insertar múltiples registros en la base de datos utilizando la función executemany de psycopg2.
import psycopg2 # Esto es para poder conectarnos a base de datos Postgre (Se abrio y se cerro)
conexion = psycopg2.connect(user='postgres', password='us00', host='127.0.0.1', port='5432', database='test_bd')
try:
with conexion:
with conexion.cursor() as cursor:
sentencia = 'INSERT INTO persona (nombre, apellido, email) VALUES (%s, %s, %s)' # PLACEHOLDER
valores = (
('Carlos', 'Lara', 'clara@mail.com'),
('Marcos', 'Canto', 'mcanto@mail.com'),
('Marcelo', 'Cuenca', 'cuencaM@mail.com')
) # Es una tupla de tuplas
cursor.executemany(sentencia, valores) # De esta manera ejecutamos la sentencia
# conexion.commit() esto se utiliza para guardar los cambios en la base de datos (en este caso no, porque utilizamos "with")
registros_insertados = cursor.rowcount # Recuperamos todos los registros que serán una lista
print(f'Los registros insertados son: {registros_insertados}')
except Exception as e:
print(f'Ocurrió un error: {e}')
finally:
conexion.close()
En este ejercicio, aprenderás cómo actualizar un registro existente en la base de datos utilizando la biblioteca psycopg2:
import psycopg2 # Esto es para poder conectarnos a Postgre
conexion = psycopg2.connect(user='postgres', password='us00', host='127.0.0.1', port='5432', database='test_bd')
try:
with conexion:
with conexion.cursor() as cursor:
sentencia = 'UPDATE persona SET nombre=%s, apellido=%s, email=%s WHERE id_persona=%s' # Placeholder
valores = ('Juan Carlos', 'Roldan', 'rcarlos@mail.com', 1) # Es una tupla
cursor.execute(sentencia, valores) # De esta manera ejecutamos la sentencia
registros_actualizados = cursor.rowcount # Recuperamos todos los registros que serán una lista
print(f'Los registros actualizados son: {registros_actualizados}')
except Exception as e:
print(f'Ocurrió un error: {e}')
finally:
conexion.close()
Este ejercicio muestra cómo actualizar varios registros en la base de datos utilizando la función executemany de psycopg2:
import psycopg2 # Esto es para poder conectarnos a Postgre
conexion = psycopg2.connect(user='postgres', password='us00', host='127.0.0.1', port='5432', database='test_bd')
try:
with conexion:
with conexion.cursor() as cursor:
sentencia = 'UPDATE persona SET nombre=%s, apellido=%s, email=%s WHERE id_persona=%s' # Placeholder
valores = (
('Juan', 'Perez', 'jperez@mail.com', 4),
('Romina','Ayala','alarar@gmail.com',5)
) # Es una tupla de tuplas
cursor.executemany(sentencia, valores) # De esta manera ejecutamos la sentencia
registros_actualizados = cursor.rowcount # Recuperamos todos los registros que serán una lista
print(f'Los registros actualizados son: {registros_actualizados}')
except Exception as e:
print(f'Ocurrió un error: {e}')
finally:
conexion.close()
import psycopg2 # Esto es para poder conectarnos a Postgre
conexion = psycopg2.connect(user='postgres', password='us00', host='127.0.0.1', port='5432', database='test_bd')
try:
with conexion:
with conexion.cursor() as cursor:
sentencia = 'DELETE FROM persona WHERE id_persona=%s'
entrada = input('Digite el numero de registros a eliminar: ')
valores = (entrada,) # Es una tupla de valores
cursor.execute(sentencia, valores) # De esta manera ejecutamos la sentencia
registros_eliminados = cursor.rowcount
print(f'Los registros eliminados son: {registros_eliminados}')
except Exception as e:
print(f'Ocurrió un error: {e}')
finally:
conexion.close()
Este ejercicio muestra cómo eliminar varios registros de la base de datos utilizando la función executemany de psycopg2:
import psycopg2
conexion = psycopg2.connect(user='postgres',password='Admin',host='127.0.0.1',port='5432',database='Test_bd')
try:
with conexion:
with conexion.cursor() as cursor:
sentencia = 'DELETE FROM persona WHERE id_persona = %s'
registros = [(1,), (2,), (3,)]
cursor.executemany(sentencia, registros)
conexion.commit()
print('Registros eliminados correctamente.')
except Exception as e:
print(f'Ocurrió un error: {e}')
finally:
conexion.close()