Resumo Banco de Dados
Por: kamys17 • 15/4/2018 • 1.656 Palavras (7 Páginas) • 321 Visualizações
...
for executado o parametro dado será o @cod, valor de tipo de dado int, este não pode ser repetido por isso é declarado dessa forma. E por fim executar o comando inserindo os parametros desejados, o nº 1, representa o vendedor cod_vendedor = 1.
INSERIR DADOS A UMA TABELA ATRAVES DE PROCEDURE
Praticamente mesmo processo porém alterar as intruções.
CREATE PROCEDURE sp_produto_inserir
@Nome VARCHAR(64),
@Descricao TEXT,
@Valor MONEY AS
INSERT INTO
Produto(Nome, Descricao, Valor)
VALUES(@Nome, @Descricao, @Valor)
ALTERAR CAMPOS ATRAVÉS DE UMA PROCEDURE
CREATE PROCEDURE sp_produto_alterar
@ID BIGINT,
@Nome VARCHAR(64),
@Descricao TEXT,
@Valor MONEY
AS
UPDATE
Produto
SET
Nome = @Nome,
Descricao = @Descricao,
Valor = @Valor
WHERE
ID = @ID
PS.: A variável @ID deve ser a chave primária para que a alteração seja única e não haja repetição desse valor.
FUNCTION
Elabora rotinas que apresentam após sua execução em tabelas e em valores. Pode se então criar funções dentro do banco. Exemplo: inserir em todo espaço de uma string o caractere (.). Exemplo LISTA_5 1 – Crie uma função escalar chamada fu_Marca onde é passado como parâmetro o código do produto e a função retorne o nome da marca. create function fu_marca (@codproduto int) RETURNS real AS BEGIN DECLARE @marca nvarchar SELECT @marca = Produto.cod_produto from Produto inner Join Marca on Produto.cod_marca = Marca.cod_marca where Marca.nome = @marca RETURN @marca END
DEMO
IMG7
Outro exemplo (retirado do dev media) CREATE FUNCTION funcionariosApos(@dt datetime)
RETURNS TABLE AS RETURN (SELECT * FROM FUNCIONARIO WHERE dataContratacao >= @dt)
//executa SELECT * FROM funcionariosApos(’2000-01-01’) DEMO
IMG8
TRIGGER (fonte de informação deste tópico foi retirada do site dev media)
O termo trigger (gatilho em inglês) define uma estrutura do banco de dados que funciona, como o nome sugere, como uma função que é disparada mediante alguma ação. Geralmente essas ações que disparam os triggers são alterações nas tabelas por meio de operações de inserção, exclusão e atualização de dados (insert, delete e update).
CRIAR TRIGGER
REATE TRIGGER [NOME DO TRIGGER] ON [NOME DA TABELA] [FOR/AFTER/INSTEAD OF] [INSERT/UPDATE/DELETE] AS
--CORPO DO TRIGGER
Os parâmetro são:
NOME DO TRIGGER: nome que identificará o gatilho como objeto do banco de dados. Deve seguir as regras básicas de nomenclatura de objetos. NOME DA TABELA: tabela à qual o gatilho estará ligado, para ser disparado mediante ações de insert, update ou delete. FOR/AFTER/INSTEAD OF: uma dessas opções deve ser escolhida para definir o momento em que o trigger será disparado. FOR é o valor padrão e faz com o que o gatilho seja disparado junto da ação. AFTER faz com que o disparo se dê somente após a ação que o gerou ser concluída. INSTEAD OF faz com que o trigger seja executado no lugar da ação que o gerou. INSERT/UPDATE/DELETE: uma ou várias dessas opções (separadas por vírgula) devem ser indicadas para informar ao banco qual é a ação que disparará o gatilho. Por exemplo, se o trigger deve ser disparado após toda inserção, deve-se utilizar AFTER INSERT.
Exemplo da lista_5
2 – crie uma trigger que impossibilite a exclusão de registros da tabela Condicao_Pagamento. create trigger tr_condicao_pagamento_nao_excluir on dbo.Condicao_Pagamento instead of delete as begin print ’EXCLUSAO NAO PERMITIDO’ end
Fim!! Boa Prova a todos..
Tutoriais criado por Francielle Marcicano =)
LISTA_5_RESPONDIDA
View 1 – Crie uma view com o nome vw_produto_marca que retorne o nome do produto e a marca do produto. create view vw_produto_marca as select Produto.nome as Nome_Produto, dbo.Marca.Nome as Nome_Marca from dbo.Produto inner join dbo.Marca on dbo.Produto.cod_marca = dbo.Marca.cod_marca
select * from vw_produto_marca
2 – Crie uma view chamada vw_cliente_vendedor que retorne o nome do vendedor e todas as informações de clientes que esse vendedor atendeu. create view vw_cliente_vendedor as select Vendedor.Nome as Nome_Vendedor, Cliente.cod_cliente as Cod_Cliente, Cliente.Nome as Nome_Cliente, Cliente.Telefone as Telefone, Cliente.rg as RG, Cliente.cpf as CPF, Cliente.Email as Email, Cliente.sexo as Sexo, Pedido.cod_pedido as Pedido from Pedido inner join Vendedor on Pedido.cod_vendedor = Vendedor.cod_vendedor inner join Cliente on Pedido.cod_cliente = Cliente.cod_cliente where Vendedor.Nome = ’Luiza’
select * from vw_cliente_vendedor
Procedure 1 – Crie uma proc chamada pr_pedidosVendedor que mostre todos os pedidos do vendedor cujo código do vendedor seja o código passado como parâmetro. create proc pr_pedidosvendedor (@cod int) as select Vendedor.nome as Nome, Pedido.cod_pedido as Pedido from Vendedor inner join Pedido on Vendedor.cod_vendedor = Pedido.cod_vendedor where Vendedor.cod_vendedor = @cod
exec pr_pedidosvendedor 1
2 - Crie uma proc chamada pr_forma_pagamento onde é passado o cod_condicao_pagto da tabela Condicao_Pagamento e retorne o valor das vendas dessa condição de pagamento. create proc pr_forma_pagamento (@cond numeric) as select Condicao_Pagamento.cod_condicao_pagto as Forma_de_Pagamento,
...