Considere o script SQL a seguir, desenvolvido para o controle de estoque de uma loja.
• (Comando 1) Criação de tabela de produtos
CREATE TABLE Produto (
id_produto INT PRIMARY KEY,
nome VARCHAR(120) NOT NULL,
preco NUMERIC(10,2) NOT NULL,
quantidade INT NOT NULL
);
• (Comando 2) Inserção de dado inicial
INSERT INTO Produto (id_produto, nome, preco, quantidade)
VALUES (1, 'Mouse Óptico', 49.90, 100);
• (Comando 3) View para produtos sem estoque
CREATE VIEW vw_produtos_em_falta AS
SELECT id_produto, nome FROM Produto WHERE quantidade = 0;
• (Comando 4) Procedure para atualizar preço
CREATE PROCEDURE atualizar_preco(p_id INT, p_preco
NUMERIC(10,2))
BEGIN
UPDATE Produto SET preco = p_preco WHERE id_produto = p_id;
END;
• (Comando 5) Trigger para log de mudanças de preço
CREATE TRIGGER trg_log_preco
AFTER UPDATE OF preco ON Produto
FOR EACH ROW
BEGIN
INSERT INTO LogAlteracoes(id_produto, campo, valor_antigo,
valor_novo, dt_evento)
VALUES (OLD.id_produto, 'preco', OLD.preco, NEW.preco,
CURRENT_TIMESTAMP);
END;
• (Comando 6) Atualização de quantidade
UPDATE Produto SET quantidade = quantidade - 1 WHERE
id_produto = 1;
• (Comando 7) Remoção de produtos sem estoque
DELETE FROM Produto WHERE quantidade = 0;
• (Comando 8) Concessão de permissão de leitura
GRANT SELECT ON Produto TO analista;
• (Comando 9) Alteração de esquema da tabela
ALTER TABLE Produto ADD COLUMN ativo BOOLEAN DEFAULT
TRUE;
• (Comando 10) Revogação de permissão de inserção
REVOKE INSERT ON Produto FROM analista;
As instruções do tipo DML são executadas nos comandos:
✂️ a) 1 – 3 – 4. ✂️ b) 2 – 6 – 7. ✂️ c) 2 – 8 – 10. ✂️ d) 3 – 5 – 9. ✂️ e) 1 – 7 – 10.