Cómo conectar Python a bases de datos SQL

Conectar Python a bases de datos SQL le permite interactuar con bases de datos directamente desde sus scripts de Python. Esta capacidad es esencial para tareas como la recuperación, actualización y análisis de datos. En este artículo, exploraremos cómo conectar Python a bases de datos SQL mediante bibliotecas populares como SQLite, MySQL y PostgreSQL.

Configuración de su entorno

Para conectar Python a bases de datos SQL, debe instalar las bibliotecas de conexión de base de datos adecuadas. Estas son las bibliotecas comunes para diferentes bases de datos:

  • SQLite: No se necesita instalación adicional ya que el soporte de SQLite está integrado en Python.
  • MySQL: Utilice la biblioteca mysql-connector-python o PyMySQL.
  • PostgreSQL: Utilice la biblioteca psycopg2.

Conexión a una base de datos SQLite

SQLite es una base de datos liviana que está integrada en la biblioteca estándar de Python. A continuación, se muestra cómo conectarse a una base de datos SQLite y realizar operaciones básicas:

import sqlite3

# Connect to an SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')

# Create a cursor object
cursor = conn.cursor()

# Create a table
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER
)
''')

# Insert data into the table
cursor.execute('''
INSERT INTO users (name, age)
VALUES ('Alice', 30)
''')

# Commit the transaction
conn.commit()

# Query the database
cursor.execute('SELECT * FROM users')
print(cursor.fetchall())  # Output: [(1, 'Alice', 30)]

# Close the connection
conn.close()

Conectarse a una base de datos MySQL

Para conectarse a una base de datos MySQL, deberá instalar la biblioteca mysql-connector-python. Puede instalarla usando pip:

pip install mysql-connector-python

A continuación se muestra un ejemplo de conexión a una base de datos MySQL y realización de operaciones básicas:

import mysql.connector

# Connect to a MySQL database
conn = mysql.connector.connect(
    host='localhost',
    user='yourusername',
    password='yourpassword',
    database='testdb'
)

# Create a cursor object
cursor = conn.cursor()

# Create a table
cursor.execute('''
CREATE TABLE IF NOT EXISTS employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    position VARCHAR(255)
)
''')

# Insert data into the table
cursor.execute('''
INSERT INTO employees (name, position)
VALUES ('Bob', 'Engineer')
''')

# Commit the transaction
conn.commit()

# Query the database
cursor.execute('SELECT * FROM employees')
print(cursor.fetchall())  # Output: [(1, 'Bob', 'Engineer')]

# Close the connection
conn.close()

Conexión a una base de datos PostgreSQL

Para conectarse a una base de datos PostgreSQL, necesita la biblioteca psycopg2. Instálela usando pip:

pip install psycopg2

A continuación se muestra un ejemplo de conexión a una base de datos PostgreSQL y realización de operaciones básicas:

import psycopg2

# Connect to a PostgreSQL database
conn = psycopg2.connect(
    dbname='testdb',
    user='yourusername',
    password='yourpassword',
    host='localhost'
)

# Create a cursor object
cursor = conn.cursor()

# Create a table
cursor.execute('''
CREATE TABLE IF NOT EXISTS products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    price DECIMAL
)
''')

# Insert data into the table
cursor.execute('''
INSERT INTO products (name, price)
VALUES ('Laptop', 999.99)
''')

# Commit the transaction
conn.commit()

# Query the database
cursor.execute('SELECT * FROM products')
print(cursor.fetchall())  # Output: [(1, 'Laptop', 999.99)]

# Close the connection
conn.close()

Conclusión

Conectar Python a bases de datos SQL es una habilidad fundamental para cualquier aplicación basada en datos. Al utilizar bibliotecas como sqlite3, mysql-connector-python y psycopg2, puede interactuar fácilmente con varias bases de datos. Comprender cómo realizar operaciones básicas como crear tablas, insertar datos y realizar consultas a bases de datos le permitirá administrar y manipular sus datos de manera eficaz.