Uma tabela chamada cliente possui os campos abaixo. id - int (Primary Key) nome - varchar (70) cidade - varchar (40) estado - varchar (40) Em condições ideais, para exibir os dados de todos os clientes, cujo nome da cidade não seja igual ao nome do estado, utiliza-se a instrução SQL: SELECT * FROM cliente WHERE
- A)cidade =! estado;
Errada, porque =! nao e operador valido em SQL para indicar diferenca entre valores.
- B)cidade !EQUALS estado;
Errada, porque !EQUALS nao existe como operador SQL padrao.
- C)cidade UNLIKE (estado) ;
Errada, porque UNLIKE nao e operador SQL para comparar campos de uma tabela.
- D)cidade <> estado;
Certa, porque <> e o operador SQL de desigualdade, indicando que cidade e estado devem ser diferentes.
- E)cidade UNLIKE estado;
Errada, porque UNLIKE nao e sintaxe valida para comparar duas colunas em SQL.
Gabarito: D
Quando voce quer comparar dois campos em SQL e selecionar apenas as linhas em que eles sao diferentes, usa o operador de desigualdade. No caso da tabela cliente, a ideia e trazer os registros em que cidade nao seja igual a estado. Isso e uma comparacao entre colunas da mesma linha, algo bem comum em provas de SQL da FCC. O operador padrao e o <>. Ele significa "diferente de" e funciona de forma direta no predicado WHERE. Entao a consulta correta fica: SELECT * FROM cliente WHERE cidade <> estado; As bancas costumam cobrar a sintaxe exata, porque SQL nao aceita criacoes improvisadas como =! ou palavras inventadas no meio da condicao. Em SQL padrao, o simbolo de desigualdade mais classico e <>; em alguns bancos tambem existe !=, mas em provas objetivas a forma consagrada e a que a banca espera. Por isso o gabarito D esta correto: ele expressa precisamente que o valor da coluna cidade deve ser diferente do valor da coluna estado para a mesma linha da tabela.