
Sistema Gestor de Bases de Datos cuyas características son:
- Eficiencia
- Ligereza
- BD relacional
- Código abierto
- Forma parte integral del programa
- Ocupa poco espacio en disco y memoria
- Multiplataforma
- No se administra ni configura
- Gratuito
¿Qué necesitamos para hacer una conexión?
- Crear (abrir) una conexión
- Crear un puntero o cursor (objeto que permite ejecutar querys y manejar los resultados del query.
- Ejecutar query (consulta)
- CRUD (Create, Read, Update, Delete)
- Cerrar el puntero/cursor
- Cerrar la conexión
Lo primero es instalar en nuestra PC el software de SQLite:

Una vez instalado, creamos una carpeta llamada «bd» en nuestra PC. Luego crear un archivo .py en el que editaremos nuestro código:

Editamos el archivo .py con la siguiente estructura:
#Debemos importar la libreria, directiva import
import sqlite3
#crear (abrir) una conexión
conexion=sqlite3.connect("PrimeraConexion")
#para poder interactuar con la BD necesitamos de un puntero/cursor
cursor = conexion.cursor()
#cerrar la conexión
conexion.close()
#ejecutamos y revisamos la carpeta
Si ejecutamos este archivo .py vemos que se genera un archivo llamado «PrimeraConexión», el cual corresponde a la base de datos que vamos a utilizar:

El siguiente paso es crear el cursor/puntero para manejar la BD establecida:
#Debemos importar la libreria, directiva import
import sqlite3
#crear (abrir) una conexión
conexion=sqlite3.connect("PrimeraConexion")
#para poder interactuar con la BD
cursor = conexion.cursor()
#cerrar la conexión
conexion.close()
#ejecutamos y revisamos la carpeta
Crearemos una tabla dentro de nuestra BD llamada Alumnos:
#Debemos importar la libreria, directiva import
import sqlite3
#crear (abrir) una conexión
conexion=sqlite3.connect("PrimeraConexion")
#para poder interactuar con la BD necesitamos de un puntero/cursor
cursor = conexion.cursor()
#Ejecutar query (consulta)
#cursor.execute("CREATE TABLE ALUMNOS (nombre_alumno VARCHAR(50), edad_alumno INTEGER, nombre_curso VARCHAR(50))")
#cerrar la conexión
conexion.close()
#ejecutamos y revisamos la carpeta
Una vez ejecutado el archivo .py abrimos nuestro SQLite y arrastramos el archivo «PrimeraConexion» al programa. Lo que veremos es la tabla Alumnos creada con los campos que definimos en la sentencia SQL.

Insertamos un registro en nuestra tabla recién creada. Se debe hacer commit mediante el objeto de conexión para almacenar el cambio:
#Debemos importar la libreria, directiva import
import sqlite3
#crear (abrir) una conexión
conexion=sqlite3.connect("PrimeraConexion")
#para poder interactuar con la BD necesitamos de un puntero/cursor
cursor = conexion.cursor()
#Ejecutar query (consulta)
#cursor.execute("CREATE TABLE ALUMNOS (nombre_alumno VARCHAR(50), edad_alumno INTEGER, nombre_curso VARCHAR(50))")
#Insertar registros en una tabla
cursor.execute("INSERT INTO ALUMNOS VALUES ('Erick Cruz',30,'Python3')")
conexion.commit()
#cerrar la conexión
conexion.close()
#ejecutamos y revisamos la carpeta
El resultado lo podemos ver desde SQLite:

Para realizar múltiples INSERT en Python podemos valernos de tuplas y utilizando la función executemany del objeto cursor/puntero:
#Debemos importar la libreria, directiva import
import sqlite3
#crear (abrir) una conexión
conexion=sqlite3.connect("PrimeraConexion")
#para poder interactuar con la BD necesitamos de un puntero/cursor
cursor = conexion.cursor()
#Ejecutar query (consulta)
#cursor.execute("CREATE TABLE ALUMNOS (nombre_alumno VARCHAR(50), edad_alumno INTEGER, nombre_curso VARCHAR(50))")
#Insertar registros en una tabla
#cursor.execute("INSERT INTO ALUMNOS VALUES ('Erick Cruz',30,'Python3')")
#conexion.commit()
#Insertar varios registros en una tabla
#en lugar de varios INSERT
varios_alumnos=[
("Laura",20,"Java"),#tuplas
("Juan",23,"C#"),
("Pedro",22,"Java"),
("Ana",30,"Python 3"),
("Susana",25,"Python 3")#última tupla sin ,
]
#ejecuta muchos, para varios registros
#? el número de campos a utilizar
cursor.executemany("INSERT INTO ALUMNOS VALUES (?,?,?)", varios_alumnos)
#primer parámetro de executemany es el Query y el segundo es la lista
conexion.commit()
#cerrar la conexión
conexion.close()
#ejecutamos y revisamos la carpeta
El resultado:

Para listar el contenido de una BD, usamos la función fetchall() del objeto cursor/puntero:
#Debemos importar la libreria, directiva import
import sqlite3
#crear (abrir) una conexión
conexion=sqlite3.connect("PrimeraConexion")
#para poder interactuar con la BD necesitamos de un puntero/cursor
cursor = conexion.cursor()
#Ejecutar query (consulta)
#cursor.execute("CREATE TABLE ALUMNOS (nombre_alumno VARCHAR(50), edad_alumno INTEGER, nombre_curso VARCHAR(50))")
#Insertar registros en una tabla
#cursor.execute("INSERT INTO ALUMNOS VALUES ('Erick Cruz',30,'Python3')")
#conexion.commit()
#Insertar varios registros en una tabla
#en lugar de varios INSERT
'''
varios_alumnos=[
("Laura",20,"Java"),#tuplas
("Juan",23,"C#"),
("Pedro",22,"Java"),
("Ana",30,"Python 3"),
("Susana",25,"Python 3")#última tupla sin ,
]
#ejecuta muchos, para varios registros
#? el número de campos a utilizar
cursor.executemany("INSERT INTO ALUMNOS VALUES (?,?,?)", varios_alumnos)
#primer parámetro de executemany es el Query y el segundo es la lista
conexion.commit()
'''
#Listar registros
cursor.execute("SELECT * FROM ALUMNOS")
lista_registros=cursor.fetchall()
#fetchall devuelve una lista con todos los registros
print(lista_registros)
conexion.commit()
print("---------------------------")
#Listar registros 2
cursor.execute("SELECT * FROM ALUMNOS")
lista_registros=cursor.fetchall()
for alumno in lista_registros:
print(alumno)
conexion.commit()
print("---------------------------")
#Listar registros 3
cursor.execute("SELECT * FROM ALUMNOS")
lista_registros=cursor.fetchall()
for alumno in lista_registros:
print("El alumno ",alumno[0], " inscrito en ",alumno[2])
conexion.commit()
#cerrar la conexión
conexion.close()
#ejecutamos y revisamos la carpeta
El resultado tras ejecutar este archivo .py podemos visualizarlo desde consola:

