2. Banco de Dados
FORÚM PROPRIETÁRIO
• O que é uma trigger em SQL?
Sempre que se modifica algo em uma tabela, inserção, atualização ou
exclusão de algum dado o TRIGGER SEMPRE será executado
automaticamente. Como seu próprio nome diz é um gatilho que é
disparado de acordo com uma ação.
Não é possível chamar um trigger diretamente como um comando a
ser executado.
• Porque usar trigger?
Para manter a integridade dos dados. Exemplo crio um trigger para
caso se exclua um Estado, todas as cidades que se relacionam com
aquele estado sejam excluídas.
Além de poder usar para criação de logs.
3. Banco de Dados
FORÚM PROPRIETÁRIO
• Porque não usar trigger?
Trigger deixa o sistema menos maleável. Pois regras de negócios
sempre mudam e disparam ações no banco, caso você queira mudar,
além do software terá que mudar a regra do disparo da trigger.
Trigger sempre é disparada, assim não existe a opção de em um caso
especifico ela não ser chamada
Não é possível criar uma trigger para uma view.
• Excluir ou alterar uma trigger
Para alterar : ALTER TRIGGER NomeTrigger
Para excluir: DROP TRIGGER NomeTrigger
4. Banco de Dados
FORÚM PROPRIETÁRIO
Comando
CREATE TRIGGER NomeTrigger ON { TABLE | VIEW }
{
{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ DELETE ] [ UPDATE ] }
}
FOR – Seguido de um ou vários comandos que disparam a trigger.
AFTER – indica que a trigger será chamada após as ações serem
executadas com sucesso.
INSTEAD OF - trigger é executado no lugar da ação que o chamou.
INSERT, DELETE, UPDATE – uma ou várias dessas opções devem ser
informadas para dizer qual ação disparará o trigger
5. Banco de Dados
FORÚM PROPRIETÁRIO
• O que é uma função em SQL?
É um bloco de instruções/rotina que executa uma ou várias tarefas e
que retornam valores ou tabelas.
Funções nativas do SQL :CONVERT, CAST, DATE, DATEDIFF .
6. Banco de Dados
FORÚM PROPRIETÁRIO
• Comando
CREATE [OR REPLACE] FUNCTION NomeFuncao
[(nomeParametro[IN | OUT | IN OUT] TIPO[, ...])] RETURN
TipoDataRetornado{IS | AS}
BEGIN < CorpoFuncao> END [NomeFuncao];
IN – Parametro que sera passado de for a da função
OUT – Parametro que será retornado da função
RETURN – Tipo de valor que a função retornará. Ex: VARCHAR, INT….
7. Banco de Dados
FORÚM PROPRIETÁRIO
• O que é uma procedure
Comandos do sql que são executados de uma vez só assim como
uma função
Comando
CREATE PROCEDURE NomeProcedure
(
--PARAMETROS DE ENTRADA E SAIDA
)
AS
BEGIN
-- COMANDOS A SEREM EXECUTADOS
END
Para executar - EXEC OU EXECUTE NomeProcedure
8. Banco de Dados
FORÚM PROPRIETÁRIO
Diferença principal de Procedure e Function
Function tem que retornar um valor e não pode atualizar
dados.
Procedure não precisa retornar um valor e pode se atualizar
dados.
9. Banco de Dados
FORÚM PROPRIETÁRIO
Joins
Serve para que ao realizar uma consulta, seja possível trazer dados
de tabelas que se relacionam, ou seja, trazer dados pertencentes á
outras tabelas em uma única consulta.
Inner Join - juntar duas ou mais tabelas por dados relacionados.
Left Join - permite obter dados não relacionados encontrados na
tabela à esquerda da cláusula Left Join.
Right Join - é o inverso do Left Join, ou seja, retorna todos os
dados encontrados na tabela à direita da cláusula Right Join.