Armazenamento Temporário SQLite

SQLiteBeginner
Pratique Agora

Introdução

Neste laboratório, exploraremos o armazenamento temporário do SQLite, com foco na criação e utilização de tabelas temporárias. As tabelas temporárias fornecem um mecanismo para armazenar resultados intermediários ou dados necessários apenas por um curto período dentro de uma conexão de banco de dados.

O laboratório guia você através da criação de uma tabela temporária chamada temp_employees usando a instrução CREATE TEMP TABLE. Você aprenderá sobre o escopo, o tempo de vida e as convenções de nomenclatura das tabelas temporárias, entendendo como elas diferem das tabelas regulares. As etapas subsequentes envolverão o preenchimento da tabela temporária com dados, a consulta dos dados e a confirmação da limpeza automática da tabela temporária ao fechar a conexão do banco de dados.

Criar uma Tabela Temporária

Nesta etapa, você aprenderá como criar uma tabela temporária no SQLite. As tabelas temporárias são úteis para armazenar resultados intermediários durante consultas complexas ou para manter dados que são necessários apenas por um curto período. Elas são automaticamente excluídas quando a conexão do banco de dados é fechada.

Primeiro, abra seu terminal na VM do LabEx. Seu caminho padrão é /home/labex/project.

Agora, vamos criar um banco de dados SQLite chamado employees.db. Execute o seguinte comando para criar o arquivo do banco de dados e abrir a ferramenta de linha de comando do SQLite:

sqlite3 employees.db

Você verá um prompt indicando que agora está dentro do shell do SQLite:

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

Para criar uma tabela temporária, você usa a instrução CREATE TEMP TABLE. A sintaxe é semelhante à criação de uma tabela regular:

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

Vamos criar uma tabela temporária chamada temp_employees para armazenar informações dos funcionários. Digite o seguinte comando SQL no prompt sqlite> e pressione Enter:

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

Este comando cria uma tabela temporária chamada temp_employees com três colunas: id (uma chave primária inteira que se incrementa automaticamente), name (texto) e department (texto).

CREATE TEMP TABLE temp_employees: Esta instrução SQL cria uma tabela temporária chamada temp_employees. A palavra-chave TEMP especifica que esta tabela é temporária e será automaticamente excluída quando a conexão do banco de dados for fechada.

id INTEGER PRIMARY KEY AUTOINCREMENT: Isso define uma coluna chamada id como um inteiro, define-a como a chave primária da tabela e a configura para se auto-incrementar com cada nova linha inserida.

name TEXT: Isso define uma coluna chamada name como um campo de texto para armazenar os nomes dos funcionários.

department TEXT: Isso define uma coluna chamada department como um campo de texto para armazenar o departamento ao qual cada funcionário pertence.

Inserir Dados na Tabela Temporária

Agora que você criou a tabela temp_employees, vamos adicionar alguns dados a ela. Inseriremos vários registros de funcionários na tabela.

Você pode inserir dados em uma tabela temporária usando a instrução INSERT INTO, assim como faria com uma tabela regular.

Insira os seguintes registros de funcionários na tabela temp_employees executando esses comandos um por um no prompt 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');

Esses comandos adicionam oito linhas à tabela temp_employees.

INSERT INTO temp_employees (name, department): Isso especifica que você está inserindo dados nas colunas name e department da tabela temp_employees.

VALUES ('Alice', 'Sales'): Isso fornece os valores a serem inseridos para cada registro.

Para confirmar se os dados foram adicionados corretamente, execute este comando para visualizar todos os registros na tabela:

SELECT * FROM temp_employees;

Saída Esperada:

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 saída mostra o id, name e department para cada registro. O comando SELECT * recupera todas as colunas da tabela especificada.

Consultar Dados da Tabela Temporária

Nesta etapa, você aprenderá como recuperar dados de sua tabela temporária usando a instrução SELECT com diferentes cláusulas. Consultar dados é uma habilidade fundamental para trabalhar com bancos de dados, pois permite visualizar e analisar as informações armazenadas.

No prompt sqlite>, vamos primeiro recuperar todos os dados da tabela temp_employees. Execute este comando:

SELECT * FROM temp_employees;

Saída Esperada:

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

O * em SELECT * significa "todas as colunas", então este comando mostra cada coluna e linha na tabela temp_employees.

Em seguida, filtre os dados usando uma condição com a cláusula WHERE. Para visualizar apenas os registros dos funcionários do departamento de 'Vendas', execute:

SELECT * FROM temp_employees WHERE department = 'Sales';

Saída Esperada:

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

A cláusula WHERE restringe os resultados às linhas que correspondem à condição, neste caso, onde o department é 'Vendas'.

  • SELECT * FROM temp_employees seleciona todas as colunas da tabela temp_employees.
  • WHERE department = 'Sales' filtra os resultados para incluir apenas as linhas onde a coluna department é igual a 'Sales'.

Agora, ordene os dados por nome usando a cláusula ORDER BY:

SELECT * FROM temp_employees ORDER BY name;

Saída Esperada:

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

A cláusula ORDER BY classifica os resultados com base na coluna especificada, neste caso, a coluna name.

Finalmente, limite o número de resultados usando a cláusula LIMIT. Para visualizar apenas os primeiros 3 registros, execute:

SELECT * FROM temp_employees LIMIT 3;

Saída Esperada:

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

A cláusula LIMIT restringe o número de linhas retornadas pela consulta.

Confirmar a Limpeza Automática da Tabela Temporária

Nesta etapa, você confirmará que a tabela temporária temp_employees é automaticamente excluída quando a conexão com o banco de dados é fechada. Esta é uma característica chave das tabelas temporárias.

Primeiro, saia do shell SQLite digitando:

.exit

Isso fechará a conexão com o banco de dados employees.db.

Agora, reabra o shell SQLite executando:

sqlite3 employees.db

Tente consultar a tabela temp_employees:

SELECT * FROM temp_employees;

Você deve ver uma mensagem de erro indicando que a tabela não existe:

Error: no such table: temp_employees

Isso confirma que a tabela temporária foi automaticamente excluída quando a conexão anterior com o banco de dados foi fechada.

SELECT * FROM temp_employees: Esta instrução SQL tenta selecionar todas as colunas e linhas da tabela temp_employees.

Error: no such table: temp_employees: Esta mensagem de erro indica que a tabela temp_employees não existe no banco de dados, confirmando que ela foi automaticamente excluída quando a conexão com o banco de dados foi fechada.

Resumo

Neste laboratório, você aprendeu como criar e usar tabelas temporárias no SQLite. Você criou uma tabela temporária chamada temp_employees, inseriu dados nela, consultou os dados usando várias instruções SELECT e confirmou que a tabela temporária é automaticamente excluída quando a conexão com o banco de dados é fechada. Estes exercícios práticos forneceram uma introdução abrangente às tabelas temporárias, equipando você com o conhecimento fundamental para lidar com dados temporários de forma eficaz usando o SQLite.