Um banco de dados de uma loja de ferramentas será criado utilizando comandos de SQL (Structured Query Language), conforme a seguir. <1> CREATE TABLE ferramentas (id INTEGER PRIMARY KEY, nome TEXT, estoque INTEGER, valor FLOAT); <2> INSERT INTO ferramentas VALUES(1, 'Martelo', 40, 7.5); <3> INSERT INTO ferramentas VALUES(2, 'Chave de fenda', 100, 5.2); <4> INSERT INTO ferramentas VALUES(3, 'Tesoura', 230, 6.3); <5> INSERT INTO ferramentas VALUES(4, 'Furadeira', 145, 120.8); <6> INSERT INTO ferramentas VALUES(5, 'Lixa', 156, 3.7); <7> INSERT INTO ferramentas VALUES(6, 'Alicate', 581, 4.5); Após a execução dos comandos acima (linhas de <1> a <7>), nessa ordem, foram executados os comandos abaixo, nessa ordem: <8> SELECT * FROM ferramentas ORDER BY nome; <9> DELETE FROM ferramentas WHERE valor > 100 ; <10> SELECT SUM(estoque) FROM ferramentas WHERE valor > 5; O número retornado pelo comando na linha <10> é
- A)370.
Correta, porque após excluir a Furadeira, a soma dos estoques com valor maior que 5 é 40 + 100 + 230 = 370.
- B)581.
Errada, porque 581 é o estoque do Alicate, mas ele não entra no filtro valor > 5, já que seu valor é 4,5.
- C)737.
Errada, porque 737 é uma soma que não corresponde aos registros filtrados na linha 10.
- D)1107.
Errada, porque 1107 é a soma de todos os estoques, sem aplicar o filtro valor > 5 nem considerar o DELETE.
- E)1252.
Errada, porque 1252 também não resulta da combinação correta entre o DELETE da linha 9 e o SUM com condição da linha 10.
Gabarito: A
Nesta questão, o ponto central é entender a ordem dos comandos SQL e o efeito de cada um sobre a tabela. O comando SELECT da linha 8 apenas consulta os dados e não altera a tabela. Já o DELETE da linha 9 remove do banco as linhas em que valor > 100, ou seja, elimina a ferramenta Furadeira, que tinha valor 120,8. Depois disso, a tabela fica com 5 registros: Martelo (40, 7,5), Chave de fenda (100, 5,2), Tesoura (230, 6,3), Lixa (156, 3,7) e Alicate (581, 4,5). A linha 10 pede SUM(estoque) apenas das linhas com valor > 5. Assim, entram Martelo, Chave de fenda e Tesoura, enquanto Lixa e Alicate ficam de fora porque seus valores são 3,7 e 4,5. Somando os estoques desses três itens, temos 40 + 100 + 230 = 370. Por isso, o resultado retornado na linha 10 é 370. É aquele tipo clássico de questão em que a banca mistura filtro, soma e remoção de registros para ver se voce acompanha o estado da tabela até o final. Em SQL, operações como DELETE modificam os dados persistidos, enquanto SELECT apenas lê o conteúdo. A lógica aqui é puramente sequencial: primeiro consulta, depois apaga, depois consulta de novo com um critério diferente.