Python proporciona varios módulos para trabajar con bases de datos, incluyendo sqlite3, MySQLdb y psycopg2. Estos módulos permiten una fácil interacción con la base de datos para almacenar, recuperar y manipular datos de manera eficiente. Puedes construir, cambiar y administrar bases de datos de manera efectiva y eficiente con un conocimiento básico de Python y la sintaxis SQL.
Pasos para Crear una Base de Datos con Python
Paso 1
Instala un adaptador de base de datos que coincida con el sistema de gestión de bases de datos que deseas utilizar. Por ejemplo, si vas a utilizar SQLite, puedes instalar el módulo sqlite3. Para MySQL, puedes instalar el módulo MySQLdb, y para PostgreSQL, puedes instalar psycopg2. En este tutorial, consideraremos SQLite, MongoDB y MySQLdb. Para usar SQLite en tu código Python, importa el módulo sqlite3:
import sqlite3
Una vez que hayas instalado el módulo adecuado, necesitas crear una conexión con la base de datos, que sirve como puente entre el código Python y la base de datos, permitiéndote enviar comandos y recibir resultados. Por ejemplo, en SQLite, puedes crear una conexión utilizando el siguiente código.
Para conectar con una base de datos llamada school.db, se muestra en el código a continuación:
conn = sqlite3.connect('school.db')
Paso 2
Crear tablas en la base de datos. Para crear tablas en una base de datos, necesitarás escribir sentencias SQL utilizando el objeto cursor obtenido de la conexión. Por ejemplo, para crear una tabla llamada “employees” con columnas “id”, “username”, “salary”, “department” y “email”, usas el siguiente código:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE employees (
id INTEGER PRIMARY KEY,
username TEXT,
email,
salary REAL,
department TEXT
)
''')
Paso 3
Insertar, actualizar y recuperar datos de la base de datos utilizando comandos SQL y el objeto cursor. Para agregar datos a las tablas, puedes usar la sentencia SQL “INSERT INTO”. Guarda los datos utilizando el método `commit()`. Por ejemplo, el siguiente código inserta datos en la tabla “employees”:
conn = sqlite3.connect('school.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO employees (username, email, salary, department) VALUES ('Joseph', 'joseph@gmail,com' 70000, 'IT')")
conn.commit()
Paso 4
Recuperar datos de las tablas. Para recuperar datos de las tablas, puedes usar la sentencia SQL “SELECT”. Por ejemplo, para recuperar todos los usuarios de la tabla “users”, puedes usar el siguiente código:
cursor.execute("SELECT * FROM employees")
rows = cursor.fetchall()
for row in rows:
print(row)
Paso 5
Crear vistas ejecutando una sentencia CREATE VIEW, y utiliza el método `execute()` del objeto cursor para ejecutar una sentencia CREATE VIEW.
# Ejecutar la sentencia CREATE VIEW
cursor.execute('''
CREATE VIEW employees_view AS
SELECT name, age, department, email, FROM employees;
''')
Paso 6
Cerrar la conexión. Una vez que hayas terminado de trabajar con la base de datos, es importante cerrar la conexión para liberar los recursos. Puedes cerrar la conexión usando el método close() del objeto conexión. Por ejemplo:
conn.commit()
conn.close()
Ejemplo para MySQLdb
Para crear una base de datos en MySQLdb, importa el módulo MYSQLdb y conecta a la base de datos utilizando el método `connect()`. Puedes crear un cursor y utilizarlo para ejecutar comandos SQL. El método `execute()` se utiliza para crear una tabla e insertar datos en ella. Después de confirmar los cambios, utilizamos el cursor para seleccionar datos de la tabla y obtener todos los datos usando el método `fetchall()`. Por último, cierra el cursor y la conexión a la base de datos.
import MySQLdb
# Conectar a la base de datos
conn = MySQLdb.connect(host="localhost", user="std", passwd="@12343!J", db="school.db")
# Crear un cursor para ejecutar comandos SQL
cursor = conn.cursor()
# Crear una tabla
cursor.execute("""
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
salary DECIMAL(10,2),
department VARCHAR(255)
)
""")
# Insertar datos en la tabla
cursor.execute("""
INSERT INTO employees (name, salary, department)
VALUES
("Joseph", 70000, "IT"),
("Jane", 80000, "Marketing")
""")
# Confirmar los cambios en la base de datos
conn.commit()
# Seleccionar datos de la tabla
cursor.execute("SELECT * FROM employees")
# Obtener todos los datos
employees = cursor.fetchall()
# Imprimir los datos
for employee in employees:
print(employee)
# Cerrar el cursor y la conexión
cursor.close()
conn.close()
Ejemplo para MongoDB
Importa el módulo pymongo y conecta a la base de datos utilizando la clase `MongoClient()`. Luego obtienes una referencia a la base de datos y la colección equivalente a una tabla en SQL. El método `insert_many()` se utiliza para insertar datos en la colección. El método `find()` se utiliza para consultar datos de la colección, y los datos se obtienen mediante un bucle for. Por último, cierra la conexión a la base de datos utilizando el método `close()`.
from pymongo import MongoClient
# Conectar a la base de datos
client = MongoClient("mongodb://localhost:27017/")
# Obtener una referencia a la base de datos
db = client["school.db"]
# Obtener una referencia a la colección (equivalente a una tabla en SQL)
collection = db["employees"]
# Insertar datos en la colección
employee1 = { "name": "Joseph", "salary": 70000, "department": "IT" }
employee2 = { "name": "Jane", "salary": 80000, "department": "Marketing" }
collection.insert_many([employee1, employee2])
# Consultar datos de la colección
employees = collection.find()
# Imprimir los datos
for employee in employees:
print(employee)
# Cerrar la conexión
client.close()
Conclusión
En conclusión, Python ofrece varios módulos para interactuar con diferentes bases de datos, como MySQL y MongoDB. El módulo MySQLdb se utiliza para interactuar con una base de datos MySQL, y el módulo pymongo se emplea para interactuar con una base de datos MongoDB. Ambos módulos facilitan a los desarrolladores realizar operaciones comunes en bases de datos, como crear tablas, insertar datos, consultar datos y más. Con la simplicidad y facilidad de uso de Python, se ha convertido en una opción popular para el desarrollo de aplicaciones impulsadas por bases de datos. Ya seas un principiante o un desarrollador experimentado, el uso de estos módulos hará que trabajar con bases de datos en Python sea pan comido.
Source:
https://dzone.com/articles/an-overview-of-creating-databases-with-python-2