Considere as seguintes afirmações sobre linguagem SQL. I. ...
Considere as seguintes afirmações sobre linguagem SQL.
I. Embora nos refiramos à linguagem SQL como uma "linguagem de consulta", ela possui muitos outros recursos além da consulta ao banco de dados, como meios para definição da estrutura de dados, para modificação de dados no banco de dados e para a especificação de restrições de segurança.
II. A estrutura básica de uma expressão em SQL consiste de três cláusulas: SELECT, FROM e WHEN; a cláusula WHEN corresponde à seleção do predicado da álgebra relacional.
III. Em SQL, pode-se usar a função agregada COUNT para contar o número de tuplas em uma relação, mas SQL não permite o uso da palavrachave DISTINCT com COUNT(*).
Quais estão corretas?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a C - Apenas I e III.
Explicação:
A primeira afirmação (I) está correta porque a linguagem SQL é de fato um sistema abrangente de gerenciamento de bancos de dados. Ela não se restringe apenas a consultas (SELECT
), mas também inclui funcionalidades para definição de estrutura de dados (CREATE
, ALTER
), manipulação de dados (INSERT
, UPDATE
, DELETE
) e controle de acesso (GRANT
, REVOKE
).
A segunda afirmação (II) contém um erro. A estrutura básica de uma expressão em SQL é composta pelas cláusulas SELECT
, FROM
e WHERE
, e não "WHEN". A cláusula WHERE
é que corresponde à seleção do predicado na álgebra relacional.
Finalmente, a terceira afirmação (III) está correta. Pode-se usar a função agregada COUNT
para contar o número de tuplas em uma relação, e é possível sim utilizar a palavra-chave DISTINCT
com COUNT(*)
para contar o número de tuplas distintas. Portanto, a afirmação está correta no que tange à capacidade de usar COUNT
, mas erra ao dizer que não se pode usar DISTINCT
com COUNT(*)
.
Com base nessas informações, a resposta correta é que somente as afirmações I e III estão corretas.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
ACREDITO QUE O ERRO DO ITEM 2 FOI EM DIZER WHEN NO LUGAR DE WHERE
@Maicon
SELECT DISTINCT COUNT(*) FROM myTable; PERMITIDO
SELECT COUNT(DISTINCT x) FROM myTable; PERMITIDO
SELECT COUNT(DISTINCT *) FROM myTable; NÃO PERMITIDO
.
Mais informações em: https://stackoverflow.com/questions/5010470/why-doesnt-countdistinct-work
a-
II. A estrutura básica de uma expressão em SQL consiste de três cláusulas: SELECT, FROM e WHERE; a cláusula WHERE corresponde à seleção do predicado da álgebra relacional.
III. Em SQL, pode-se usar a função agregada COUNT para contar o número de tuplas em uma relação, e SQL permite o uso da palavrachave DISTINCT com COUNT(*).
O item 3 está incorreto?
O gabarito seria a)?
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo