Esta imagem contém duas questões de múltipla escolha relacionadas a SQL, especificamente focando em tabelas temporárias e sintaxe do BigQuery (conforme mencionado na opção B da questão 9). Abaixo está a análise detalhada e a resolução de cada item.
Análise da Questão 9
Alternativa A - Elas são excluídas automaticamente quando a sessão do banco de dados SQL termina.
Explicação Didática:
O conceito fundamental de uma Tabela Temporária é que ela existe apenas por um período limitado, geralmente vinculado à duração de uma conexão ou sessão específica.
- Vida Útil: Ao contrário de tabelas normais (permanentes), as tabelas temporárias não persistem após o fim da sessão do usuário.
- BigQuery: Na plataforma BigQuery, isso é explícito: as tabelas temporárias são criadas com a palavra-chave
TEMP e são removidas automaticamente quando a sessão é encerrada ou o cliente se desconecta. - Por que as outras estão erradas?
- B: Tabelas temporárias são um padrão em quase todos os SGBDs (como PostgreSQL, SQL Server, MySQL), não sendo exclusivas do BigQuery.
- C: Embora seja possível usar
WITH para criar expressões de tabela comuns (CTEs), elas não são tecnicamente "tabelas temporárias" armazenadas; além disso, a criação não precisa ser feita assim, pois existem comandos como CREATE TEMP TABLE. - D: A sintaxe
## é associada a tabelas temporárias globais no SQL Server, mas a descrição "declaradas ao inserir uma instrução FROM" não corresponde a nenhum comando válido de criação.
Análise da Questão 10
Alternativa B - WITH my_table AS (SELECT * FROM other_table WHERE x = 0);
Explicação Didática:
A questão pede uma instrução para criar algo que funcione como uma tabela temporária (dados transitórios).
- CTE (Common Table Expression): A cláusula
WITH cria uma expressão de tabela comum. Tecnicamente, ela define um nome temporário para o resultado de uma consulta dentro do escopo de uma única instrção SQL. - Natureza Temporária: Diferente do
CREATE TABLE (que cria um objeto persistente no disco), o WITH gera dados que existem apenas enquanto a consulta é executada, simulando o comportamento de uma tabela temporária sem custo de armazenamento. - Sintaxe Correta: A estrutura
WITH nome AS (consulta) é a forma padrão e correta de definir essas estruturas temporárias no SQL moderno e no BigQuery. - Por que as outras estão erradas?
- A: Apenas seleciona dados (
SELECT), não cria nenhuma estrutura nova. - C: Sintaxe inválida. O correto é
WITH ... AS, não WITH ... FROM. - D:
CREATE TABLE ... AS cria uma tabela permanente no banco de dados (a menos que a palavra-chave TEMP seja incluída explicitamente, o que não aparece nesta opção). Como a questão busca o conceito de "temporário", esta opção é menos adequada que a CTE (WITH).
Resumo Final
| Questão | Resposta | Conceito Chave |
|---|
| 9 | Alternativa A | Ciclo de vida das tabelas temporárias (sessão). |
| 10 | Alternativa B | Uso de WITH (CTE) para dados temporários. |