Questão de Banco de Dados — MySQL — Avança SP 2023
Banco de Dados›MySQL
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:
AFazer o controle de transações
BSelecionar dados baseados em uma condição de comparação
CCriar novas tabelas
DDefinir relacionamentos entre linhas
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 WHEREnã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.
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.