Acceso a Bases de Datos PostgreSQL con psycopg en Python

Acceso a Bases de Datos PostgreSQL con psycopg en Python

Introducción

PostgreSQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto que ofrece una amplia gama de características y funcionalidades. Es una base de datos muy popular entre los desarrolladores de software, ya que es robusta, escalable y segura.

Python es un lenguaje de programación interpretado, de alto nivel y multiparadigma. Es un lenguaje muy popular entre los desarrolladores web, científicos de datos e ingenieros de software.

Psycopg

Psycopg es un adaptador de Python para PostgreSQL. Es una biblioteca de código abierto que proporciona una interfaz Python para conectarse y trabajar con bases de datos PostgreSQL.

Instalación

Para instalar psycopg en Python, podemos usar el administrador de paquetes de nuestra distribución. Por ejemplo, en Ubuntu podemos ejecutar el siguiente comando:

sudo apt install python3-psycopg2

Conexión a una base de datos PostgreSQL

Para conectarse a una base de datos PostgreSQL con psycopg, podemos usar el método connect() de la clase psycopg2.connect(). Este método requiere los siguientes parámetros:

  • host: La dirección del servidor PostgreSQL.
  • port: El puerto del servidor PostgreSQL.
  • database: El nombre de la base de datos.
  • user: El nombre de usuario de la base de datos.
  • password: La contraseña de la base de datos.

Por ejemplo, el siguiente código conecta a una base de datos PostgreSQL en la máquina local, usando el usuario postgres y la contraseña secret:

Python
import psycopg2

# Conexión a la base de datos
connection = psycopg2.connect(
    host="localhost",
    port=5432,
    database="postgres",
    user="postgres",
    password="secret",
)

Ejecución de consultas SQL

Una vez que estamos conectados a una base de datos PostgreSQL, podemos ejecutar consultas SQL usando el método cursor() de la clase psycopg2.connect(). Este método devuelve un objeto psycopg2.cursor() que podemos usar para ejecutar consultas SQL.

Por ejemplo, el siguiente código ejecuta una consulta SQL que devuelve todos los registros de la tabla users:

Python
# Obtención de un cursor
cursor = connection.cursor()

# Ejecución de una consulta SQL
cursor.execute("SELECT * FROM users")

# Obtención de los resultados
results = cursor.fetchall()

# Cerrar el cursor
cursor.close()

# Impresión de los resultados
for row in results:
    print(row)

Cierre de la conexión

Cuando ya no necesitemos la conexión a la base de datos, debemos cerrarla usando el método close() de la clase psycopg2.connect().

Python
# Cierre de la conexión
connection.close()

Ejemplo completo

El siguiente ejemplo completo muestra cómo conectar a una base de datos PostgreSQL, ejecutar una consulta SQL y cerrar la conexión:

Python
import psycopg2

# Conexión a la base de datos
connection = psycopg2.connect(
    host="localhost",
    port=5432,
    database="postgres",
    user="postgres",
    password="secret",
)

# Obtención de un cursor
cursor = connection.cursor()

# Ejecución de una consulta SQL
cursor.execute("SELECT * FROM users")

# Obtención de los resultados
results = cursor.fetchall()

# Cerrar el cursor
cursor.close()

# Cerrar la conexión
connection.close()

# Impresión de los resultados
for row in results:
    print(row)

Este ejemplo imprime la siguiente salida:

(1, 'John Doe', 'johndoe@example.com')
(2, 'Jane Doe', 'janedoe@example.com')

Referencias

  • Psycopg2: https://www.psycopg.org/
  • PostgreSQL Tutorial: https://www.postgresqltutorial.com/

Conclusión

Psycopg es una biblioteca muy potente que nos permite acceder a bases de datos PostgreSQL desde Python. Con psycopg, podemos realizar una amplia gama de operaciones sobre bases de datos PostgreSQL, incluyendo la conexión, ejecución de consultas SQL