Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — Avança SP 2023

Banco de DadosMySQL
Código
qq830793
Banca
Avança SP
Órgão
DAE-Santa Bárbara d’Oeste
Ano
2023
Nível
Médio
Cargo
Técnico em Tecnologia da Informação
O comando WHERE do MS SQL Server é responsável por:
  1. AFazer o controle de transações
  2. BSelecionar dados baseados em uma condição de comparação
  3. CCriar novas tabelas
  4. DDefinir relacionamentos entre linhas
  5. EExcluir dados
Revelar gabarito e comentário

GabaritoB — Selecionar dados baseados em uma condição de comparação

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”.

SQL: a cláusula WHERE e a operação de seleção

Gabarito: letra B. A cláusula WHERE no SQL Server (e em qualquer SGBD relacional) é responsável por selecionar dados baseados em uma condição de comparação, filtrando as linhas (tuplas) que atendem aos critérios especificados. Essa é a função clássica da cláusula, que corresponde à operação de seleção da álgebra relacional — enquanto o SELECT equivale à projeção (escolha de colunas).

A linguagem SQL é dividida em sublinguagens, cada uma com comandos específicos. A cláusula WHERE faz parte da DQL (Data Query Language), usada em consultas com SELECT, e sua função é restringir o conjunto de linhas retornadas com base em uma condição booleana. Por exemplo, na consulta SELECT nome FROM funcionario WHERE area = 'INTELIGENCIA', o WHERE filtra apenas os funcionários cuja área seja 'INTELIGENCIA', descartando as demais linhas. Essa é a essência da operação de seleção na álgebra relacional, que atua sobre as linhas (tuplas), enquanto o SELECT atua sobre as colunas (atributos) — uma distinção fundamental que a banca explora.

É importante não confundir o WHERE com outros comandos ou cláusulas. O WHERE não controla transações (isso é papel do DTL/TCL, com COMMIT, ROLLBACK, SAVEPOINT), não cria tabelas (função do DDL, com CREATE TABLE), não define relacionamentos (isso é feito por chaves estrangeiras na modelagem) e não exclui dados (função do DELETE, que é DML). A pegadinha da questão está justamente em associar o WHERE a funções de outras sublinguagens ou a operações que ele não realiza.

Na prática, o WHERE é usado em comandos SELECT, UPDATE e DELETE para especificar quais linhas devem ser afetadas. Por exemplo, UPDATE produtos SET preco = 10 WHERE id = 5 atualiza apenas o produto com id 5; DELETE FROM clientes WHERE ativo = 0 exclui apenas os clientes inativos. Sem o WHERE, o UPDATE e o DELETE afetariam todas as linhas da tabela — um erro clássico de quem não domina a cláusula.

A banca explora a confusão entre as sublinguagens SQL e as operações da álgebra relacional. Guarde o par: SELECT = projeção (colunas) e WHERE = seleção (linhas). É exatamente nessa fronteira que as alternativas se dividem.

1Função
Filtra linhas (seleção na álgebra relacional)
Condição de comparação
2Usado em
SELECT
UPDATE
DELETE
3Não é
Controle de transações (DTL/TCL)
Criação de tabelas (DDL)
Definição de relacionamentos (FK)
Exclusão de dados (DML)
Cláusula WHERE
LEVELsoulevel.com.br
Cláusula WHERE: Função (Filtra linhas (seleção na álgebra relacional), Condição de comparação); Usado em (SELECT, UPDATE, DELETE); Não é (Controle de transações (DTL/TCL), Criação de tabelas (DDL), Definição de relacionamentos (FK), Exclusão de dados (DML))

Alternativa A — ❌ Incorreta

O controle de transações é feito por comandos da sublinguagem DTL/TCL, como BEGIN, COMMIT, ROLLBACK e SAVEPOINT. O WHERE não tem nenhuma relação com transações; ele é uma cláusula de filtro de linhas em consultas ou comandos de manipulação.

Alternativa B — ✅ Correta ⟵ GABARITO

O WHERE seleciona dados (linhas) com base em uma condição de comparação. Na álgebra relacional, corresponde à operação de seleção (σ), que filtra tuplas que satisfazem um predicado. Por exemplo, SELECT * FROM produtos WHERE preco > 100 retorna apenas os produtos com preço superior a 100.

Alternativa C — ❌ Incorreta

Criar novas tabelas é função do comando CREATE TABLE, que pertence à sublinguagem DDL (Data Definition Language). O WHERE não cria nada; ele apenas filtra linhas em uma consulta.

Alternativa D — ❌ Incorreta

Relacionamentos entre linhas (ou tabelas) são definidos por chaves estrangeiras (FOREIGN KEY) na modelagem do banco, não por cláusulas de consulta. O WHERE pode ser usado para juntar tabelas (ex.: WHERE t1.id = t2.id_t1), mas isso é uma forma de junção, não a definição do relacionamento em si.

Alternativa E — ❌ Incorreta

Excluir dados é função do comando DELETE, que pertence à sublinguagem DML (Data Manipulation Language). O WHERE pode ser usado junto com o DELETE para especificar quais linhas excluir, mas ele sozinho não exclui nada.

NÃO CAIA NESSA!

A banca mistura as funções de comandos de sublinguagens diferentes. O candidato que não domina a divisão DQL/DML/DDL/DCL/DTL pode associar o WHERE a funções como excluir (DML) ou criar tabelas (DDL). A chave é lembrar que o WHERE é uma cláusula de filtro, não um comando autônomo — ele sempre acompanha SELECT, UPDATE ou DELETE para restringir as linhas afetadas.

NÃO CAIA NESSA!

Para questões de SQL, monte um mapa mental das sublinguagens: DQL (SELECT), DML (INSERT, UPDATE, DELETE, MERGE), DDL (CREATE, DROP, ALTER, TRUNCATE, RENAME), DCL (GRANT, REVOKE) e DTL/TCL (BEGIN, COMMIT, ROLLBACK, SAVEPOINT). Associe cada comando à sua função e, quando a questão perguntar sobre uma cláusula, pergunte-se: "ela filtra linhas? seleciona colunas? define estrutura? controla permissões? gerencia transações?". Isso resolve a maioria das pegadinhas.

Gabarito: letra B

Link permanente: /questoes/qq830793