John Cardozo
Python, Postgres, Psycopg2
Verifica la versión de Python instalada
python3 ––versionActualizar la lista de repositorios
sudo apt updateInstalar Personal Package Archive (PPA)
sudo apt install software-properties-commonInstalar el PPA Deadsnakes
sudo add-apt-repository ppa:deadsnakes/ppaActualizar la lista de repositorios (de nuevo)
sudo apt updateInstalar Python 3.7
sudo apt install python3.7Instalación - opción 1
pip3 install psycopg2Muestra los paquetes instalados
pip3 freezePsycopg es el adaptador más popular de bases de datos PostgreSQL para Python.
Instalación de PIP3 - Administrador de Paquetes para Python
sudo apt install python3-pipInstalación en Ubuntu
sudo apt-get install -y python3-psycopg2pip install psycopg2-binaryInstalación - opción 2
pip install pipwin
pipwin install psycopg2Instalación en Windows
# Datos de conexión
dc = {
'host': 'localhost',
'database': 'empresa',
'user': 'postgres',
'password': 'qwerty'
}
# Conexión a la base de datos
conexion = psycopg2.connect(**dc)
# Cerrar la conexión
conexion.close()import psycopg2Importar la librería psycopg2
Crear la conexión a la base de datos
dc = {
'host': 'localhost',
'database': 'empresa',
'user': 'postgres',
'password': 'qwerty'
}import psycopg2
from datos_conexion import dc
# Conexión a la base de datos
conexion = psycopg2.connect(**dc)
# Cerrar la conexión
conexion.close()datos_conexion.py
programa.py
create table empleados(
id serial primary key,
nombres varchar(100) not null,
email varchar(50)
);Tabla de ejemplo: empleados
| id | nombres | |
|---|---|---|
| 1 | john | john@gmail.com |
| 2 | paul | paul@gmail.com |
| 3 | george | george@gmail.com |
| 4 | ringo | ringo@gmail.com |
columnas
filas
conexion = psycopg2.connect(**dc)Obtener una conexión a la base de datos
cursor = conexion.cursor()Crear un cursor a partir de la conexión
cursor.execute('select * from empleados')Ejecutar la cadena SQL en la base de datos
for fila in filas:
# Obtiene las columnas
# id (0) y nombres (1)
id = fila[0]
nombres = fila[1]
# Imprime los datos
print(f'id={id}\tnombres={nombres}')Recorre las filas obtenidos para obtener el valor de cada columna
cursor.close()
conexion.close()Cierra el cursor y la conexión a la base de datos
1
2
3
5
6
filas = cursor.fetchall()Obtiene todas filas
4
import psycopg2
from datos_conexion import dc
# Conexión a la base de datos
conexion = psycopg2.connect(**dc)
# Creación de cursor
cursor = conexion.cursor()
# Ejecución de la sentencia
cursor.execute('select * from empleados')
# Obtiene todas las filas
filas = cursor.fetchall()
# Recorre las filas
for fila in filas:
# Obtiene las columnas id (0) y nombres (1)
id = fila[0]
nombres = fila[1]
# Imprime los datos
print(f'id={id}\tnombres={nombres}')
# Cerrar el cursor
cursor.close()
# Cerrar la conexión
conexion.close()conexion = psycopg2.connect(**dc)Obtener una conexión a la base de datos
cursor = conexion.cursor()Crear un cursor a partir de la conexión
cursor.execute(sql, parametros)Ejecutar la cadena SQL en la base de datos
for fila in filas:
# Obtiene las columnas
# id (0) y nombres (1)
id = fila[0]
nombres = fila[1]
# Imprime los datos
print(f'id={id}\tnombres={nombres}')Recorre las filas obtenidas para obtener el valor de cada columna
cursor.close()
conexion.close()Cierra el cursor y la conexión a la base de datos
1
2
5
7
8
registros = cursor.fetchall()Obtiene las filas
6
sql = 'select * from empleados where id=%s'Establece la cadena SQL SELECT a ejecutar
3
parametros = ('1',)4
Establece los parámetros
import psycopg2
from datos_conexion import dc
# Conexión a la base de datos
conexion = psycopg2.connect(**dc)
# Creación de cursor
cursor = conexion.cursor()
# Cadena SQL
sql = 'select * from empleados where id=%s'
# Establece los parámetros
parametros = ('1',)
# Ejecución de la sentencia
cursor.execute(sql, parametros)
# Obtiene las filas
filas = cursor.fetchall()
# Recorre las filas
for fila in filas:
# Obtiene las columnas id (0) y nombres (1)
id = fila[0]
nombres = fila[1]
# Imprime los datos
print(f'id={id}\tnombres={nombres}')
# Cerrar el cursor
cursor.close()
# Cerrar la conexión
conexion.close()conexion = psycopg2.connect(**dc)Obtener una conexión a la base de datos
cursor = conexion.cursor()Crear un cursor a partir de la conexión
sql = 'insert into empleados(nombres, email) values(%s, %s)'Crear la cadena SQL INSERT que se va a ejecutar
parametros = ('john', 'john@gmail.com')Definir los parámetros de la cadena SQL
cursor.execute(sql, parametros)Ejecutar la cadena SQL en la base de datos
conexion.commit()Guarda los datos en la base de datos
cursor.close()
conexion.close()Cierra el cursor y la conexión a la base de datos
1
2
3
6
7
8
5
# Librerias
import psycopg2
from datos_conexion import dc
# Conexión a la base de datos
conexion = psycopg2.connect(**dc)
# Creación de cursor
cursor = conexion.cursor()
# Cadena SQL
sql = 'insert into empleados(nombres, email) values(%s, %s)'
# Parametros de la cadena
parametros = ('john', 'john@gmail.com')
# Ejecución de la sentencia
cursor.execute(sql, parametros)
# Guarda los cambios en la base de datos
conexion.commit()
# Cerrar el cursor
cursor.close()
# Cerrar la conexión
conexion.close()
conexion = psycopg2.connect(**dc)Obtener una conexión a la base de datos
cursor = conexion.cursor()Crear un cursor a partir de la conexión
sql = 'update empleados set nombres=%s where id=%s'Crear la cadena SQL UDATE que se va a ejecutar
parametros = ('paul', 1)Definir los parámetros de la cadena SQL
cursor.execute(sql, parametros)Ejecutar la cadena SQL en la base de datos
conexion.commit()Guarda los datos en la base de datos
cursor.close()
conexion.close()Cierra el cursor y la conexión a la base de datos
1
2
3
6
7
8
5
import psycopg2
from datos_conexion import dc
# Conexión a la base de datos
conexion = psycopg2.connect(**dc)
# Creación de cursor
cursor = conexion.cursor()
# Cadena SQL
sql = 'update empleados set nombres=%s where id=%s'
# Parametros de la cadena
parametros = ('paul', 1)
# Ejecución de la sentencia
cursor.execute(sql, parametros)
# Guarda los cambios en la base de datos
conexion.commit()
# Cerrar el cursor
cursor.close()
# Cerrar la conexión
conexion.close()conexion = psycopg2.connect(**dc)Obtener una conexión a la base de datos
cursor = conexion.cursor()Crear un cursor a partir de la conexión
sql = 'delete from empleados where id=%s'Crear la cadena SQL DELETE que se va a ejecutar
parametros = ('3')Definir los parámetros de la cadena SQL
cursor.execute(sql, parametros)Ejecutar la cadena SQL en la base de datos
conexion.commit()Elimina los datos en la base de datos
cursor.close()
conexion.close()Cierra el cursor y la conexión a la base de datos
1
2
3
6
7
8
5
import psycopg2
from datos_conexion import dc
# Conexión a la base de datos
conexion = psycopg2.connect(**dc)
# Creación de cursor
cursor = conexion.cursor()
# Cadena SQL
sql = 'delete from empleados where id=%s'
# Parametros de la cadena
parametros = ('3')
# Ejecución de la sentencia
cursor.execute(sql, parametros)
# Elimina los datos en la base de datos
conexion.commit()
# Cerrar el cursor
cursor.close()
# Cerrar la conexión
conexion.close()johncardozo@gmail.com