Questão nº 54
Questão de Administração de Banco de Dados · FGV MPAL 2018 (nº 54)
FGV2018Analista do Ministério Público - Administrador de Banco de DadosAdministração de Banco de Dados
Gabarito: Bver comentário ↓
No Oracle, considere uma tabela T, com 50 registros e colunas X, Y, ambas do tipo INT. Nesse contexto, o comando a seguir é executado.
```
create table teste as
select * from T
```
Essa execução tem como efeito,
- Aa criação de uma tabela vazia com todas as colunas da tabela T.
- Ba criação de uma tabela com 50 registros e todas as colunas da tabela T. (alternativa correta)
- Cum erro de sintaxe, pois esse comando aplica-se apenas à criação de views.
- Da criação de uma view materializada com 50 registros e todas as colunas da tabela T.
- Ea criação de uma view materializada vazia com todas as colunas da tabela T.
Resposta comentada
Gabarito Alternativa B
O comando CREATE TABLE AS SELECT no Oracle é usado para criar uma nova tabela e, ao mesmo tempo, preenchê-la com os dados resultantes de uma consulta SQL. Ele copia tanto a estrutura (colunas e seus tipos) quanto os registros da consulta.
- (A) Incorreta: A consulta
SELECT * FROM Tseleciona todos os 50 registros da tabela T. Portanto, a nova tabelatestenão seria vazia, mas conteria esses 50 registros. - (B) Correta: O comando
CREATE TABLE teste AS SELECT * FROM Tcria uma nova tabela chamadateste. Como a consultaSELECT * FROM Tretorna todas as colunas e todos os 50 registros da tabelaT, a nova tabelatesteterá exatamente a mesma estrutura (colunas X, Y) e os mesmos 50 registros da tabelaT. - (C) Incorreta:
CREATE TABLE AS SELECTé uma sintaxe perfeitamente válida e comum no SQL do Oracle para criar tabelas a partir de uma consulta. O comando para criar views seriaCREATE VIEW AS SELECT. - (D) Incorreta: O comando
CREATE TABLEcria uma tabela, não uma view materializada. Para criar uma view materializada, o comando seriaCREATE MATERIALIZED VIEW AS SELECT. A armadilha aqui é que views materializadas também armazenam dados, mas a sintaxe especifica a criação de uma tabela. - (E) Incorreta: O comando cria uma tabela, não uma view materializada, e ela não seria vazia, pois a consulta
SELECT * FROM Tretorna 50 registros.
Fonte: FGV MPAL 2018 Analista do Ministério Público - Administrador de Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.