SQL Procedural Junho/2006.

Slides:



Advertisements
Apresentações semelhantes
Gerenciamento de Dados e Informação Estudo de caso – PL/SQL
Advertisements

Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,
Triggers Marilde Santos.
Sequences Marilde Santos. O que são Sequences? Valores sequenciais podem ser gerados automaticamente pelo Oracle com o uso de sequences. A sequence gera.
Manipulação de Arquivos de Dados
Java: Comandos Básicos
VHDL Very High Speed Integrated Circuit Hardware Description Language Prof. Eduardo Todt 2008.
VHDL - uma visão geral 5 tipos de unidades
VHDL Introdução Paulo C. Centoducatte fevereiro de 2005
VHDL - Tipos de dados e operações
While While Condição // comandos End While. Exemplos While Var contador As Integer contador = 0 While (contador < 10) contador += 1 console.ConsoleWrite(contador)
1 A Linguagem SQL Todo Banco de Dados apresenta uma Linguagem para definição e uma para manipulação de dados. Com relação aos Bancos de Dados Relacionais,
Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
SCC Bancos de Dados e Suas Aplicações
PL/SQL (Procedural Language/Structured Query Language)
Procedimentos e Funções
Html5- Desenvolvendo Aplicações. Html5- Introdução a SQL Métodos OpenDatabase (utilizado para criar ou abrir uma Base de Dados); Transaction (permite.
GRAFOS. Motivação Muitas aplicações em computação necessitam considerar conjunto de conexões entre pares de objetos: –Existe um caminho para ir de um.
Grupo Paralelismo – Unesp RC
FORTRAN 90 Denise Yumi Takamura.
SQL procedural – parte 2.
Subconsultas em SQL. Subconsulta Estrutura geral SELECT.... FROM.... WHERE [at] OPERADOR ( SELECT... FROM... [WHERE... ]) Declaração SELECT localizada.
BDOO. Modelos tradicionais (relacional, rede e hierárquico) : aplicações tradicionais Novas aplicações para : Sistemas CAD Manufatura Experimentos científicos.
Funções de Linha 17/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
Introdução à Consulta 24/3/06. Categorias de comandos DDL : estruturação de objetos de BD Ex. create table, drop index, alter table... DML: manipulação.
Funções de Linha 24/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Objeto de BD: visão Há 2 tipos de tabelas Tabela base
Sintaxe de Fortran 25/abril/2006. Comandos Fortran PROGRAM PRINT READ STOP END.
Sql-3 ( final ).
Introdução ao Fortran 4/abril/2006. Pseudocódigo Compreensão do problema Elaboração da lógica de resolução Tradução da lógica para pseudocódigo.
Estrutura de repetição 18/set. Uso Foi construído o problema de ler notas de um aluno e fazer média. E para 5 alunos ????
Teste Estrutural de Software
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 Serviço Worb Treinamento no GRADEp Serviço Worb WorbDemo.
Banco de Dados I Profa. Jiani Cardoso 2/2005
CES-41 COMPILADORES Capítulo VII Código Intermediário.
Formação de Administradores de Redes Linux LPI – level 1 SENAC TI Fernando Costa SQL (Structure Query Language)
Curso Técnico em Informática La Salle - Canoas
Professor (a): Oscar Luiz Monteiro de Farias Aluno (a): Andressa da Silva Siqueira Matricula: Universidade do Estado do Rio de Janeiro.
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Stored Procedure, Function and Trigger
Transporte Escolar Fluvial
Microsoft SQL Server 2008 SPARSE. Ambiente de teste Uma tabela é criada com 3 campos: CREATE TABLE [dbo].[Cliente_com_campos_basicos] ( [IdCliente] int.
Usando Java no Oracle Por Edson Almeida Junior
Prof. Eduardo Mantovani Prof. Fábio de P. Santos AES 2007.
WEKA. Roteiro Introdução Conceitos Exemplos práticos Chamada ao aplicativo.
PL/SQL, Procedures e Funções
Monitoria GDI Aula Prática
Equipe de monitoria Aula prática 3.  Caso de estudo  Igualando situações  Cursor  Function  Procedure  Trigger  Package  Surpresa...
Primeira aula de PL/SQL Parte II
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Funções ou procedures Professor Esp. Diego André Sant’Ana
Cursor Professor Esp. Diego André Sant’Ana
III – Oracle 10g Coleções. Introdução Coleção: formada de objetos do mesmo tipo, cada um com um índice (posição) único dentro da coleção –NESTED TABLE.
RT-EXPERT Artis Corp. C calling program RTSUB [rule set subroutine] RTSUB [rule set subroutine] RTSUB [rule set subroutine]... DSL Decision Support Language.
SEQUENCE, PROCEDURE, FUNÇÃO, TRIGGER
Monitoria GDI Aula Prática
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
CASE WHEN THEN ELSE END Professor Esp. Diego André Sant’Ana Disciplina: Banco de Dados II professordiegosantana.wordpress.com.
Aula 13 - Triggers. Triggers no SGBD Postgres  Os Triggers (Gatilhos) são funções preparadas para serem disparadas no caso de alguma alteração ocorrer.
Banco de Dados II Prof: Márcio Soussa Curso de Sistemas de Informação Faculdades Jorge Amado.
© 2013 IST Bases de Dados 2012/2013 Triggers e funções/procedimentos e em MySQL Helena Galhardas.
Banco de Dados I Desenho de Bancos de dados Relacionales
BANCO DE DADOS Araújo Lima Out / 2017 Araújo.
BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
MS-SQL Server Structure Query Language
PL/SQL Triggers e Procedures
Transcrição da apresentação:

SQL Procedural Junho/2006

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 : Transact-SQL

SQL Procedural Vantagens Melhor performance Suporte da linguagem SQL Portabilidade

SQL Procedural Suporte a módulos de linguagem Cursores Estrutura de Seleção Estrutura de Loop Combinação com SQL declarativo Combinação com transações Tratamento de exceções Suporte a escopo de variáveis Suporte aos tipos primitivos, complexos e domínios ( definidos pelo usuário)

Formato geral cabeçalho CREATE FUNCTION name ( [ [ argname ] argtype [, ...] ] ) RETURNS rettype Ex. CREATE FUNCTION atualizaValor ( varchar ) RETURNS boolean

Formato geral cabeçalho CREATE [ OR REPLACE ] FUNCTION cria e especifica o tipo de objeto ( função/procedure) name ( [ [ argname ] argtype [, ...] ] ) RETURNS rettype Ex. CREATE FUNCTION atualizaValor ( varchar ) RETURNS boolean

Formato geral cabeçalho CREATE [ OR REPLACE ] FUNCTION name ( [ [ argname ] argtype [, ...] ] ) especifica o nome do objeto função RETURNS rettype Ex. CREATE FUNCTION atualizaValor ( varchar ) RETURNS boolean

Formato geral cabeçalho CREATE [ OR REPLACE ] FUNCTION name ( [ [ argname ] argtype [, ...] ] ) especifica o(s) parâmetro(s) da função, se houver RETURNS rettype Ex. CREATE FUNCTION atualizaValor ( varchar ) RETURNS boolean

Formato geral cabeçalho CREATE [ OR REPLACE ] FUNCTION name ( [ [ argname ] argtype [, ...] ] ) RETURNS rettype especifica o tipo de retorno a ser esperado da invocação da função Onde rettype pode ser : Tipo primitivo Estrutura composta Tipo do domínio Coluna de tabela

Formato geral cabeçalho CREATE [ OR REPLACE ] FUNCTION name ( [ [ argname ] argtype [, ...] ] ) RETURNS rettype especifica o tipo de retorno a ser esperado da invocação da função Onde rettype pode ser : Tipo primitivo Estrutura composta Tipo do domínio Coluna de tabela

Aspecto de função ‘ ’Language plpgsql ; CREATE FUNCTION name ( [[ argname ] argtype [, ...] ] ) RETURNS rettype AS ‘ … declarações … ’Language plpgsql ; Language pode ser C, sql, plpgsql

Aspecto do corpo da função CREATE FUNCTION name ( [[ argname ] argtype [, ...] ] ) RETURNS rettype AS ‘Declare variavel tipo ; Begin variavel := 20 ; return ?? End; ’Language plpgsql ;

Exemplo Na tabela Aluno Criar função armazenada ( “stored procedure”) para atualizar o valor currículo do aluno. Parâmetros valor novo para currículo Num_matricula Tipo do retorno: boolean

Exemplo CREATE FUNCTION atualizaCurriculo(varchar, varchar) RETURNS boolean AS $$ BEGIN UPDATE aluno SET curriculo = $1 WHERE num_matricula = $2; RETURN FOUND; END; LANGUAGE 'plpgsql' ; $1, $2 são parâmetros passados pela chamada da função FOUND : palavra reservada do sistema; booleano que retorna true sse houve alteração

Binding da SP Postgres SP criada com sucesso (“compilada”) Binding significa invocação da SP ! Postgres select suaFuncao( [parametros]); Mysql call suaFuncao([parametros]) SQL-Server exec suaFuncao([parametros])

Binding da SP/SF select atualizaCurriculo('CX','90')

Estudo de caso: plpgsql Tipos utilizáveis Estrutura de loop Estrutura de seleção Cursores transações

Atributos Facilitar manuseio dos objetos de BD ROWTYPE TYPE

Pgplsql: atributo ROWTYPE Estrutura flexível Acomoda a estrutura da tabela Dinâmico Sintaxe Variavel nomeTabela%rowtype

Pgplsql: ROWTYPE create function exibeLinhaAluno ( varchar ) returns text as $$ declare linha aluno%rowtype ; begin select * from aluno into linha where num_matricula like $1 ; return linha.nome || ',' || linha.num_matricula ; end; $$ LANGUAGE plpgsql;

Pgplsql: RECORD Estrutura mais flexível que rowtype Acomoda a estrutura durante FOR/LOOP Dinâmico NÃO é um tipo realmente Sintaxe Variavel RECORD ;

Plpgsql: estruturas de seleção IF ... THEN IF ... THEN ... ELSE IF ... THEN ... ELSE IF IF ... THEN ... ELSIF ... THEN ... ELSE IF ... THEN ... ELSEIF ... THEN ... ELSE 5 formas O bloco sempre deve fechar com END IF ;

Plpgsql: estruturas de seleção IF condição THEN comandos; ELSE END IF;

Plpgsql: estruturas de repetição FOR..LOOP LOOP WHILE ... LOOP

Plpgsql: FOR...LOOP Variável para FOR pode ser RECORD ou ROW DECLARE reg RECORD; BEGIN FOR reg IN consulta LOOP comandos END LOOP;

Plpgsql: FOR...LOOP FOR i IN 1..10 LOOP RAISE NOTICE 'i is %', i; END LOOP; FOR i IN REVERSE 10..1 LOOP -- comandos

FOR..LOOP e RECORD create or replace function exibeLinhaAluno () returns boolean as $$ declare linha record ; begin FOR linha IN select * from aluno order by num_matricula LOOP RAISE NOTICE '%', linha.nome ; END LOOP; return FOUND; end; $$ LANGUAGE plpgsql; Chamada : select exibeLinhaAluno();

WHILE LOOP WHILE (condicao_v) LOOP END LOOP; Teste no início declarações END LOOP; Teste no início

LOOP LOOP END LOOP; Incondicional Uso de EXIT ou RETURN para saída declarações END LOOP; Incondicional Uso de EXIT ou RETURN para saída

EXIT EXIT; EXIT WHEN condição ;