Bases de datos#

Logo Python

Trabajando con bases de datos en Python

Conexión SQLITE 3#

 1# importar modulo sqlite 3:
 2import sqlite3
 3
 4# Seleccionar archivo de conexión:
 5conexion = sqlite3.connect("prueba.db")
 6
 7# Realizar conexión con un cursor:
 8cursor = conexion.cursor()
 9
10# Guardar operacion:
11conexion.commit()
12
13# Cerar conexion:
14conexion.close()

Conexión MySQL#

Pasos iniciales:

  • Paso 1: Instalar la librería MySQL: sudo apt-get install python-mysqldb

 1# importar modulo mysql:
 2import MySQLdb
 3
 4# preparar conexión:
 5host = 'localhost'
 6username = 'guillermo'
 7password = 'guillermo'
 8database = 'pruebas'
 9
10try:
11    # Realizar conexión:
12    conexion = MySQLdb.connect(user=username, passwd=password, host=host, db=database)
13
14    # establecer cursor:
15    cursor = conexion.cursor()
16
17    print("Conexión realizada con éxito")
18except:
19    print("Error de conexión")
20
21conexion.close()

Operaciones CRUD#

Despues de realizar la conexión a la base de datos se pueden ejecutar las sentencias SQL del siguiente modo

Crear base de datos#

1# Crear una base de datos:
2cursor.execute("CREATE DATABASE python_db")
3
4conexion.commit()
5
6conexion.close()

Crear una tabla#

1# Crear una tabla:
2cursor.execute('CREATE TABLE usuario(nombre VARCHAR(100), edad INTEGER, email VARCHAR(100))')
3
4conexion.commit()
5
6conexion.close()

Insertar registros#

 1# creamos una lista con varias tuplas:
 2usuarios = [
 3    ('Luis', 20, 'luis@luiser.com'),
 4    ('Mira', 27, 'mira@ynomira.com'),
 5    ('Juan', 90, 'ju@n.com')
 6]
 7# ahora podemos ejecutar la consulta que introduce varios registros a la vez:
 8cursor.executemany("INSERT INTO usuario VALUES (?,?,?)", usuarios)
 9conexion.commit()
10
11conexion.close()

Leer registros#

 1# Realizar consulta:
 2cursor.execute('SELECT * FROM usuario')
 3usuarios = cursor.fetchall() # recuperamos con este metodo una lista de registros.
 4
 5print(usuarios)
 6
 7# recorremos todos los registros:
 8for usuario in usuarios:
 9    print("Nombre: {} \nEdad: {} \nEmail: {}\n\n".format(usuario[0], usuario[1], usuario[2]))
10
11conexion.close()

Borrar registros#

1# Realizar consulta:
2cursor.execute('DELETE FROM usuario WHERE nombre="Luis"')
3
4conexion.commit()
5
6conexion.close()

Actualizar registros#

# Realizar consulta:
cursor.execute('UPDATE usuario SET nombre="Alberto" WHERE nombre="Juan"')

conexion.commit()

conexion.close()