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
:
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
:
# 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()
.
# 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:
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