SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

Tamanho: px
Começar a partir da página:

Download "SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela"

Transcrição

1 SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela Certamente você já ouviu falar muito sobre triggers. Mas o quê são triggers? Quando e como utilizá-las? A verdade é que triggers nada mais são que um tipo especial de stored procedurecom a capacidade de poder ser vinculada a uma tabela ou view e que são disparadas (daí o nometriggers) em resposta a eventos de INSERT, UPDATE ou DELETE que ocorrem sobre uma tabela ou view a qual estão vinculadas. Em versões mais antigas do SQL Server as triggers eram muito utilizadas para garantir a integridade referencial dos dados. No entanto, com as versões mais recentes como SQL Server 2000 e 2005, muitas destas tarefas passaram a ser melhor executadas pelas constraints eforeign keys. Diante disso, as triggers são hoje muito utilizadas para criar regras de auditoria, como inclusive já foi destacado em outros artigos. O fato é que as triggers são verdadeiras ferramentas que quando bem utilizadas podem ajudar a implementar complexas regras de negócio, permitir a modificação de dados em múltiplas tabelas ou até executar rollback de transações inteiras. Neste artigo, será feita uma introdução aos tipos de triggers disponíveis no SQL Server e será demonstrado como utilizar um tipo especial detrigger chamada INSTEAD OF para criar triggers em views, permitindo controlar as atualizações em tabelas através das views. Alem disso, será apresentado também como podemos identificar ou auditar quais colunas de uma tabela estão sendo atualizadas em uma instrução de UPDATE, utilizando uma função especial chamada COLUMNS_UPDATE. Tipos de Triggers O ponto chave para uma correta utilização das triggers é conhecer seus tipos e principalmente entender o funcionamento e a diferença entre cada uma delas. O SQL Server oferece basicamente dois tipos de triggers, estas são chamadas AFTER e INSTEAD OF triggers. Até a chegada do SQL Server 2000 as AFTER triggers eram o único tipo de trigger disponível no SQL Server. Estas são executadas após a ocorrência de um evento de INSERT, UPDATE ou DELETE podendo ser usadas para fazer rollback de uma modificação de dados e ainda ser chamada de forma recursiva até 32 níveis, ou seja, trigger1 que chama a trigger2 que chama a trigger3 e assim sucessivamente até atingir a trigger32. No entanto, uma das limitações das AFTER triggers está no fato de que elas não podem ser usadas em views, vinculadas a mais de uma tabela e também não podem ser utilizadas sobre colunas do tipo text, ntext ou image. Para que você possa entender mais claramente o funcionamento de uma AFTER trigger, vamos a um exemplo prático. O exemplo da Listagem 1 cria uma AFTER trigger sobre a tabela Authors do banco de dados Pubs.

2 Listagem 1. Exemplo de AFTER trigger. 1. CREATE TRIGGER tr_after_update_authors ON Authors AFTER UPDATE 2. AS 3. IF UPDATE(city) 4. BEGIN 5. RAISERROR ('A cidade não pode ser alterada!', 16, 1) 6. SELECT au_id,city FROM authors WHERE au_id= ' ' 7. ROLLBACK 8. END 9. GO Com esta trigger, quando um evento de UPDATE for executado sobre a tabela Authors a triggerserá disparada e verificará se a coluna city foi atualizada (linha 3). Em caso afirmativo, a triggerirá disparar uma mensagem dizendo que a alteração não pode ser realizada (linha 5), fará um SELECT sobre a tabela Author e irá desfazer o comando de UPDATE usando o ROLLBACK da linha 7. O importante ao se trabalhar com AFTER triggers é saber que elas somente são disparadas após o evento de UPDATE, DELETE ou INSERT ter ocorrido, ou seja, após o valor ter sido alterado na tabela afetada. Isso pode ser facilmente verificado se você utilizar o script da Listagem 2 para disparar a trigger criada pelo script da Listagem 1. O script executa um UPDATE sobre a coluna city alterando a cidade para São Paulo onde o au_id for igual a , isso irá causar o disparo da trigger, e logo em seguida faz um SELECT sobre a tabela authors. Listagem 2. Script para disparar a AFTER trigger -- Causará o disparo da trigger UPDATE authors set city='são Paulo' WHERE au_id= ' ' GO

3 -- Mostra valor original da coluna SELECT au_id,city FROM authors WHERE au_id= ' ' Ao executar o script teremos o seguinte resultado: Msg 50000, Level 16, State 1, Procedure tr_after_update_authrs, Line 5 A cidade não pode ser alterada! au_id city São Paulo au_id city Berkeley O ponto de atenção no resultado são os valores da coluna city. Observe que no SELECT executado dentro da trigger, o valor da coluna city está como São Paulo, isso mostra claramente que a trigger foi disparada após o valor ter sido alterado na tabela. Já no SELECT executado após o UPDATE o valor da coluna está como Berkeley, este é o valor original da coluna. Vale lembrar que o valor só voltou para seu original porque dentro da trigger dalistagem 1 está sendo executado um ROLLBACK na linha 7. Disponíveis a partir do SQL Server 2000, as INSTEAD OF triggers superam as limitações das AFTER triggers e também podem ser usadas nos eventos de INSERT, UPDATE e DELETE. Entretanto, diferente das AFTER triggers, elas são disparadas antes da ocorrência do evento. Por exemplo, imagine que você possui uma INSTEAD OF UPDATE trigger sobre a tabela Authors e um UPDATE é executado na coluna city. Diferente do que ocorre nas AFTER triggers, o UPDATE não chega a alterar o valor original da coluna. Antes disso a trigger é disparada e aí você pode fazer qualquer trabalho ou aplicar regras de negócio antes que o dado seja efetivamente alterado na tabela. Na Listagem 3 temos um exemplo simples de uma INSTEAD OF trigger. Propositalmente deixei o exemplo bem semelhante ao exemplo da AFTER trigger apresentado nalistagem 1, com a diferença que desta

4 vez não se tem o comando de ROLLBACK. Note também que na declaração da trigger, ao invés de usar a sintaxe AFTER UPDATE estou utilizando INSTEAD OF UPDATE. Listagem 3. Exemplo de INSTEAD OF trigger. 1. CREATE TRIGGER tr_insteadof_update_authors ON Authors INSTEAD OF UPDATE 2. AS 3. IF UPDATE(city) 5. BEGIN 6. RAISERROR ('Instead of trigger, a coluna city ainda não foi alterada!', 16, 1) 7. SELECT au_id,city FROM authors WHERE au_id= ' ' 8. END 9. GO Neste exemplo, quando um UPDATE for executado sobre a tabela Authors a trigger será disparada antes que o evento atualize o dado na tabela. Se você re-executar o script da Listagem 2notará que diferente do que ocorreu com a AFTER trigger, os resultado dos dois SELECTs serão iguais. Isso mostra claramente que quando a trigger foi disparada o valor da coluna city ainda não havia sido efetivamente alterado na tabela. Observe no resultado apresentado abaixo que o SELECT executado dentro da trigger não apresenta o valor da coluna city como sendo São Paulo. Lembre-se também que desta vez não temos o comando de ROLLBACK dentro da trigger. Msg 50000, Level 16, State 1, Procedure tr_inseadof_update_authors, Line 5 Instead of trigger, a coluna city ainda não foi alterada! au_id city Berkeley

5 au_id city Berkeley O uso das INTEAD OF triggers é interessante, pois permite que o desenvolvedor tenha um maior controle sobre a ação da trigger, permitindo inclusive realizar operações totalmente diferentes do que o usuário está tentando fazer. No entanto, a principal vantagem das INSTEAD OF triggersestá no fato destas poderem ser usadas em views. Adicionar uma INSTEAD OF trigger a umaview permite que você torne a view atualizável, também conhecido como updatable views. Tornar uma view atualizável permite que você possa executar comando de INSERT, UPDATE e DELETE sobre a view sem precisar conhecer a estrutura da tabela ou tabelas afetadas. Por outro lado, trabalhar com views atualizáveis permite que você oculte a estrutura real de suas tabelas podendo disponibilizar para os usuários um conjunto de views que faz o trabalho de atualização dos dados. No decorrer deste artigo estaremos mostrando como você pode usar uma INSTEAD OF triggerpara tornar uma view atualizável e controlar os UPDATEs sobre as tabelas. No início deste tópico foi dito que o SQL Server possui dois tipos básicos de triggers: as AFTER e as INSTEAD OF triggers. No entanto, a partir do SQL Server 2005 um novo tipo de trigger foi adicionado ao produto: estas são chamadas de DDL triggers. Diferente das AFTER e INSTEAD OFtriggers que são disparadas em resposta a eventos de manipulação de dados (INSERT, UPDATE e DELETE), as triggers de DDL são disparadas em resposta aos eventos de definição de dados (CREATE, ALTER e DROP), permitindo capturar qualquer evento que possa criar, alterar ou excluir objetos tanto no nível banco de dados quanto no nível servidor. Um exemplo simples de criação de uma trigger de DDL pode ser visto na Listagem 4. O exemplo cria uma trigger de DDL de nome ddl_trigger_drop_alter_table que monitora as ocorrências dos eventos DROP TABLE e ALTER TABLE no banco de dados AdventureWorks no SQL Server 2005 e impede a exclusão ou alteração de qualquer tabela dentro do banco de dados. Listagem 4. Trigger de DDL que impede a exclusão e alteração de tabelas. 1. USE AdventureWorks

6 2. GO 3. --Cria uma tabela de teste 4. IF OBJECT_ID('dbo.TBTESTEDDL') IS NOT NULL 5. DROP TABLE dbo.tbtesteddl 6. GO 7. CREATE TABLE dbo.tbtesteddl 8. ( 9. ID INT IDENTITY, 10. NOME VARCHAR(30) 11. ) 12. GO Cria uma trigger de DDL no banco de dados 14. CREATE TRIGGER ddl_trigger_drop_alter_table 15. ON DATABASE 16. FOR DROP_TABLE, ALTER_TABLE 17. AS 18. PRINT 'Você não tem permissão para excluir ou alterar tabelas.' 19. ROLLBACK 20. GO Tenta excluir a tabela 22. DROP TABLE dbo.tbtesteddl 23. GO

7 Tenta alterar tabela 25. ALTER TABLE dbo.tbtesteddl 26. ALTER COLUMN NOME VARCHAR (40) Exclui os objetos criados 28. DROP TRIGGER DDL_DROP_ALTER_TABLE ON DATABASE 29. DROP TABLE dbo.tbtesteddl Para simular o funcionamento da trigger, das linhas 1 a 12 o exemplo primeiramente cria uma tabela de teste no banco de dados AdvantureWorks e das linhas 13 a 20 parte para a criação da trigger. Como podemos observar, o exemplo cria uma trigger de escopo banco de dados (linha 15), a qual será disparada após a execução dos eventos de banco de dados DROP TABLE e ALTER TABLE (linha 16). Ao ser disparada, a trigger envia para o usuário a mensagem de que ele não possui permissão para excluir ou alterar tabelas e impede que a tabela seja excluída ou alterada fazendo um ROLLBACK da transação que disparou os eventos (linha 19). Das linhas 21 a 29 temos os eventos que ao serem executados irão disparar a trigger e depois remover os objetos criados no exemplo. Criando views atualizáveis com as INSTEAD OF triggers Como eu disse no tópico anterior, a principal vantagem na utilização das INSTEAD OF triggersestá no fato que você pode criar uma INSTEAD OF trigger sobre uma view, tornando a viewatualizável. Isso permite que você execute comandos de INSERT, UPDATE e DELETE sobre a viewsem conhecer a estrutura das tabelas afetadas e dentro da trigger fazer todos os tratamentos necessários, como, tratar regras de negócio e decidir qual tabela ou tabelas devem ser atualizadas. Isso possibilita a atualização dos dados sem precisar acessar as tabelas diretamente, o que inclusive adiciona maior segurança quanto ao acesso indevido à estrutura das tabelas. Para exemplificar a utilização de INSTEAD OF trigger em views, vamos imaginar um pequeno cenário que inclui uma tabela de Clientes e uma tabela de Pedidos. O script da Listagem 5 permite a criação das tabelas e as popula com alguns dados de exemplo. Listagem 5. Script para criar e polular as tabelas de Clientes e Pedidos.

8 CREATE TABLE Clientes ( Cli_ID INT IDENTITY(1,1) PRIMARY KEY, Nome varchar (20), Cidade varchar(20)) CREATE TABLE Pedidos( PedidoID INT IDENTITY(1,1) PRIMARY KEY, Cli_ID INT REFERENCES Clientes(Cli_ID), ValorPedido decimal (10,2), DataPedido smalldatetime DEFAULT(GETDATE())) -- Carrega tabela de clientes com dados de exemplo INSERT INTO Clientes VALUES('Empresa 1', 'Rio de Janeiro') INSERT INTO Clientes VALUES('Empresa 2', 'São Paulo') INSERT INTO Clientes VALUES('Empresa 3', 'Curitiba') -- Carrega tabela de pedidos com dados de exemplos INSERT INTO Pedidos (Cli_ID,ValorPedido) VALUES (1,100.00) INSERT INTO Pedidos (Cli_ID,ValorPedido) VALUES (2,800.00) INSERT INTO Pedidos (Cli_ID,ValorPedido) VALUES (3, ) Após a criação e carga das tabelas, os dados estão como os apresentados na Figura 1.

9 Figura 1. Dados de exemplo das tabelas clientes e pedidos. Agora que as tabelas de exemplo estão criadas e com dados, devemos criar uma view que faça um JOIN entre as duas tabelas e permita visualizar os dados de uma forma mais simples. AListagem 6 apresenta o script de criação da view. Listagem 6. Script de criação de uma view para UNIR as tabelas Clientes e Pedidos. CREATE VIEW vw_clientes_pedidos AS SELECT cli.cli_id,cli.nome, ped.valorpedido, ped.datapedido FROM Clientes cli INNER JOIN Pedidos ped ON cli.cli_id = ped.cli_id GO Na Figura 2 temos o resultado da execução da view vw_clientes_pedidos.

10 Figura 2. Dados e colunas da view vw_clientes_pedidos. Estando com as tabelas e view criadas, precisamos então criar uma INSTEAD OF trigger sobre aview. Isso permitirá que você realize modificações (INSERT, UPDATE e DELETE) nas tabelas sem precisar acessar as tabelas de forma direta. Para demonstrar isso, será utilizado o script dalistagem 7 para criar uma INSTEAD OF trigger de INSERT sobre a view criada pela Listagem 6. Listagem 7. Script de criação da INSTEAD OF trigger 1. CREATE TRIGGER tr_vw_clientes_pedidos ON vw_clientes_pedidos 2. INSTEAD OF INSERT 3. AS 4. BEGIN 5. IF EXISTS (SELECT TOP 1 * FROM INSERTED WHERE Cli_ID IS NOT NULL) 6. BEGIN 7. INSERT INTO Pedidos(Cli_ID, ValorPedido) 8. SELECT i.cli_id, i.valorpedido FROM INSERTED i 9. END 10.END 11.GO Note no script que na declaração da trigger (linhas 1 e 2) é especificado que a trigger será de INSERT, ou seja, esta trigger será disparada toda vez que um INSERT for efetuado sobre a view. Depois, a primeira instrução da trigger faz uma checagem na tabela INSERTED para garantir que o Cli_ID não é nulo (linha 5). A

11 partir do momento que sabemos que existe um Cli_ID, podemos então assumir que está sendo inserido um novo pedido para um cliente e usamos a trigger para fazer um INSERT sobre a tabela de Pedidos através dos dados que estão na tabela INSERTED. Quando trabalhamos com AFTER ou INSTEAD OF triggers, estas nos disponibilizam duas tabelas chamadas INSERTED e DELETED. Estas tabelas são tabelas virtuais que existem apenas durante o tempo de execução da trigger e podem ser usadas para capturar o antes e depois de uma operação INSERT, UPDATE ou DELETE. As tabelas são afetadas de forma diferente dependendo da operação executada. A Tabela 1 mostra o que contém em cada tabela de acordo com a operação. Operação Tabela INSERTED contém Tabela DELETED contém DELETE Não possui registros Registros excluídos INSERT Novos registros Não possui registros UPDATE Novos registros Registros antigos Tabela 1. Efeito das operações de INSERT, UPDATE e DELETE sobre as tabelas INSERTED e DELETED. Com a trigger criada sobre a view, temos agora a capacidade de fazer INSERT sobre as tabelas (neste exemplo estamos usando apenas a tabela Pedidos) utilizando a view. Um exemplo de instrução de INSERT utilizando a view pode ser visto abaixo: INSERT INTO vw_clientes_pedidos(cli_id, ValorPedido) VALUES(1, 1200) O exemplo executa um INSERT sobre a view vw_clientes_pedidos fornecendo um Cli_ID válido e um valor de pedido. Com isso teremos um novo registro sendo inserido sobre a tabela de Pedidos. Executando um SELECT sobre a view após a execução do INSERT podemos notar na Figura 3 ainclusão de um novo pedido para o Cli_ID igual a 1.

12 Figura 3: Inclusão de pedidos através da view. Vale lembrar que da mesma forma que criamos uma INSTEAD OF trigger de INSERT, você também pode estar criando trigger para UPDATE e DELETE. O exemplo utilizado aqui foi apenas para mostrar o poder e a flexibilidade oferecidos pelas INSTEAD OF trigger. Com elas você pode ocultar de seus analistas ou desenvolvedores a estrutura real das tabelas e impedir que modificações sejam feitas diretamente nas tabelas. Usando a função COLUMNS_UPDATED para identificar colunas que sofreram atualizações Nas edições 34 (setembro/2006) da SQL Magazine e 41 (Junho/2007) da.net Magazine foram publicados artigos respectivamente sobre Auditoria de Operações DDL (CREATE, ALTER e DROP) com as triggers de DDL e Auditoria de Operações DML (INSERT, UPDATE e DELETE) com a cláusula OUTPUT no SQL Server Sabemos que a auditoria de dados é muito importante, principalmente quando trabalhamos com informações confidenciais. Agora, além de auditar modificações de dados e objetos, também pode ser interessante auditar as colunas que sofreram atualizações. No entanto, a grande questão é: Como fazer para identificar quais colunas de uma tabela foram atualizadas em uma instrução de UPDATE? É aí que entra a função COLUMNS_UPDATED. Disponível apenas dentro de uma trigger, a função COLUMNS_UPDATED pode ser utilizada em AFTER ou INSTEAD OF triggers para retornar um valor binário contendo as colunas que foram incluídas em uma instrução de UPDATE ou INSERT baseado na ordem das colunas da tabela ouview afetada. Ao utilizar esta função dentro de uma trigger, fica fácil saber qual coluna foi alterada e aí basta gravar isso em uma tabela de auditoria. Para exemplificar o uso desta função, utilizaremos o script da Listagem 8 para criar as tabelas de Pedidos e PedidosAudit. Note que na tabela PedidosAudit temos a coluna ColunaAtualizadaque será utilizada para armazenar as colunas utilizadas

13 nas instruções de UPDATE, ou seja, as colunas que sofreram atualizações. Estes dados serão armazenados em formato XML. Listagem 8. Script de criação das tabelas de exemplo Pedidos e PedidosAudit CREATE TABLE Pedidos (PedidoID INT IDENTITY(1,1), Produto VARCHAR(30) NOT NULL, DataPedido SMALLDATETIME, ValorPedido DECIMAL(10,2) ) CREATE TABLE PedidosAudit (AuditID INT IDENTITY(1,1), PedidosID INT, Produto VARCHAR(30) NOT NULL, Valorpedido DECIMAL (10,2), ColunaAtualizada XML NULL ) -- Carrega a tabela de Pedidos com dados exemplo INSERT INTO Pedidos (Produto, DataPedido, ValorPedido) VALUES ('Produto 1', ' ', ) INSERT INTO Pedidos (Produto, DataPedido, ValorPedido) VALUES ('Produto 2', ' ', ) Estando com as tabelas criadas, precisamos agora de uma AFTER trigger para capturar os eventos de UPDATE disparados sobre a tabela Pedidos. Esta trigger deve então utilizar a função COLUMNS_UPDATED para que possamos

14 identificar quais colunas foram atualizadas pelo UPDATE. Na Listagem 9 temos o código de exemplo para criação da trigger. Listagem 9. Script de criação da AFTER trigger de UPDATE sobre a tabela Pedidos 1. CREATE TRIGGER tr_pedidos ON Pedidos AFTER UPDATE 2. AS 3. BEGIN 4. XML 5. VARBINARY(100) 6. = COLUMNS_UPDATED() = ( 9. SELECT COLUMN_NAME AS Name FROM INFORMATION_SCHEMA.COLUMNS Field 10. WHERE TABLE_NAME = 'Pedidos' 11. ANDsys.fn_IsBitSetInBitmask(@ColunasAtualizadas,COLUMNPROPERTY(OBJE CT_ID(TABLE_SCHEMA + '.' TABLE_NAME), COLUMN_NAME, 'ColumnID')) <> FOR XML AUTO, ROOT('Fields')) INSERT INTO PedidosAudit (PedidoID, Produto, ValorPedido, ColunaAtualizada) 16. SELECT FROM INSERTED 17.END Nesta trigger temos dois pontos chaves. O primeiro é a declaração da (linha 5). Esta é a variável de tipo binário que armazena o valor binário retornado pela função COLUMNS_UPDATED (linha 6) e que na linha 12

15 é passada como parâmetro para a função de sistema sys.fn_isbitsetinbitmask (disponível apenas no SQL Server 2005), o segundo ponto chave da trigger. Na verdade, todo o trabalho pesado da trigger é feito por esta função de sistema. Observe que ela recebe dois parâmetros: o valor binário armazenado na (que armazena as colunas sendo atualizadas) e o ColumnID das colunas da tabela Pedidos, este obtido através da view de sistema INFORMATION_SCHEMA.COLUMNS. Recebendo estes parâmetros, a função retorna um valor diferente de 0 para cada coluna da tabela Pedidos que estiver contida no valor binário da A trigger então armazena o nome das colunas que foram incluídas na instrução de UPDATE em formato XML na permitindo que na linha 15 possamos inserir estes campos na tabela de auditoria. Estando a trigger criada, podemos executar uma instrução de UPDATE sobre a tabela Pedidos e consultar a tabela de auditoria PedidosAudit para visualizar o resultado. Um exemplo pode ser visto na Figura 4 onde a instrução de UPDATE atualiza a coluna ValorPedido, atualizando o valor dos pedidos em mais 40. Note que na tabela de auditoria PedidosAudit a coluna ColunaAtualizada informa a coluna que sofreu a atualização. Figura 4: Tabela de auditoria mostrando a coluna que sofreu atualização.

16 Como um exemplo de update de múltiplas colunas, a Figura 5 mostra um UPDATE sendo efetuado sobre as colunas Produto e ValorPedido. Na tabela de auditoria a coluna ColunaAtualizada mostra as colunas que sofreram atualizações. Figura 5: Tabela de auditoria mostrando as colunas que sofreram atualizações. Os exemplos apresentados aqui infelizmente só funcionam no SQL Server 2005 devido à utilização do tipo de dados XML, mas também principalmente devido à função de sistemasys.fn_isbitsetinbitmask só estar disponível no SQL Server No entanto, você pode facilmente copiar o script da função para o SQL Server 2000 e utilizar o tipo de dados varchar() em substituição ao tipo XML. Isso permitirá que você use esta solução de auditoria também no SQL Server Conclusões No decorrer deste artigo foram apresentados os tipos de trigger disponíveis no SQL Server e, principalmente, foi mostrado que o ponto chave na utilização das triggers é conhecer seus tipos e entender seu funcionamento. Após isso, foi mostrado também que as INSTEAD OF trigger são excelentes para se utilizar em views, tornando as views atualizáveis e podendo realizar operações de INSERT, UPDATE e DELETE sem precisar acessar as tabelas diretamente. Por fim, vimos que auditar as colunas que sofrem atualizações em uma tabela é bastante simples quando usamos a função COLUMNS_UPDATE e sys.fn_isbitsetinbitmask. Bom, agora é com vocês, um abraço e até a próxima.

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich

Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Elaborado por Maria Lígia B. Perkusich O que é um gatilho (trigger)? Um gatilho é um tipo especial de procedimento armazenado

Leia mais

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) 8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras

Leia mais

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures) PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso): TRANSAÇÕES 1. Introdução Transação Uma transação é uma unidade lógica de trabalho (processamento), formada por um conjunto de comando SQL, que tem por objetivo preservar a integridade e a consistência

Leia mais

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

Treinamento sobre SQL

Treinamento sobre SQL Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

Bases de Dados 2007/2008. Aula 9

Bases de Dados 2007/2008. Aula 9 Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

Leia mais

Exemplos de Gatilhos. Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com

Exemplos de Gatilhos. Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Exemplos de Gatilhos Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Exemplo 1 Enunciado Crie um gatilho que emita uma mensagem de quantas linhas serão inseridas ou modificadas na tabela authors

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados

Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classe e Auto- Relacionamento em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

Profº Aldo Rocha. Banco de Dados

Profº Aldo Rocha. Banco de Dados Profº Aldo Rocha Banco de Dados HOJE! CREATE TABLE com uma Chave primária Primeiramente façam um SELECT na tabela pessoa. Percebam que não há NENHUMA CHAVE PRIMÁRIA. utilizem o comando SHOW CREATE TABLE

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 03 AT03 Diversos II Page 1 of 25 Indice EXEMPLOS COM GROUP BY E COM A CLÁUSULA HAVING - TOTALIZANDO DADOS... 3 GROUP BY... 3 Cláusula HAVING com GROUP BY... 5 ENTENDENDO

Leia mais

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES BANCO DE DADOS GERENCIAL 1 AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES Integridade de domínio A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade

Leia mais

Controle de transações em SQL

Controle de transações em SQL Transações Controle de transações em SQL Uma transação é implicitamente iniciada quando ocorre uma operação que modifica o banco de dados (INSERT, UPDATE ou DELETE). Uma transação pode terminar normalmente

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Criando Banco de Dados, Tabelas e Campos através do HeidiSQL Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 2 Pedreiros da Informação Criando Banco de Dados, Tabelas e Campos através do HeidiSQL

Leia mais

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo CONCORRÊNCIA 1. Introdução Recursos exclusivos Não necessita controle Abundância de recursos compartilhados Controle necessário mas mínimo Harmonia, provavelmente não haverá conflito Recursos disputados

Leia mais

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados progweb2@thiagomiranda.net Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 14 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

1. SQL Instrumental...2 1.1 Select...3 1.2 Delete...13 1.3 Update... 1.4 Insert... 1.5 Group by... 1.6 Having... 1.7 Unnion All...

1. SQL Instrumental...2 1.1 Select...3 1.2 Delete...13 1.3 Update... 1.4 Insert... 1.5 Group by... 1.6 Having... 1.7 Unnion All... SQL 1. SQL Instrumental...2 1.1 Select...3 1.2 Delete...13 1.3 Update... 1.4 Insert... 1.5 Group by... 1.6 Having... 1.7 Unnion All... 2. Servidor... 2.1 Ativando log no Broker... 2.2 Leitura do log no

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

Introdução ao SQL. Aécio Costa

Introdução ao SQL. Aécio Costa Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição

Leia mais

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de

Leia mais

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL Urano Indústria de Balanças e Equipamentos Eletrônicos Ltda. Rua Irmão Pedro 709 Vila Rosa Canoas RS Fone: (51) 3462.8700 Fax: (51) 3477.4441 Características do Software Urano Integra 2.2 Data: 12/05/2014

Leia mais

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. Triggers um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. o evento pode ser INSERT, UPDATE, ou DELETE. o trigger pode ser accionado imediatamente

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada Desvendando Estatísticas do SQL Server Parte 1 Nesta série de artigos vamos dar um mergulho profundo nas Teorias Probabilísticas (mais conhecido como estatísticas) do SQL Server. Introdução Estatísticas

Leia mais

Manter estatísticas atualizadas é uma das regras de ouro na busca por performance.

Manter estatísticas atualizadas é uma das regras de ouro na busca por performance. Atualização de Estatísticas Um objeto de estatística pode ser atualizado manualmente pelo usuário, através dos comandos SP_UPDATESTATS e/ou UPDATE STATISTICS. Enquanto que a procedure SP_UPDATESTATS atualiza

Leia mais

Introdução à linguagem SQL

Introdução à linguagem SQL Introdução à linguagem SQL 1 Histórico A linguagem de consulta estruturada (SQL - Structured Query Language) foi desenvolvida pela empresa IBM, no final dos anos 70. O primeiro banco de dados comercial

Leia mais

Transações Seguras em Bancos de Dados (MySQL)

Transações Seguras em Bancos de Dados (MySQL) Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva - www.assembla.com/spaces/objetivobd/documents

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva - www.assembla.com/spaces/objetivobd/documents Banco de dados Linguagens de Banco de Dados II 1 Linguagem de Definição de Dados - DDL Comandos utilizados para criação do esquema de dados; Um DDL permite ao utilizador definir tabelas novas e elementos

Leia mais

Profº Aldo Rocha. Banco de Dados

Profº Aldo Rocha. Banco de Dados Profº Aldo Rocha Banco de Dados Aula Passada Na aula passada nós iniciamos a utilização e conhecimento de comandos voltados para implementação de rotinas em banco de dados. Os comandos apresentados foram:

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 3 Linguagem SQL Linguagem de manipulação de dados (DML) DISCIPLINA: Banco de

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

Procedimentos armazenados

Procedimentos armazenados Procedimentos armazenados Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Material da Profª Maria Lígia B. Perkusich Procedimentos armazenados (i) Definição Um procedimento armazenado (stored procedure)

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

Segurança de Acesso a Banco de Dados no MS SQL Server

Segurança de Acesso a Banco de Dados no MS SQL Server Segurança de Acesso a Banco de Dados no MS SQL Server Para efetuar com sucesso os exemplos que serão mostrados a seguir é necessário que exista no SQL Server uma pessoa que se conecte como Administrador,

Leia mais

Principais Instruções em SQL

Principais Instruções em SQL Instrução Principais Instruções em SQL Instrui o programa principal do banco de dados para retornar a informação como um conjunto de registros. Sintaxe [predicado { * tabela.* [tabela.]campo1 [AS alias1]

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

Projeto de Banco de Dados: Empresa X

Projeto de Banco de Dados: Empresa X Projeto de Banco de Dados: Empresa X Modelo de negócio: Empresa X Competências: Analisar e aplicar o resultado da modelagem de dados; Habilidades: Implementar as estruturas modeladas usando banco de dados;

Leia mais

Laboratório de Banco de Dados II Aula 1. Stored Procedures

Laboratório de Banco de Dados II Aula 1. Stored Procedures Laboratório de Banco de Dados II Aula 1 Stored Procedures Stored procedures Uma seqüência de comandos SQL pode ser agrupada, formando uma stored procedure A sua execução é comandada, invocando-se o nome

Leia mais

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 5 SELECT * FROM Minha_memoria Revisando Sintaxes SQL e Criando programa de Pesquisa Ano:

Leia mais

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Sumário da aula Functions (funções) Triggers (gatilhos) Atividades Functions

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger a tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010 BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO Antes de criarmos um novo Banco de Dados quero fazer um pequeno parênteses sobre segurança. Você deve ter notado que sempre

Leia mais

Tarefa Orientada 18 Procedimentos armazenados

Tarefa Orientada 18 Procedimentos armazenados Tarefa Orientada 18 Procedimentos armazenados Objectivos: Criar Procedimentos armazenados Chamar procedimentos armazenados Utilizar parâmetros de entrada e de saída Um procedimento armazenado representa

Leia mais

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

Leia mais

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET I Sumário 1. Objetivo do Documento... 1 2. Início... 1 3. Cadastro de Pessoa Física... 3 3.1. Preenchimentos Obrigatórios.... 4 3.2. Acesso aos Campos

Leia mais

http://www.multside.com.br CODE IGNITER INSTALAÇÃO & BANCO DE DADOS

http://www.multside.com.br CODE IGNITER INSTALAÇÃO & BANCO DE DADOS CODE IGNITER INSTALAÇÃO & BANCO DE DADOS INSTALAÇÃO Instalar o code-igniter é muito simples, basta que você tenha um servidor que rode PHP 5 (para saber consulte a documentação PHP do seu servidor). Após

Leia mais

Trecho retirando do Manual do esocial Versão 1.1

Trecho retirando do Manual do esocial Versão 1.1 Trecho retirando do Manual do esocial Versão 1.1 A rotina de acesso direto ao XML do S-1000, o usuário pode encontrar na opção de cadastro de Empresas do SIP. Sempre que o usuário localizar a figura ao

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

trigger insert, delete, update

trigger insert, delete, update 1 Um trigger é um conjunto de instruções SQL armazenadas no catalogo da BD Pertence a um grupo de stored programs do MySQL Executado quando um evento associado com uma tabela acontece: insert, delete,

Leia mais

Sistema de Controle de Estoque

Sistema de Controle de Estoque FACULDADE DE TECNOLOGIA SENAC GOIAS GESTÃO EM TECNOLOGIA DA INFORMÇÃO TÓPICOS AVANÇADOS EM BANCO DE DADOS Professor: Olegário Correia Neto Alunos: Marcelo Gonçalves, Juliano Pirozelli, João Lucas Pecin,

Leia mais

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

Leia mais

Manual do Google agenda. criação e compartilhamento de agendas

Manual do Google agenda. criação e compartilhamento de agendas Manual do Google agenda criação e compartilhamento de agendas 1 O que é o Google Agenda? Google Agenda é um serviço de agenda on line gratuito do Google, onde você pode anotar compromissos e tarefas, organizando

Leia mais

EXERCÍCIOS PRÁTICOS. Banco de Dados

EXERCÍCIOS PRÁTICOS. Banco de Dados EXERCÍCIOS PRÁTICOS Banco de Dados Introdução ao uso do SQL Structured Query Language, considerando tanto DDL Data Definition Language quanto DML Data Manipulation Language. Banco de Dados selecionado:

Leia mais

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos. Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente

Bases de Dados. Lab 1: Introdução ao ambiente Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

Leia mais

Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade.

Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade. www.devm edia.com.br [versão para im pressão] MySQL TRIGGERS Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade. MySQL TRIGGERS Neste artigo, serão apresentados

Leia mais

Disciplina: Unidade V: Prof.: E-mail: Período:

Disciplina: Unidade V: Prof.: E-mail: Período: Encontro 17 Disciplina: Sistemas de Banco de Dados Unidade V: Introdução à Linguagem SQL Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM 13. Introdução à Linguagem SQL Introdução

Leia mais

SQL: Definição de tabelas, Modificações à Base de Dados

SQL: Definição de tabelas, Modificações à Base de Dados SQL: Definição de tabelas, Modificações à Base de Dados Fernando Lobo Base de Dados, Universidade do Algarve 1 / 24 Definição do esquema da base de dados O esquema da BD é composto pelas definições de

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS Profº Erinaldo Sanches Nascimento Introdução Cursor é usado para percorrer um conjunto de linhas retornadas por uma consulta

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Iniciação à Informática

Iniciação à Informática Meu computador e Windows Explorer Justificativa Toda informação ou dado trabalhado no computador, quando armazenado em uma unidade de disco, transforma-se em um arquivo. Saber manipular os arquivos através

Leia mais

Manual de digitação de contas Portal AFPERGS

Manual de digitação de contas Portal AFPERGS Manual de digitação de contas Portal AFPERGS 1 Sumário Acesso à função digitação de contas... 3 O que é a Função digitação de contas (DC)... 4 Como proceder na função digitação de conta médica (DC)...

Leia mais

Portal Sindical. Manual Operacional Empresas/Escritórios

Portal Sindical. Manual Operacional Empresas/Escritórios Portal Sindical Manual Operacional Empresas/Escritórios Acesso ao Portal Inicialmente, para conseguir acesso ao Portal Sindical, nos controles administrativos, é necessário acessar a página principal da

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS Na grande maioria dos sistemas, faz-se necessário utilizar informações que estão armazenadas em uma determinada

Leia mais

Bases de Dados 1º semestre

Bases de Dados 1º semestre DepartamentodeEngenhariaInformática 2008/2009 BasesdeDados1ºsemestre Lab1:Introduçãoaoambiente O ficheiro create bank.sql contém um conjunto de instruções SQL para criar a base de dadosdeexemploilustradanafigura1.

Leia mais

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você por Cristóferson Guimarães Magalhães Bueno e Odilon Corrêa da Silva 1 O objetivo deste artigo é demonstrar como criar um sistema

Leia mais