Observe o comando SQL abaixo: select 1,2,3 from dual; Em um SGBD Oracle Database Express Edition 11g, ele retorna uma linha com 3 colunas, com os valores 1, 2 e 3 para cada coluna. Agora, observe os comandos abaixo: I. select 1,2,3 from dual; II. select 1,2,3; III. select 1,2,3 from dummy; Para obter o mesmo resultado em um SGBD MySQL Community 5, é possível utilizar o que consta em quais itens acima?
- A)Apenas I.
Errada, porque o MySQL tambem aceita a consulta sem `FROM`, entao nao e so o item I.
- B)Apenas II.
Errada, porque o item II funciona no MySQL, mas o item I tambem pode ser usado.
- C)Apenas III.
Errada, porque `dummy` nao e uma tabela padrao do MySQL e a consulta tende a falhar.
- D)Apenas I e II.
Certa, pois tanto `select 1,2,3 from dual;` quanto `select 1,2,3;` podem produzir o mesmo resultado no MySQL.
- E)Apenas II e III.
Errada, porque o item III nao funciona por padrao e o item I tambem e aceito em MySQL.
Gabarito: D
Em SQL, o comando SELECT pode retornar valores constantes, isto e, sem precisar buscar dados de uma tabela real. No Oracle, isso costuma aparecer com a tabela especial DUAL, que existe justamente para permitir esse tipo de consulta simples. Por isso, em Oracle, `select 1,2,3 from dual;` funciona normalmente. No MySQL, a ideia continua a mesma, mas a necessidade de uma tabela “de apoio” some na maioria dos casos. O MySQL permite fazer `select 1,2,3;` diretamente, retornando uma linha com tres colunas contendo esses valores. Aqui o banco faz o papel de “mostrar o resultado” sem exigir `FROM`. Ja `from dummy` nao serve, porque `dummy` nao e uma tabela padrao do MySQL. Se ela nao tiver sido criada no banco, a consulta falha por referencia a tabela inexistente. Em prova, isso costuma ser a pegadinha: misturar um nome famoso de um SGBD com outro que nao reconhece aquele objeto. Assim, o gabarito D esta correto porque, no MySQL Community 5, voce consegue obter o mesmo resultado dos comandos I e II. O item III nao se aplica, pois depende de uma tabela que nao existe por padrao no ambiente citado.