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. 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

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

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

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

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

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

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. Visão Geral Uma transação é uma unidade lógica de trabalho (processamento) formada por um conjunto de comandos SQL cujo objetivo é preservar a integridade e a consistência dos dados. Ao final

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

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

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

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

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

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

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

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

estiver abaixo ou igual ao mínimo, um novo pedido é acrescentado a uma relação pedidos.

estiver abaixo ou igual ao mínimo, um novo pedido é acrescentado a uma relação pedidos. TRIGGERS Um trigger é uma instrução que o sistema executa automaticamente como um efeito colateral de uma modificação no banco de dados. Para criar um mecanismo de trigger, temos de cumprir dois requisitos:

Leia mais

Histórico de revisões

Histórico de revisões Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções

Leia mais

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL BANCO DE DADOS 2 SQL (CREATE TABLE, CONSTRAINTS, DELETE, UPDATE e INSERT) Prof. Edson Thizon SQL SQL ( structured query language ) é uma linguagem comercial de definição e manipulação de banco de dados

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

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

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

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

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

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

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

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

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

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

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

SQL comando SELECT. SELECT [DISTINCT] FROM [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

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

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

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro !"#$ Excepção: condição de erro; quando ocorre o erro é levantada uma excepção que interrompe o fluxo normal de execução do programa e o direcciona para uma rotina de tratamento

Leia mais

Linguagem SQL (Parte I)

Linguagem SQL (Parte I) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte I) Introduçã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

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

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS) BANCO DE DADOS SQL (DDL: CREATE TABLE, CONSTRAINTS) Prof. Edson Thizon Histórico Entre 1974 e 1979, o San José Research Laboratory da IBM desenvolveu um SGDB relacional que ficou conhecido como Sistema

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

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

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

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

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

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

BANCO DE DADOS Parte 4

BANCO DE DADOS Parte 4 BANCO DE DADOS Parte 4 A Linguagem SQL Introdução Desenvolvida pelo depto de pesquisa da IBM na década de 1970 (System R) Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

SQL. Hélder Antero Amaral Nunes

SQL. Hélder Antero Amaral Nunes SQL Hélder Antero Amaral Nunes 2 Introdução Desenvolvida pelo departamento de pesquisa da IBM na década de 1970 (System R); Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

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

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

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

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

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

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

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

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

CIÊNCIA E TECNOLOGIA DO RIO

CIÊNCIA E TECNOLOGIA DO RIO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE BANCO DE DADOS II Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia

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

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

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela

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

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

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma:

O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma: 1 CREATE TABLE O comando CREATE TABLE cria a tabela solicitada e obedece à seguinte forma: CREATE TABLE (), (

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

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

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 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas

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

Linguagem SQL Parte I

Linguagem SQL Parte I FIB - Centro Universitário da Bahia Banco de Dados Linguagem SQL Parte I Francisco Rodrigues Santos chicowebmail@yahoo.com.br Slides gentilmente cedidos por André Vinicius R. P. Nascimento Conteúdo A Linguagem

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

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

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS Esclarecimento Licenciamento de Uso Este documento é propriedade intelectual 2012 da NRSYSTEM COMÉRCIO E SERVIÇOS DE INFORMÁTICA LTDA-ME, consiste de uma compilação de diversos materiais entre livros,

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

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

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD SQL Server SGBD SQL Server Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD SQL Server Criação da Ligação ao SGBD Entrar no Microsoft SQL Server / Enterprise Manager Criar

Leia mais

SQL. Structured Query Language

SQL. Structured Query Language SQL Structured Query Language Construções básicas Junção de Tabelas Join O uso da operação JOIN numa cláusula FROM especifica como se deseja que as tabelas sejam vinculadas. Use INNER JOIN para associar

Leia mais

DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS.

DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS. DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS. PROFESSOR: DOUGLAS DUARTE DISCIPLINA: LPBD 5º SEMESTRE AULA 02 MYSQL O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza

Leia mais

Oracle 10g: SQL e PL/SQL

Oracle 10g: SQL e PL/SQL Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação

Leia mais

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis.

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis. UNISA Universidade de Santo Amaro http://www.unisa.br Material de Estudo Módulo I: Básico Banco de dados SQL Server http://www.unisa-sis.info Junho/2010 Objetivo do Workshop Compartilhar e apresentar

Leia mais

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

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

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

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

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 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

Linguagem SQL (Parte II)

Linguagem SQL (Parte II) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: contato@itatechjr.com.br Linguagem SQL (Parte II Introdução

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

MySQL - Operações com SQL básico

MySQL - Operações com SQL básico MySQL - Operações com SQL básico Para testar se o MySQL esta instalado corretamente, execute a seguinte linha no prompt do DOS: c:\mysql\bin\mysql Se tudo estiver nos seus devidos lugares você vai receber

Leia mais

MER e Conceitos gerais

MER e Conceitos gerais MER e Conceitos gerais IBGE 1)O Modelo de Entidades Relacionamentos, segundo Paulo Cougo, descreve o mundo como:... cheio de coisas que possuem características próprias e que se relacionam entre si. Essas

Leia mais