SóProvas


ID
1952272
Banca
IADES
Órgão
PC-DF
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

Em relação à linguagem SQL e à respectiva sintaxe, assinale a alternativa correta.

Alternativas
Comentários
  • Erro do item C: http://www.w3schools.com/sql/sql_insert_into_select.asp.

  • Qual o erro na letra D?

  • A) Errada. UPDATE não utiliza FROM.

    B) Errada. O SQL está correto, portanto, pode ser utilizado o group by neste caso.

    C) Errada. O comando insert permite fazer várias inserções ao mesmo tempo, só deve colocar os registros que deseja inserir na parte de VALUES.

    D) Errada. Observando bem a sintaxe do comando select nome_loja from loja group by nome_loja, where max(avg(vendas))<=100, percebemos alguns erros, então vamos lá.

    1 - Há uma vírgula entre o group by e a claúsula WHERE, só por esse motivo já inválida a alternativa;

    2 - A claúsula WHERE deve vim antes do group by e não após como está apresentado na questão; 

    3 - As funções de agregação max (máximo) e avg (average/média) devem estar na parte do SELECT e não na claúsula WHERE como apareceram.

    E) Correta. 

     

     

  • Complementando o Ayrton:

    A) Errada. Além do UPDATE não utilizar a clausula FROM, quem determina um predicado é a clausula WHERE e não a FROM.

    "Um predicado é uma expressão que, quando atribuída a algum objeto, faz uma proposição verdadeira ou falsa. Por exemplo, “salário superior a US $ 50.000” é um predicado".
    Fonte: https://learningdatabase.com.br/category/provas/sql-server/70-761/

     

    B) Errada. O SQL está correto, portanto, pode ser utilizado o group by para totalizar as vendas, count(vendas), agrupando cada total para cada uma das lojas: group by nome_loja.

     

    C) Errada. O comando insert permite fazer várias inserções ao mesmo tempo, só deve colocar os registros que deseja inserir na parte de VALUES, exemplo:

    INSERT INTO tabela (coluna1,coluna2, coluna3)
    VALUES (valor1,valor2,valor3),(valor4,valor5,valor6),(valor7,valor8,valor9)

    Fonte: http://www.sqlserverdicas.com/2011/06/inserindo-multiplas-linhas-com-um-unico.html

     

    D) Errada. Observando bem a sintaxe do comando select nome_loja from loja group by nome_loja, where max(avg(vendas)) percebemos alguns erros, então vamos lá.

    1 - Há uma vírgula entre o group by e a claúsula WHERE, só por esse motivo já inválida a alternativa;

    2 - A claúsula WHERE deve vim antes do group by e não após como está apresentado na questão; 

    3 - As funções de agregação max (máximo) e avg (average/média) devem estar na parte do SELECT e não na claúsula WHERE como apareceram.

     

    E) Correta, pois:

    O underline tem um significado parecido com o sinal de porcentagem na condição LIKE do SQL. Ambos são caracteres coringas.

    A diferença é a seguinte:

    % -> "Corresponde a qualquer cadeia de zero ou mais caracteres. Esse caractere curinga pode ser usado como um prefixo ou como um sufixo".;[Fonte1]

    _ -> procura por um e apenas um caractere qualquer. "Use o caractere sublinhado para corresponder a qualquer caractere único em uma operação de comparação de cadeia de caracteres que envolva correspondência de padrões, como LIKE e PATINDEX". [Fonte2]

    Fontes:

    Fonte1: https://docs.microsoft.com/pt-br/sql/t-sql/language-elements/percent-character-wildcard-character-s-to-match-transact-sql?view=sql-server-2017

    Fonte2: https://docs.microsoft.com/pt-br/sql/t-sql/language-elements/wildcard-match-one-character-transact-sql?view=sql-server-2017

    Fonte3: https://pt.stackoverflow.com/questions/229483/underline-em-consulta-com-like