Questões de Noções de linguagem SQL (DDL, DML, SELECT e JOIN)
Informática, 13 questões com gabarito comentado
O comando DELETE, sem cláusula WHERE, remove a tabela do banco de dados.
Revelar gabarito
Gabarito: Errado
Errado. DELETE é comando DML e atua sobre linhas: sem WHERE, apaga todas elas, mas a tabela e sua estrutura continuam existindo. Para remover a própria tabela, usa-se DROP, que é comando DDL.
GRANT e REVOKE pertencem à linguagem de controle de dados (DCL).
Revelar gabarito
Gabarito: Certo
Certo. A DCL trata do controle de acesso: GRANT concede e REVOKE retira permissões. Não se confunde com DDL, que define estruturas, nem com DML, que manipula os dados das tabelas.
A cláusula HAVING é usada para filtrar grupos formados por GROUP BY.
Revelar gabarito
Gabarito: Certo
Certo. HAVING filtra grupos depois do GROUP BY e admite função de agregação, como HAVING COUNT(*) > 100. WHERE atua antes, sobre linhas individuais, e não aceita função de agregação em sua condição.
Para selecionar registros com valor ausente em uma coluna, usa-se a condição coluna = NULL.
Revelar gabarito
Gabarito: Errado
Errado. Nulo representa ausência de valor e não é testado por igualdade. A condição correta é coluna IS NULL; escrever coluna = NULL não seleciona os registros pretendidos pelo usuário.
Em um LEFT JOIN, as linhas da tabela à esquerda sem correspondência na outra tabela são descartadas do resultado.
Revelar gabarito
Gabarito: Errado
Errado. O LEFT JOIN preserva todas as linhas da tabela à esquerda, mesmo sem correspondência, preenchendo com nulos as colunas da direita. Descartar as não correspondentes é comportamento do INNER JOIN.
Em SQL, a cláusula WHERE filtra linhas antes do agrupamento, enquanto HAVING filtra grupos após o GROUP BY.
Revelar gabarito
Gabarito: Certo
Certo. Na execução lógica, o WHERE vem antes do GROUP BY e elimina linhas; o HAVING vem depois e elimina grupos já formados, podendo usar funções de agregação como COUNT e SUM.
O comando DELETE sem cláusula WHERE remove todas as linhas da tabela.
Revelar gabarito
Gabarito: Certo
Certo. Sem cláusula WHERE, não há filtro, e o DELETE alcança todas as linhas da tabela. A estrutura permanece, diferentemente do DROP, que remove a tabela e os dados nela contidos.
O INNER JOIN retorna todas as linhas da tabela da esquerda, mesmo sem correspondência na da direita.
Revelar gabarito
Gabarito: Errado
Errado. Manter todas as linhas da tabela da esquerda é o comportamento do LEFT JOIN. O INNER JOIN retorna somente as linhas que têm correspondência nas duas tabelas envolvidas na junção.
O comando TRUNCATE pertence à DDL e esvazia a tabela, mantendo sua estrutura.
Revelar gabarito
Gabarito: Certo
Certo. TRUNCATE é comando DDL que esvazia a tabela preservando a estrutura; DROP remove a tabela e seus dados, e DELETE é comando DML que apaga linhas.
No operador LIKE, o símbolo _ representa qualquer sequência de caracteres, e o símbolo %, exatamente um caractere.
Revelar gabarito
Gabarito: Errado
Errado. Os símbolos estão trocados: no LIKE, o sinal de porcentagem representa qualquer sequência de caracteres, enquanto o sublinhado representa exatamente um único caractere.
O operador UNION mantém as linhas duplicadas, ao passo que UNION ALL as elimina.
Revelar gabarito
Gabarito: Errado
Errado. Ocorre o contrário: UNION remove as duplicatas do resultado combinado, enquanto UNION ALL mantém todas as linhas, inclusive as repetidas entre as consultas.
O operador BETWEEN inclui os valores das duas extremidades do intervalo.
Revelar gabarito
Gabarito: Certo
Certo. O BETWEEN é inclusivo nas duas pontas, de modo que a condição retorna também as linhas com valores iguais ao limite inferior ou ao limite superior.
A função COUNT(coluna) ignora os valores nulos dessa coluna, ao contrário de COUNT(*), que conta todas as linhas.
Revelar gabarito
Gabarito: Certo
Certo. COUNT(*) conta todas as linhas do resultado, enquanto COUNT(coluna) ignora os valores nulos existentes nela, o que pode produzir contagens diferentes na mesma consulta.