Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — FCC 2017

Banco de DadosMySQL
Código
fc038477
Banca
FCC
Órgão
TRE-SP
Ano
2017
Nível
Médio
Cargo
Técnico Judiciário – Operação de Computadores
Resumidamente e, ainda, considerando todas as condições e pré-condições de ambiente já existentes para garantir o funcionamento adequado de um banco de dados, um Técnico, usando MySQL 5.6, escreveu as seguintes expressões e comandos SQL:CREATE TABLE NAMES (Id integer PRIMARY KEY, Name text);INSERT INTO NAMES VALUES(1,'Tom');INSERT INTO NAMES VALUES(2,'Lucy');INSERT INTO NAMES VALUES(3,'Frank');INSERT INTO NAMES VALUES(4,'Jane');INSERT INTO NAMES VALUES(5,'Robert');SELECT Name FROM NAMES WHERE Id = 3 or Id = 5;Quanto à construção do Schema e quanto à execução do Select, este, presumidamente, especificado para recuperar Frank e Robert, o resultado foi
  1. Aerro, porque o SQL deveria ter sido executado como SELECT Name FROM NAMES WHERE Id = 3 or = 5.
  2. Ba recuperação de Frank e Robert.
  3. Cerro, porque o CREATE deveria ter sido escrito CREATE TABLE NAMES (Id integer PRIMARY KEY, For Name text).
  4. Da recuperação de 3 Frank e 5 Robert.
  5. Eerro, porque todos os Insert deveriam ter sido escritos seguindo a sintaxe exemplo INSERT INTO NAMES VALUES OF (1,'Tom').
Revelar gabarito e comentário

GabaritoB — a recuperação de Frank e Robert.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Comandos SQL: SELECT com WHERE

Gabarito: letra B. O script SQL apresentado está correto: a tabela NAMES é criada com colunas Id (chave primária) e Name (texto). Os comandos INSERT inserem cinco registros. O SELECT com WHERE Id = 3 OR Id = 5 retorna exatamente os nomes 'Frank' e 'Robert', sem erros de sintaxe ou lógica.

Alternativa A — ❌ Incorreta

Sugere que o SQL deveria ser SELECT Name FROM NAMES WHERE Id = 3 or = 5. Essa sintaxe é inválida porque a segunda condição (or = 5) não possui um operando à esquerda. A forma correta é Id = 3 OR Id = 5, com a coluna e operador em cada condição.

Alternativa B — ✅ Correta ⟵ GABARITO

A condição WHERE Id = 3 or Id = 5 filtra as linhas onde Id é igual a 3 (Frank) ou 5 (Robert). O resultado da consulta são dois registros: 'Frank' e 'Robert', exatamente como esperado.

Alternativa C — ❌ Incorreta

Afirma que o CREATE TABLE deveria ser escrito como CREATE TABLE NAMES (Id integer PRIMARY KEY, For Name text). A palavra For não é um tipo de dados nem um nome de coluna válido sem definição de tipo. A sintaxe original (Name text) está correta.

Alternativa D — ❌ Incorreta

Diz que o resultado seria '3 Frank e 5 Robert', incluindo os valores dos Ids. Entretanto, o SELECT solicita apenas a coluna Name, portanto a saída contém apenas os nomes, sem os números.

Alternativa E — ❌ Incorreta

Propõe que os INSERTs deveriam usar VALUES OF em vez de VALUES. No MySQL 5.6, a sintaxe correta para inserir valores é INSERT INTO tabela VALUES(...). VALUES OF não é reconhecido pelo MySQL.

PEGA ESSA DICA!

No MySQL, todo comando deve seguir a sintaxe padrão SQL. No WHERE com OR, cada condição deve ser completa (coluna operador valor). O SELECT retorna apenas as colunas listadas na cláusula SELECT.

Gabarito: letra B.

Link permanente: /questoes/fc038477