Almacenamiento Temporal en SQLite

SQLiteSQLiteBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos el almacenamiento temporal de SQLite, centrándonos en la creación y utilización de tablas temporales. Las tablas temporales proporcionan un mecanismo para almacenar resultados intermedios o datos necesarios solo por un corto período dentro de una conexión de base de datos.

El laboratorio le guiará a través de la creación de una tabla temporal llamada temp_employees utilizando la declaración CREATE TEMP TABLE. Aprenderá sobre el alcance (scope), la vida útil (lifetime) y las convenciones de nomenclatura de las tablas temporales, comprendiendo cómo difieren de las tablas regulares. Los pasos siguientes implicarán la población de la tabla temporal con datos, la consulta de los datos y la confirmación de la limpieza automática de la tabla temporal al cerrar la conexión de la base de datos.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sqlite(("SQLite")) -.-> sqlite/SQLiteGroup(["SQLite"]) sqlite/SQLiteGroup -.-> sqlite/make_table("Create New Table") sqlite/SQLiteGroup -.-> sqlite/add_rows("Insert Multiple Rows") sqlite/SQLiteGroup -.-> sqlite/get_all("Select All Rows") sqlite/SQLiteGroup -.-> sqlite/query_where("Filter With WHERE") sqlite/SQLiteGroup -.-> sqlite/sort_data("Sort With ORDER BY") sqlite/SQLiteGroup -.-> sqlite/verify_table("Check Table Existence") sqlite/SQLiteGroup -.-> sqlite/end_db("Close Database Connection") subgraph Lab Skills sqlite/make_table -.-> lab-552557{{"Almacenamiento Temporal en SQLite"}} sqlite/add_rows -.-> lab-552557{{"Almacenamiento Temporal en SQLite"}} sqlite/get_all -.-> lab-552557{{"Almacenamiento Temporal en SQLite"}} sqlite/query_where -.-> lab-552557{{"Almacenamiento Temporal en SQLite"}} sqlite/sort_data -.-> lab-552557{{"Almacenamiento Temporal en SQLite"}} sqlite/verify_table -.-> lab-552557{{"Almacenamiento Temporal en SQLite"}} sqlite/end_db -.-> lab-552557{{"Almacenamiento Temporal en SQLite"}} end

Crear una Tabla Temporal

En este paso, aprenderá cómo crear una tabla temporal en SQLite. Las tablas temporales son útiles para almacenar resultados intermedios durante consultas complejas o para guardar datos que solo se necesitan por un corto período. Se eliminan automáticamente cuando se cierra la conexión de la base de datos.

Primero, abra su terminal en la VM de LabEx. Su ruta predeterminada es /home/labex/project.

Ahora, vamos a crear una base de datos SQLite llamada employees.db. Ejecute el siguiente comando para crear el archivo de la base de datos y abrir la herramienta de línea de comandos de SQLite:

sqlite3 employees.db

Verá un indicador que muestra que ahora está dentro del shell de SQLite:

SQLite version 3.x.x
Enter ".help" for usage hints.
sqlite>

Para crear una tabla temporal, utilice la declaración CREATE TEMP TABLE. La sintaxis es similar a la creación de una tabla regular:

CREATE TEMP TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
);

Vamos a crear una tabla temporal llamada temp_employees para almacenar información de los empleados. Ingrese el siguiente comando SQL en el indicador sqlite> y presione Enter:

CREATE TEMP TABLE temp_employees (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT,
    department TEXT
);

Este comando crea una tabla temporal llamada temp_employees con tres columnas: id (una clave primaria entera que se incrementa automáticamente), name (texto) y department (texto).

CREATE TEMP TABLE temp_employees: Esta declaración SQL crea una tabla temporal llamada temp_employees. La palabra clave TEMP especifica que esta tabla es temporal y se eliminará automáticamente cuando se cierre la conexión de la base de datos.

id INTEGER PRIMARY KEY AUTOINCREMENT: Esto define una columna llamada id como un entero, la establece como la clave primaria (primary key) para la tabla y la configura para que se incremente automáticamente con cada nueva fila insertada.

name TEXT: Esto define una columna llamada name como un campo de texto para almacenar los nombres de los empleados.

department TEXT: Esto define una columna llamada department como un campo de texto para almacenar el departamento al que pertenece cada empleado.

Insertar Datos en la Tabla Temporal

Ahora que ha creado la tabla temp_employees, agreguemos algunos datos. Insertaremos varios registros de empleados en la tabla.

Puede insertar datos en una tabla temporal utilizando la declaración INSERT INTO, tal como lo haría con una tabla regular.

Inserte los siguientes registros de empleados en la tabla temp_employees ejecutando estos comandos uno por uno en el indicador sqlite>:

INSERT INTO temp_employees (name, department) VALUES ('Alice', 'Sales');
INSERT INTO temp_employees (name, department) VALUES ('Bob', 'Marketing');
INSERT INTO temp_employees (name, department) VALUES ('Charlie', 'Engineering');
INSERT INTO temp_employees (name, department) VALUES ('David', 'Sales');
INSERT INTO temp_employees (name, department) VALUES ('Eve', 'Marketing');
INSERT INTO temp_employees (name, department) VALUES ('Frank', 'Engineering');
INSERT INTO temp_employees (name, department) VALUES ('Grace', 'HR');
INSERT INTO temp_employees (name, department) VALUES ('Henry', 'Sales');

Estos comandos agregan ocho filas a la tabla temp_employees.

INSERT INTO temp_employees (name, department): Esto especifica que está insertando datos en las columnas name y department de la tabla temp_employees.

VALUES ('Alice', 'Sales'): Esto proporciona los valores que se insertarán para cada registro.

Para confirmar que los datos se agregaron correctamente, ejecute este comando para ver todos los registros en la tabla:

SELECT * FROM temp_employees;

Resultado Esperado:

1|Alice|Sales
2|Bob|Marketing
3|Charlie|Engineering
4|David|Sales
5|Eve|Marketing
6|Frank|Engineering
7|Grace|HR
8|Henry|Sales

Esta salida muestra el id, name y department para cada registro. El comando SELECT * recupera todas las columnas de la tabla especificada.

Consultar Datos de la Tabla Temporal

En este paso, aprenderá cómo recuperar datos de su tabla temporal utilizando la declaración SELECT con diferentes cláusulas. Consultar datos es una habilidad fundamental para trabajar con bases de datos, ya que le permite ver y analizar la información almacenada.

En el indicador sqlite>, primero recuperemos todos los datos de la tabla temp_employees. Ejecute este comando:

SELECT * FROM temp_employees;

Resultado Esperado:

1|Alice|Sales
2|Bob|Marketing
3|Charlie|Engineering
4|David|Sales
5|Eve|Marketing
6|Frank|Engineering
7|Grace|HR
8|Henry|Sales

El * en SELECT * significa "todas las columnas", por lo que este comando muestra cada columna y fila en la tabla temp_employees.

A continuación, filtre los datos utilizando una condición con la cláusula WHERE. Para ver solo los registros de los empleados en el departamento de 'Sales' (Ventas), ejecute:

SELECT * FROM temp_employees WHERE department = 'Sales';

Resultado Esperado:

1|Alice|Sales
4|David|Sales
8|Henry|Sales

La cláusula WHERE reduce los resultados a las filas que coinciden con la condición, en este caso, donde el department es 'Sales'.

  • SELECT * FROM temp_employees selecciona todas las columnas de la tabla temp_employees.
  • WHERE department = 'Sales' filtra los resultados para incluir solo las filas donde la columna department es igual a 'Sales'.

Ahora, ordene los datos por nombre utilizando la cláusula ORDER BY:

SELECT * FROM temp_employees ORDER BY name;

Resultado Esperado:

1|Alice|Sales
2|Bob|Marketing
3|Charlie|Engineering
4|David|Sales
5|Eve|Marketing
6|Frank|Engineering
7|Grace|HR
8|Henry|Sales

La cláusula ORDER BY ordena los resultados según la columna especificada, en este caso, la columna name.

Finalmente, limite el número de resultados utilizando la cláusula LIMIT. Para ver solo los primeros 3 registros, ejecute:

SELECT * FROM temp_employees LIMIT 3;

Resultado Esperado:

1|Alice|Sales
2|Bob|Marketing
3|Charlie|Engineering

La cláusula LIMIT restringe el número de filas devueltas por la consulta (query).

Confirmar la Limpieza Automática de la Tabla Temporal

En este paso, confirmará que la tabla temporal temp_employees se elimina automáticamente cuando se cierra la conexión a la base de datos. Esta es una característica clave de las tablas temporales.

Primero, salga del shell de SQLite escribiendo:

.exit

Esto cerrará la conexión a la base de datos employees.db.

Ahora, vuelva a abrir el shell de SQLite ejecutando:

sqlite3 employees.db

Intente consultar la tabla temp_employees:

SELECT * FROM temp_employees;

Debería ver un mensaje de error que indica que la tabla no existe:

Error: no such table: temp_employees

Esto confirma que la tabla temporal se eliminó automáticamente cuando se cerró la conexión anterior a la base de datos.

SELECT * FROM temp_employees: Esta declaración SQL intenta seleccionar todas las columnas y filas de la tabla temp_employees.

Error: no such table: temp_employees: Este mensaje de error indica que la tabla temp_employees no existe en la base de datos, lo que confirma que se eliminó automáticamente cuando se cerró la conexión a la base de datos.

Resumen

En este laboratorio, ha aprendido cómo crear y utilizar tablas temporales en SQLite. Creó una tabla temporal llamada temp_employees, insertó datos en ella, consultó los datos utilizando varias sentencias SELECT y confirmó que la tabla temporal se elimina automáticamente cuando se cierra la conexión a la base de datos. Estos ejercicios prácticos proporcionaron una introducción completa a las tablas temporales, equipándolo con el conocimiento fundamental para manejar datos temporales de manera efectiva utilizando SQLite.