Consultoria e Treinamento em Bancos de Dados Relacionais

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

Download "Consultoria e Treinamento em Bancos de Dados Relacionais"

Transcrição

1 Tabela de conteúdos CREATE TABLE AS...1 CREATE DOMAIN...1 Funções de dados...2 Funções de data e hora...2 Funções de agregação...3 Expressões condicionais...4 CASE...4 COALESCE...4 NULLIF...4 Controle de concorrência e Transações LOCK...5 CREATE FUNCTION...5 Funções SQL...6 Funções nas linguagens procedurais...7 PL/pgSQL - Linguagem procedural SQL...7 Estrutura da linguagem PL/pgSQL...7 Declarações...8 Aliases para parâmetros de função...8 Instruções básicas...9 Estruturas de controle...9 CREATE TRIGGER...13 CREATE TABLE AS CREATE [ [ GLOBAL LOCAL ] { TEMPORARY TEMP } ] TABLE nome_da_tabela [ (nome_da_coluna [,...] ) ] AS consulta O comando CREATE TABLE AS cria uma tabela e a carrega com dados computados pelo comando SELECT, ou por um comando EXECUTE que executa um comando SELECT preparado. As colunas da tabela possuem os nomes e tipos de dado associados às colunas da saída do comando SELECT (exceto que é possível mudar os nomes das colunas fornecendo uma lista explícita de novos nomes de colunas). CREATE DOMAIN CREATE DOMAIN nome [AS] tipo_de_dado [ DEFAULT expressão ] [ restrição [... ] ] onde restrição é: [ CONSTRAINT nome_da_restrição ] { NOT NULL NULL CHECK (expressão) } O comando CREATE DOMAIN cria um domínio de dados. O usuário que cria o domínio se 1 de 14

2 torna o seu dono. Exemplo: CREATE DOMAIN cod_nacao char(2) NOT NULL; CREATE TABLE tbl_nacao (id integer, nacao cod_nacao); Funções de dados Funções de data e hora Função Tipo retornado Descrição Exemplo Resultado age(timestamp) interval Subtrai de hoje age(timestamp ' ') age(timestamp, timestamp) interval Subtrai os argumentos current_date date Data de hoje current_time time with time zone current_timestamp timestamp with time zone date_part(text, timestamp) date_part(text, interval) date_trunc(text, timestamp) extract(campo timestamp) extract(campo interval) from from double precision double precision Hora do dia Data e hora Retorna subcampo (equivale extract) Retorna subcampo ao timestamp Trunca na precisão especificada double precision double precision Retorna subcampo Retorna subcampo isfinite(timestamp) boolean Testa carimbo de hora finito (diferente de infinito) 43 years 8 mons 3 days 43 years 9 mons 27 days 20 date_part('month', interval '2 years 3 months') :00:00 age(' ', timestamp ' ') date_part('hour', timestamp ' :38:40') date_trunc('hour', timestamp ' :38:40') extract(hour from timestamp ' :38:40') 20 extract(month from interval '2 years 3 months') 3 isfinite(timestamp ' :28:30') True 2 de 14

3 Função Tipo retornado Descrição Exemplo Resultado isfinite(interval) boolean Testa intervalo finito now() timestamp with time zone Data e hora corrente (equivale ao current_timestam p) timeofday() text Data e hora corrente isfinite(interval '4 hours') true Funções de agregação Função Tipo do argumento Tipo retornado Descrição avg(expressão) min(expressão) smallint, integer, bigint, real, double precision, numeric ou interval qualquer tipo de dado numérico, cadeia de caracteres, data ou hora numeric para qualquer argumento de tipo inteiro, double precision para argumento de tipo ponto flutuante, caso contrário o mesmo tipo de dado do argumento o mesmo tipo de dado do argumento a média (média aritmética) de todos os valores de entrada valor mínimo da expressão entre todos os valores de entrada count(expressão) qualquer um bigint número de valores de entrada para os quais o valor da expressão não é nulo max(expressão) qualquer tipo de dado numérico, cadeia de caracteres, data ou hora o mesmo tipo de dado do argumento valor máximo da expressão entre todos os valores de entrada 3 de 14

4 Função Tipo do argumento Tipo retornado Descrição sum(expressão) smallint, integer, bigint, real, double precision, numeric ou interval bigint para argumentos smallint ou integer, numeric para argumentos bigint, double precision para argumentos de ponto flutuante, caso contrário o mesmo tipo de dado do argumento somatório da expressão para todos os valores de entrada Expressões condicionais CASE A expressão CASE do SQL é uma expressão condicional genérica, semelhante às declarações if/else de outras linguagens: CASE WHEN condição THEN resultado [WHEN...] [ELSE resultado] END COALESCE COALESCE(valor [,...]) A função COALESCE retorna o primeiro de seus argumentos que não for nulo. Só retorna nulo quando todos os seus argumentos são nulos. Geralmente é útil para substituir o valor padrão para mostrar valores nulos quando os dados são usados para exibição. Por exemplo: SELECT COALESCE(descrição, descrição_curta, '(nenhuma)')... Como a expressão CASE, a função COALESCE não processa argumentos que não são necessários para determinar o resultado; ou seja, os argumentos à direita do primeiro argumento que não for nulo não são avaliados. NULLIF NULLIF(valor1, valor2) A função NULLIF retorna o valor nulo se, e somente se, valor1 e valor2 forem iguais. Senão, retorna valor1. Pode ser utilizado para realizar a operação inversa do exemplo para COALESCE mostrado acima: SELECT NULLIF(valor, '(nenhuma)')... 4 de 14

5 Controle de concorrência e Transações [ WORK TRANSACTION ] O comando inicia um bloco de transação, ou seja, todos os comandos após o são executados em uma única transação, até ser encontrado um COMMIT ou ROLLBACK explícito. Por padrão (sem o ), o PostgreSQL executa as transações no modo de autoefetivação (autocommit), ou seja, cada comando é executado em sua própria transação e uma efetivação (commit) é realizada implicitamente no fim do comando, se a execução for bemsucedida, senão a transação é desfeita (rollback). LOCK LOCK [ TABLE ] nome [,...] [ IN modo_de_bloqueio MODE ] onde modo_de_bloqueio é um entre: ACCESS SHARE ROW SHARE ROW EXCLUSIVE SHARE UPDATE EXCLUSIVE SHARE SHARE ROW EXCLUSIVE EXCLUSIVE ACCESS EXCLUSIVE O comando LOCK TABLE obtém um bloqueio no nível de tabela aguardando, quando necessário, pela liberação de qualquer bloqueio conflitante. Uma vez obtido, o bloqueio é mantido pelo restante da transação corrente (Não existe o comando UNLOCK TABLE; os bloqueios são sempre liberados no final da transação). CREATE FUNCTION CREATE [ OR REPLACE ] FUNCTION nome ( [ tipo_do_argumento [,...] ] ) RETURNS tipo_retornado { LANGUAGE nome_da_linguagem IMMUTABLE STABLE VOLATILE CALLED ON NULL INPUT RETURNS NULL ON NULL INPUT STRICT [EXTERNAL] SECURITY INVOKER [EXTERNAL] SECURITY DEFINER AS 'definição' AS 'arquivo_objeto', 'símbolo_de_vínculação' }... [ WITH ( atributo [,...] ) ] O comando CREATE FUNCTION cria uma função. O comando CREATE OR REPLACE FUNCTION cria uma função, ou substitui uma função existente. Exemplos: Somar dois números inteiros CREATE FUNCTION soma(integer, integer) RETURNS integer AS 'select $1 + $2;' LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT; Somar dias a uma data A seguir está mostrada uma função sobrecarregada para somar dias a uma data. Pode ser utilizada com os tipos de dado date, timestamp e timestamp with time zone. CREATE OR REPLACE FUNCTION soma_dias(date,integer) RETURNS date AS ' 5 de 14

6 DECLARE nova_data date; nova_data := $1 + $2; RETURN nova_data; END; ' LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION soma_dias(timestamp,integer) RETURNS timestamp AS ' DECLARE nova_data timestamp; hora interval; hora := $1 - CAST($1 AS DATE); nova_data := CAST($1 AS DATE)+ $2; RETURN nova_data + hora; END; ' LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION soma_dias(timestamp with time zone,integer) RETURNS timestamp with time zone AS ' DECLARE nova_data timestamp with time zone; hora interval; hora := $1 - CAST($1 AS DATE); nova_data := CAST($1 AS DATE)+ $2; RETURN nova_data + hora; END; ' LANGUAGE plpgsql; Funções SQL As funções SQL executam uma lista arbitrária de declarações SQL, retornando o resultado da última consulta da lista. Se acontecer da última consulta não retornar nenhuma linha, é retornado o valor nulo. Abaixo está mostrada uma função mais útil, que pode ser utilizada para debitar de uma conta corrente no banco, retornando o saldo atualizado: CREATE TABLE conta_corrente { numero_da_conta serial, saldo numeric }; CREATE FUNCTION debitar (integer, numeric) RETURNS numeric AS ' UPDATE conta_corrente SET saldo = saldo - $2 WHERE numero_da_conta = $1; 6 de 14

7 SELECT saldo FROM conta_corrente WHERE numero_da_conta = $1; ' LANGUAGE SQL; CREATE TABLE emp ( nome text, salario integer, idade integer, id serial ); CREATE FUNCTION dobrar_salario(emp) RETURNS integer AS ' SELECT $1.salario * 2 AS salario; ' LANGUAGE SQL; SELECT nome, dobrar_salario(emp) AS sonho FROM emp WHERE emp.id = 1; Também é possível construir uma função que retorna um tipo composto. Abaixo está mostrado como exemplo uma função que retorna uma única linha da tabela emp: CREATE FUNCTION ver_empregado() RETURNS emp AS ' SELECT nome, salario, idade, id from emp where id = $1; ' LANGUAGE SQL; Abaixo está mostrado um exemplo da extração de um atributo de um tipo linha: SELECT ( ver_empregado()).nome; Todas as funções SQL podem ser utilizadas na cláusula FROM da consulta, mas esta situação é particularmente útil no caso das funções que retornam tipos compostos. Se a função for definida como retornando um tipo base, a função de tabela produz uma tabela de uma coluna. Se a função for definida como retornando um tipo composto, a função de tabela produz uma coluna para cada atributo do tipo composto. Abaixo segue um exemplo: SELECT * FROM novo_empregado(1) AS t1; Quando uma função SQL é declarada como retornando SETOF algum_tipo, a consulta SELECT no final da função é executada até o fim, e cada linha produzida é retornada como um elemento do conjunto resultado. CREATE or replace FUNCTION ver_empregado2(int) RETURNS SETOF emp AS ' SELECT * FROM emp WHERE id = $1; ' LANGUAGE SQL; SELECT * FROM ver_empregado2(1) AS t1; Funções nas linguagens procedurais As linguagens procedurais não estão construídas dentro do servidor PostgreSQL; são oferecidas como módulos carregáveis. PL/pgSQL - Linguagem procedural SQL Estrutura da linguagem PL/pgSQL A linguagem PL/pgSQL é estruturada em blocos. O texto completo da definição da função 7 de 14

8 deve ser um bloco. Um bloco é definido como: [ <<rótulo>> ] [ DECLARE declarações ] END; Todas as declarações e dentro do bloco são terminadas por ponto-e-vírgula. Todas as palavras chave e identificadores podem ser escritos misturando letras maiúsculas e minúsculas. As letras dos identificadores são convertidas implicitamente em minúsculas a menos que estejam entre aspas. Existem dois tipos de comentários no PL/pgSQL. O hífen duplo (--) começa um comentário que se estende até o final da linha. O /* começa um bloco de comentário que se estende até a próxima ocorrência de */. Os blocos de comentários não podem ser aninhados, mas comentários de hífen duplo podem estar contidos em blocos de comentários, e os hífens duplos escondem os delimitadores de bloco de comentário /* e */. Declarações Todas as variáveis utilizadas em um bloco devem ser declaradas na seção de declarações do bloco (A única exceção é a variável de laço do FOR interagindo sobre um intervalo de valores inteiros, que é automaticamente declarada como do tipo inteiro). As variáveis da linguagem PL/pgSQL podem possuir qualquer tipo de dado da linguagem SQL, tais como integer, varchar e char. Abaixo seguem alguns exemplos de declaração de variáveis: id_usuario integer; quantidade numeric(5); url varchar; minha_linha nome_da_tabela%rowtype; meu_campo nome_da_tabela.nome_da_coluna%type; uma_linha RECORD; A sintaxe geral para declaração de variáveis é: nome [ CONSTANT ] tipo [ NOT NULL ] [ { DEFAULT := } expressão ]; Aliases para parâmetros de função nome ALIAS FOR $n; Os parâmetros passados para as funções recebem como nome os identificadores $1, $2, etc. Opcionalmente, podem ser declarados aliases para os nomes dos parâmetros $n para melhorar a legibilidade do código. Tanto o aliás quanto o identificador numérico podem ser utilizados para fazer referência ao valor do parâmetro. Alguns exemplos: CREATE FUNCTION taxa_de_venda(real) RETURNS real AS ' DECLARE subtotal ALIAS FOR $1; RETURN subtotal * 0.06; END; ' LANGUAGE plpgsql; 8 de 14

9 Instruções básicas 1. Atribuições A atribuição de um valor a uma variável, ou a um campo de linha ou de registro, é escrita da seguinte maneira: identificador := expressão; 2. SELECT INTO O resultado de um comando SELECT que retorna várias colunas (mas apenas uma linha) pode ser atribuído a uma variável tipo-registro, a uma variável tipo-linha, ou a uma lista de variáveis escalares. É feito através de SELECT INTO destino expressões_de_seleção FROM...;... DECLARE registro_usuario RECORD; nome_completo varchar; SELECT INTO registro_usuario * FROM usuarios WHERE id=1; IF registro_usuario.pagina IS NULL THEN -- não há idade cadastrada RETURN 'Sem página'; END; Estruturas de controle 1. RETURN RETURN expressão; RETURN com uma expressão termina a função e retorna o valor da expressão para quem chama. 2. Condicionais As IF permitem executar os comandos com base em certas condições. O PL/pgSQL possui quatro formas de IF: IF... THEN IF... THEN... ELSE IF... THEN... ELSE IF IF... THEN... ELSIF... THEN... ELSE IF-THEN IF expressão_booleana THEN As IF-THEN são a forma mais simples de IF. As entre o THEN e o END IF são executadas se a condição for verdade. Senão, são saltadas. Exemplo: IF v_id_usuario <> 0 THEN 9 de 14

10 UPDATE usuarios SET = v_ WHERE id_usuario = v_id_usuario; IF-THEN-ELSE IF expressão_booleana THEN ELSE As IF-THEN-ELSE ampliam o IF-THEN permitindo especificar um conjunto alternativo de a ser executado se a condição for avaliada como falso. Exemplos: IF id_pais IS NULL OR id_pais = '''' THEN RETURN nome_completo; ELSE RETURN hp_true_filename(id_pais) ''/'' nome_completo; IF v_contador > 0 THEN INSERT INTO contador_usuarios (contador) VALUES (v_contador); RETURN ''t''; ELSE RETURN ''f''; IF-THEN-ELSE IF As IF podem ser aninhadas, como no seguinte exemplo: IF linha_demo.sexo = ''m'' THEN sexo_extenso := ''masculino''; ELSE IF linha_demo.sexo = ''f'' THEN sexo_extenso := ''feminino''; Na verdade, quando esta forma é utilizada uma instrução IF está sendo aninhada dentro da parte ELSE da instrução IF externa. Portanto, é necessária uma instrução END IF para cada IF aninhado, mais um para o IF-ELSE pai. Embora funcione, se torna entediante quando existem muitas alternativas a serem verificadas. Por isso existe a próxima forma. IF-THEN-ELSIF-ELSE IF expressão_booleana THEN [ ELSIF expressão_booleana THEN [ ELSIF expressão_booleana THEN...]] [ ELSE 10 de 14

11 ] A instrução IF-THEN-ELSIF-ELSE fornece um método mais conveniente para verificar muitas alternativas em uma instrução. Formalmente é equivalente aos comandos IF-THEN- ELSE-IF-THEN aninhados, mas somente necessita de um END IF. Abaixo está um exemplo: IF number = 0 THEN result := ''zero''; ELSIF number > 0 THEN result := ''positivo''; ELSIF number < 0 THEN result := ''negativo''; ELSE -- a única outra possibilidade é que o número seja nulo result := ''nulo''; 3. Loop LOOP A instrução LOOP define um laço incondicional, repetido indefinidamente até ser terminado por uma instrução EXIT ou RETURN. Nos laços aninhados pode ser utilizado um rótulo opcional na instrução EXIT, para especificar o nível de aninhamento que deve ser terminado. LOOP -- algum processamento IF contador > 0 THEN EXIT; -- sair do laço LOOP -- algum processamento EXIT WHEN contador > 0; -- o mesmo do exemplo acima 4. WHILE WHILE expressão LOOP A instrução WHILE repete a seqüência de enquanto a expressão for avaliada como verdade. A condição é verificada logo antes de cada entrada no corpo do laço. Por exemplo: 11 de 14

12 WHILE quantia_devida > 0 AND saldo > 0 LOOP -- algum processamento WHILE NOT expressão_booleana LOOP -- algum processamento 5. FOR (variação inteira) FOR nome IN [ REVERSE ] expressão.. expressão LOOP Esta forma do FOR cria um laço que interage num intervalo de valores inteiros. A variável nome é definida automaticamente como do tipo integer, e somente existe dentro do laço. As expressões que fornecem os limites inferior e superior do intervalo são avaliadas somente uma vez, ao entrar no laço. Normalmente o passo da interação é 1, mas quando REVERSE é especificado se torna -1. Alguns exemplos de laços FOR inteiros: FOR i IN LOOP -- algum processamento RAISE NOTICE ''i is %'', i; FOR i IN REVERSE LOOP -- algum processamento Se o limite inferior for maior do que o limite superior (ou menor do que, no caso do REVERSE), o corpo do laço não é executado nenhuma vez. Nenhum erro é gerado. 6. Laços através dos resultados da consulta Utilizando um tipo diferente de laço FOR, é possível interagir através dos resultados de uma consulta e manipular os dados. A sintaxe é: FOR registro_ou_linha IN comando_select LOOP -- aqui Cada linha do resultado da consulta (um comando SELECT) é atribuída, sucessivamente, a variável tipo-registro ou tipo-linha, e o corpo do laço é executado para cada linha. CREATE TRIGGER CREATE TRIGGER nome { BEFORE AFTER } { evento [ OR... ] } ON tabela [ FOR [ EACH ] { ROW STATEMENT } ] 12 de 14

13 EXECUTE PROCEDURE nome_da_função ( argumentos ) O comando CREATE TRIGGER cria um gatilho. O gatilho fica associado à tabela especificada e executa a função especificada nome_da_função quando determinados eventos ocorrem. O gatilho pode ser especificado para disparar antes de tentar realizar a operação na linha (antes das restrições serem verificadas e o comando INSERT, UPDATE ou DELETE ser tentado), ou após a operação estar completa (após as restrições serem verificadas e o INSERT, UPDATE ou DELETE ter completado). Se o gatilho for disparado antes do evento, o gatilho pode evitar a operação para a linha corrente, ou modificar a linha sendo inserida (para as operações de INSERT e UPDATE somente). Se o gatilho for disparado após o evento, todas as mudanças, incluindo a última inserção, atualização ou exclusão, são "visíveis" para o gatilho. Se o gatilho estiver marcado como FOR EACH ROW então é chamado uma vez para cada linha modificada pela operação. Por exemplo, um comando DELETE afetando 10 linhas faz com que todos os gatilhos ON DELETE da relação de destino sejam chamados 10 vezes, uma vez para cada linha excluída. Por outro lado, um gatilho marcado como FOR EACH STATEMENT somente executa uma vez para uma determinada operação, a despeito de quantas linhas sejam modificadas; em particular, uma operação que não modifica nenhuma linha ainda assim resulta na execução de todos os gatilhos FOR EACH STATEMENT aplicáveis. CREATE TABLE emp ( nome_emp text, salario integer, ultima_data timestamp, ultimo_usuario text ); CREATE FUNCTION emp_carimbo() RETURNS trigger AS ' -- Verificar se o nome do empregado foi fornecido IF NEW.nome_emp IS NULL THEN RAISE EXCEPTION ''O nome do empregado não pode ser nulo''; IF NEW.salario IS NULL THEN RAISE EXCEPTION ''% não pode ter um salário nulo'', NEW.nome_emp; -- Quem é que paga para trabalhar? IF NEW.salario < 0 THEN RAISE EXCEPTION ''% não pode ter um salário negativo'', NEW.nome_emp; -- Registrar que alterou o pagamento e quando NEW.ultima_data := ''now''; NEW.ultimo_usuario := current_user; RETURN NEW; END; ' LANGUAGE plpgsql; 13 de 14

14 CREATE TRIGGER emp_carimbo BEFORE INSERT OR UPDATE ON emp FOR EACH ROW EXECUTE PROCEDURE emp_carimbo(); 14 de 14

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

PL/pgSQL. Introdução. Introdução. Introdução

PL/pgSQL. Introdução. Introdução. Introdução Introdução PL/pgSQL Banco de Dados II Prof. Guilherme Tavares de Assis PL/pgSQL (Procedural Language for the PostgreSQL) é uma linguagem procedural carregável desenvolvida para o SGBD PostgreSQL, que possui

Leia mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

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

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

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

Oracle PL/SQL Overview

Oracle PL/SQL Overview Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade

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

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server

Leia mais

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com

PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com PostgreSQL o SGBD das 1001 linguagens Diogo Biazus diogob@gmail.com Um dos grandes diferenciais do PostgreSQL em relação à maioria dos outros sistemas de bancos de dados é a presença de diversas linguagens

Leia mais

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Página 2 Prgrama Teórico/Prático - SQL Linguagem

Leia mais

Triggers no PostgreSQL

Triggers no PostgreSQL Triggers no PostgreSQL Traduzido do manual do PostgreSQL Pode-se utilizar PL/pqSQL para a definição de triggers (gatilhos). Um procedimento do tipo trigger é criado com o comando CREATE FUNCTION, declarando

Leia mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) RETURNS INTEGER AS $$ DECLARE PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos

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

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,

Leia mais

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos Bases de Dados Stored procedures e triggers Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção

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

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

Bancos de Dados I. Integridade semântica

Bancos de Dados I. Integridade semântica Bancos de Dados I PUC-Rio Departamento de Informática (DI) Eng./Ciência da Computação e Sist. Informação Contrôle de Integridade em SGBDs: procedimentos armazenados, gatilhos e funções Prof. sergio@inf.puc-rio.br

Leia mais

SQL Gatilhos (Triggers)

SQL Gatilhos (Triggers) SQL Gatilhos (Triggers) Laboratório de Bases de Dados Gatilho (trigger) Bloco PL/SQL que é disparado de forma automática e implícita sempre que ocorrer um evento associado a uma tabela INSERT UPDATE DELETE

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

Instituto Educacional de Castro Tecnologia em Sistemas para Internet

Instituto Educacional de Castro Tecnologia em Sistemas para Internet Instituto Educacional de Castro Tecnologia em Sistemas para Internet Profº. Luciano R. Rocha INSTALAÇÃO E MANUTENÇÃO DE BANCO DE DADOS TIPOS DE DADO Nome Aliases Descrição bigint int8 inteiro de oito bytes

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br INTRODUÇÃO AO SQL Ferramentas brmodelo Ferramenta Case PostgreSQL versão 8 ou superior SGBD Em 1986 o American

Leia mais

Acadêmico: Fabiano Bender. Orientadora: Joyce Martins FURB 2012/2

Acadêmico: Fabiano Bender. Orientadora: Joyce Martins FURB 2012/2 Acadêmico: Fabiano Bender Orientadora: Joyce Martins FURB 2012/2 Introdução Objetivos Fundamentação teórica Desenvolvimento do aplicativo Resultados Conclusão Extensões Ampla utilização dos SGBDs Dificuldades

Leia mais

SQL DDL Criando Tabelas e Restrições

SQL DDL Criando Tabelas e Restrições SQL DDL Criando Tabelas e Restrições Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Comandos de Definição

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

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco 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

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

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

PostgreSQL 8.0. Diogo Biazus

PostgreSQL 8.0. Diogo Biazus PostgreSQL 8.0 Diogo Biazus PostgreSQL 7.X Totalmente ACID MVCC Tipos e operadores customizáveis Diversas linguagens procedurais Hot backup Código aberto (BSD) Facilidade de extensão PL/pgSQL, PL/Python,

Leia mais

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL Bases de Dados 2012/2013 Funções/procedimentos e triggers em PostgreSQL Helena Galhardas Bibliografia Manual referência PostgreSQL http://www.postgresql.org/docs/9.2/static/ plpgsql.html http://www.postgresql.org/docs/9.2/static/

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

Logado no OracleXE vamos acessar a opção:

Logado no OracleXE vamos acessar a opção: Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos

Leia mais

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

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

Linguagem PL/SQL e Triggers

Linguagem PL/SQL e Triggers TECNOLOGIA DE BASES DE DADOS Linguagem PL/SQL e Triggers António Manuel Silva Ferreira UNIVERSIDADE DE LISBOA FACULDADE DE CIÊNCIAS DEPARTAMENTO DE INFORMÁTICA asfe@di.fc.ul.pt Sumário Linguagem PL/SQL

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

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Modelo Físico Introdução

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

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

Triggers e mais... Instituto Militar de Engenharia IME 1o. Semestre/2005 Triggers Propósito mais amplo que restrições Restrições onde se explicita o evento Regras event-condition-action (ECA) Eventos:

Leia mais

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127 Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

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

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

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

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

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

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

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

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

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro ! Transact-SQL (T-SQL) Extensão ao SQL Permite controlo do fluxo de execução Permite comandos DDL (contrariamente ao PLSQL) T-SQL combina: poder de manipulação de dados

Leia mais

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.

Banco de Dados. StructuredQuery Language- SQL. Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo. Banco de Dados StructuredQuery Language- SQL Prof. Walteno Martins Parreira Jr www.waltenomartins.com.br waltenomartins@yahoo.com 2015 A Origem Em 1970, Ted Codd (pesquisador da IBM) publicou o primeiro

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

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS No Instituto Federal do Paraná tounou-se necessário o armazenamento de certas informações para controle de pessoal. Para armazenar tais dados é necessário saber que:

Leia mais

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl AVALIAÇÃO DA QUALIDADE DO CÓDIGO FONTE ESCRITO EM PL/SQL Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

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

Para criar uma procedure. Uma procedure é um grupo de comandos PL/SQL que realizam uma tarefa. OR REPLACE Recria a procedure se esta já existir.

Para criar uma procedure. Uma procedure é um grupo de comandos PL/SQL que realizam uma tarefa. OR REPLACE Recria a procedure se esta já existir. GERENCIANDO DADOS E CONCORRÊNCIA Pl/SQL PL/SQL significa "Procedural Language extensions to SQL". O PL/SQL pode ser usado em bancos de dados Oracle, no Oracle Server, em ferramentas clientes, isto é, Oracle

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

Introdução a Stored Procedures e Triggers no Firebird

Introdução a Stored Procedures e Triggers no Firebird Introdução a Stored Procedures e Triggers no Firebird Por Bill Todd, Borland Developers Conference San Diego 2000 Traduzido e adaptado com autorização do autor por: Alessandro Cunha Fernandes, Comunidade

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

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

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

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

Banco de Dados Avançados Banco de Dados Ativo

Banco de Dados Avançados Banco de Dados Ativo Universidade Federal de Pernambuco Centro de Informática Banco de Dados Avançados Banco de Dados Ativo Equipe: Felipe Cavalcante Fernando Kakimoto Marcos Corrêa Sumário 1. Mini-Mundo... 3 1.1 Entidades...

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

Manual de Referência do Derby. Version 10 Derby Document build: December 11, 2006, 7:17:42 AM (PST)

Manual de Referência do Derby. Version 10 Derby Document build: December 11, 2006, 7:17:42 AM (PST) Manual de Referência do Derby Version 10 Derby Document build: December 11, 2006, 7:17:42 AM (PST) Contents Direitos autorais reservados... 7 Sobre este documento...8 Finalidade deste documento...8 Audiência...

Leia mais

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

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

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definiçã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

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

Monitoria GDI Aula Prática. DML + PL/SQL parte 1

Monitoria GDI Aula Prática. DML + PL/SQL parte 1 Monitoria GDI Aula Prática DML + PL/SQL parte 1 DML linguagem de manipulação de dados SQL Estrutura básica de uma consulta SQL SELECT Coluna1[,Coluna2[,Coluna3[,...]]] FROM Tabela1[,Tabela2[,...]] WHERE

Leia mais

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 Relatório Projecto de Base de Dados Parte 2 Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 1. Criação da base de dados De seguida vem escrito um script

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

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak

Usando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak Usando PostgreSQL na Regra de Negócio de um ERP Fabiano Machado Dias Eduardo Wolak Regra de negócio? São todas as regras existentes num sistema de informação, que ditam seu comportamento, suas restrições

Leia mais

APOSTILA PHP PARTE 1

APOSTILA PHP PARTE 1 APOSTILA PHP PARTE 1 1. Introdução O que é PHP? PHP significa: PHP Hypertext Preprocessor. Realmente, o produto foi originalmente chamado de Personal Home Page Tools ; mas como se expandiu em escopo, um

Leia mais

Oracle 10g Dicas de PL/SQL. Conteúdo

Oracle 10g Dicas de PL/SQL. Conteúdo Oracle 10g Dicas de PL/SQL Conteúdo Objetivos... 2 Comentários... 2 Declarações... 2 Conversões de variáveis... 2 DDL Criar, alterar ou apagar tabelas Create, Alter or Drop table... 3 Restrições na criação

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

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

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados Capitulo 2 1. MODELO LÓGICO DE BANCO DE DADOS... 2 1.1 Definição... 2 1.2 Mapeando o modelo conceitual para o modelo lógico... 2 1.2 Dicionário de dados... 3 2. MODELO FÍSICO DO BANCO DE DADOS... 4 2.1

Leia mais

SQL - Criação de Tabelas

SQL - Criação de Tabelas SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas

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

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

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

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

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

2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = 10... 10 X 10 = 100 1 X 2 = 2...

2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = 10... 10 X 10 = 100 1 X 2 = 2... 1. Criar um bloco PLSQL anônimo para imprimir a tabuada abaixo: 5 X 1 = 5 5 X 2 = 10... 5 X 10 = 50 V_N CONSTANT NUMBER(2) := 5; FOR I IN 1..10 LOOP DBMS_OUTPUT.PUT_LINE(V_N ' X ' I ' = ' V_N*I); 2. Criar

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

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

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

Acesso a Bancos de Dados (JDBC) Autor: Cleyton Maciel (clayton.maciel@ifrn.edu.br) Adaptação: Pedro Baesse (pedro.baesse@ifrn.edu.

Acesso a Bancos de Dados (JDBC) Autor: Cleyton Maciel (clayton.maciel@ifrn.edu.br) Adaptação: Pedro Baesse (pedro.baesse@ifrn.edu. Acesso a Bancos de Dados (JDBC) Autor: Cleyton Maciel (clayton.maciel@ifrn.edu.br) Adaptação: Pedro Baesse (pedro.baesse@ifrn.edu.br) JDBC Conceito Tipos Transações Tipos SQL e JAVA Conexão JDBC Implementação

Leia mais

Controle de Concorrência. Banco de Dados II Profa. Késsia R. C. Marchi

Controle de Concorrência. Banco de Dados II Profa. Késsia R. C. Marchi Controle de Concorrência Banco de Dados II Profa. Késsia R. C. Marchi Transação Transação é uma unidade lógica de trabalho, envolvendo diversas operações de bancos dados. C. J. Date Uma transação inicia-se,

Leia mais

Laboratório de Banco de Dados II

Laboratório de Banco de Dados II Laboratório de Banco de Dados II Esquema de um banco de dados relacional Em aulas anteriores, vocês implantaram um projeto físico de banco de dados com todos os seus elementos, inclusive tratando do projeto

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

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

Manipulando Strings no VBA (Replace, Mid e InStr)

Manipulando Strings no VBA (Replace, Mid e InStr) Manipulando Strings no VBA (Replace, Mid e InStr) por Eduardo Vieira Machado (Good Guy) Hoje gostaria de tratar de um assunto bastante atraente no Access e que é muito trabalhado nas empresas - a manipulação

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