Escolar Documentos
Profissional Documentos
Cultura Documentos
SQL Avancada Views Triggers e Stored Procedures PDF
SQL Avancada Views Triggers e Stored Procedures PDF
Views
Views ou simplesmente, Visões em banco de dados são tabelas virtuais criadas a
partir de uma ou mais tabelas físicas de um banco de dados.
Ela permite fazer consultas aos dados de maneira virtual, isto é, fazer consultas
sem que sejam realmente nas tabelas físicas, isso ajuda na segurança de
informações. Por exemplo:
Podemos criar uma tabela que será usada para as consultas que serão
feitas pelos alunos, desta maneira, podemos atribuir à essa nova visão apenas os
campos que lhe interessam como nome e sua média de uma disciplina. Isto
aumenta a segurança, pois não terá como por algum método hacker obter os
outros dados como a média de outros alunos, porque estão na tabela física.
Um uso que também podemos fazer com visões, acontece quando precisamos de
alguns dados restritos numa tabela separada. Fazemos isto criando uma visão, ou
mais se necessário, sem precisar duplicar os dados de uma tabela em outra no
mesmo banco de dados.
Serve para resolver tarefa que são executados com alta frequência. Tal caso, sem
Stored Procedures, essas tarefas quando executadas demasiadamente no servidor
de banco de dados lhe faz estar sobrecarregado ocasionando perda de
desempenho. Por isso, o uso de Stored Procedure provê a melhora de
performance, além de criar mecanismos de segurança na aplicação, etc.
DELIMITER //
Se tiver apenas um comando dentro do Stored Procedure não é necessário usar os
delimitadores do corpo BEGIN e END.
Trigger
Trigger, ou Gatilho, é um recurso usado em banco de dados SQL que visa
execução de determinados procedimentos que são executados automaticamente
quando é disparado algum evento em uma tabela ou uma view.
Um problema: quando temos o conteúdo de uma tabela alterado, nesta alteração
outros dados de outras tabelas podem estar relacionados e, consequentemente,
alguns dados podem ficar sem nexo por isto. Para resolver este gargalo dentro do
banco de dados usamos triggers.
Solução: usamos uma trigger para que quando esta tabela for alterada possamos
tomar alguma providência em relação à outra tabela.
Triggers, por exemplo, podem ser usadas para gerar dados em uma tabela de
históricos do próprio bando de dados.
Outros exemplos que podemos citar do benefício são os seguinte:
ON tabela
E para excluí-la:
ON cliente
O NEW.nome é o campo nome da tabela cliente que será o novo dados inserido
em todos registros da tabela auxiliar.
Pode ser NEW ou OLD;
O TIME pode ser: AFTER ou BEFORE.
IMPORTANTE:
Não pode haver duas trigger numa dada tabela que tenha a mesma ação e evento.
Por exemplo, você não pode ter dois BEFORE UPDATE para uma tabela.
Nota:
DELIMITER //
CREATE TRIGGER teste_trigger AFTER INSERT
ON tabela1
FOR EACH ROW
BEGIN
INSERT INTO tabela2 SET campo1 = NEW.campo2;
DELETE FROM tabela3 WHERE campo3 = NEW.campo1;
UPDATE tabela4 SET campoA = campoB + 1 WHERE
campo4 = NEW.campo1;
END;
Importante: Quando você usa “END;” para fechar o corpo do procedimento
antes dele vem algum comando também terminado com “;” reconhecendo
como se ali fosse o final do procedimento.
Por isso, antes de criamos nossa Stored Procedure vamos mudar o delimitador
SQL padrão para “//”.
O comando para mudar é o seguinte:
DELIMITER //