Com relação à linguagem SQL e seus operadores, avalie se as afirmativas a seguir são verdadeiras (V) ou falsas (F). ( ) O operador LIKE é usado em uma cláusula WHERE para procurar um padrão especificado em uma coluna. Existem dois curingas frequentemente usados em conjunto com este operador; o sinal de % representa zero, um ou vários caracteres, já o sinal de - representa um único caractere. ( ) O operador IN permite especificar vários valores em uma cláusula WHERE. Ele é uma abreviação para múltiplas condições OR e AND sequenciais. Ao usar a palavra-chave NOT na frente do operador IN, haverá o retorno todos os registros que não são nenhum dos valores de uma lista. ( ) A palavra-chave RIGHT JOIN retorna todos os registros da tabela à direita em uma junção e os registros correspondentes da tabela à esquerda em uma junção. O resultado é zero registro do lado esquerdo, se não houver correspondência. As afirmativas são, respectivamente,
- A)F – V – V.
Errada, porque a primeira afirmativa e falsa e a segunda tambem, embora a terceira esteja correta.
- B)F – F – V.
Certa, pois a primeira afirmativa e falsa, a segunda e falsa e a terceira e verdadeira.
- C)V – V – F.
Errada, porque a primeira afirmativa nao e verdadeira e a terceira tambem nao e falsa.
- D)V – F – V.
Errada, porque a segunda afirmativa nao e verdadeira e a primeira tambem esta errada.
- E)F – F – F.
Errada, porque a terceira afirmativa e verdadeira, entao a sequencia nao pode ser toda falsa.
Gabarito: B
Nesta questao, a banca misturou conceitos bem comuns de SQL com pequenos deslizes de linguagem. O operador LIKE realmente serve para buscar padroes em textos na clausula WHERE, mas os curingas corretos sao o % (qualquer quantidade de caracteres, inclusive zero) e o _ (um unico caractere). O enunciado erra ao dizer que o segundo curinga e o sinal de -, porque em SQL o traço nao tem esse papel. O operador IN tambem aparece muito em provas: ele simplifica varias comparacoes com OR, como em "coluna IN (1, 2, 3)". Ja a frase "múltiplas condições OR e AND sequenciais" esta errada, porque IN substitui uma lista de comparacoes ligadas por OR, nao por AND. E quando voce usa NOT IN, a ideia e excluir os valores informados da lista. Na terceira afirmacao, o RIGHT JOIN foi descrito corretamente: ele traz todas as linhas da tabela da direita e as correspondentes da esquerda, preenchendo com NULL quando nao houver correspondencia. Nao existe "zero registro do lado esquerdo" como regra geral; o que acontece e ausência de correspondencia, com campos nulos no lado esquerdo. Por isso, a sequencia correta e F - F - V, que corresponde a alternativa B. Em prova, a FGV gosta de trocar um simbolo por outro e ver se voce cai na armadilha.