CASE WHEN THEN ELSE END Professor Esp. Diego André Sant’Ana Disciplina: Banco de Dados II professordiegosantana.wordpress.com.

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Gerenciamento de Dados e Informação Estudo de caso – PL/SQL
Banco de Dados Aula 10 – SQL - DDL
Triggers Renata Viegas.
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Restrições de Integridade
Introdução à Engenharia da Computação
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
SQL Procedural Junho/2006.
SQL procedural – parte 2.
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Banco de dados Profª Kelly Medeiros.
PostgreSQL.
Variáveis, Tipos de Dados e Constantes
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
Bancos de Dados Espaciais
PL/SQL, Procedures e Funções
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
Monitoria GDI Aula Prática
Tipos de Linguagens do Banco de Dados
Equipe de monitoria Aula prática 3.  Caso de estudo  Igualando situações  Cursor  Function  Procedure  Trigger  Package  Surpresa...
O Portal do Estudante de Computação
Equipe de monitoria Aula prática 4
Primeira aula de PL/SQL Parte II
SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO
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 – O Modelo OR Estudo de Caso, modelo Oracle 10g.
III – Oracle10g Funções que Manipulam Apontadores.
SEQUENCE, PROCEDURE, FUNÇÃO, TRIGGER
Monitoria GDI Aula Prática
Desenvolvendo um script SQL
VIEW - VISÕES Professor Esp. Diego André Sant’Ana
BANCOS DE DADOS ATIVOS Weyler M Lopes © Especialização em Banco de Dados.
Baseado no material do Professor Raul Paradeda
Monitoria GDI Aula Prática Aula 2: PL 1. Estudo de caso - continuação Pegar arquivo GDI.zip em Descompactar arquivo: o criacaoTabelas.SQL.
Computação Eletrônica
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
SCC Bancos de Dados e Suas Aplicações
Comandos SQL e Funções Professor Esp. Diego André Sant’Ana
III – Oracle 9i Indexação. Índices Baseados em Funções É um índice baseado no valor de retorno de uma expressão ou função –A função pode ser um método.
Banco de Dados I I Comandos SQL
Comandos Alias, Joins, Funções e Índice Professor Esp. Diego André Sant’Ana Disciplina: Banco de Dados II professordiegosantana.wordpress.com.
©Silberschatz, Korth and Sudarshan (modificado)9.2.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
Conceitos de SGBD Objeto-Relacional Oracle 10g [2] Monitoria GDI André Braga, Daniel Penaforte, Domingos Ribeiro, João Pascoal, Maria Carolina.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
Criar Tabelas Professor Esp. Diego André Sant’Ana Disciplina: Banco de Dados II.
7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e.
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
Conceitos básicos Professor Esp. Diego André Sant’Ana
Prof. Renato de Oliveira Bastos
VBA – Visual Basic para Aplicativos
Linguagem de definição de dados - SQL
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
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.
Linguagem de Programação de Banco de Dados Procedimentos Armazenados.
2/6/2016 José Antônio da Cunha - CEFET - RN1 Programação de Banco de Dados Funções.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Recursos de Programação
BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.
Transcrição da apresentação:

CASE WHEN THEN ELSE END Professor Esp. Diego André Sant’Ana Disciplina: Banco de Dados II professordiegosantana.wordpress.com

O que é case É uma expressão condicional existente no SQL que faz a função similar do if/else. CASE WHEN (CONDICAO) THEN (VALOR) ELSE (VALOR) END

Exemplo SELECT CASE WHEN A.SEXO='F' THEN 'FEMININO' WHEN A.SEXO='M' THEN 'MASCULINO' ELSE 'INDEFINIDO' END, CASE A.SEXO WHEN 'F' THEN 'FEMININO' WHEN 'M' THEN 'MASCULINO' ELSE 'INDEFINIDO' END FROM (SELECT 'F' AS SEXO UNION ALL SELECT 'M' UNION ALL SELECT 'I' ) A

Exemplo select NOME_ALUNO, case when idade<18 then 'MENOR DE IDADE' else 'MAIOR DE IDADE' end AS STATUS_IDADE from prova.aluno

Exemplo SELECT CASE WHEN NOME_ALUNO ILIKE 'ANA%' THEN NOME_ALUNO||' IFMS' ELSE NOME_ALUNO END FROM PROVA.ALUNO

Exemplo SELECT IDADE, CASE IDADE%2 WHEN 0 THEN 'PAR' WHEN 1 THEN 'IMPAR' END FROM PROVA.ALUNO

Funções ou procedures Professor Esp. Diego André Sant’Ana Disciplina: Banco de Dados II professordiegosantana.wordpress.com

Exemplo de funções As funções que utilizamos que já existe e o AVG(),MAX(),MIN(), NOW() e etc.

Estrutura básica CREATE OR REPLACE FUNCTION nome_da_funcao ( parametros ) RETURNS tipo_retorno AS $$ DECLARE --declaracao de variaveis BEGIN --conteudo da funcao END; $$ LANGUAGE linguagem;

Função soma CREATE OR REPLACE FUNCTION get_soma( integer,integer) RETURNS integer AS $$ DECLARE soma INTEGER; BEGIN return $1+$2; END; $$ LANGUAGE 'plpgsql'; select get_soma(2,3)

Função divisão CREATE OR REPLACE FUNCTION get_divisao ( integer,integer) RETURNS integer AS $$ DECLARE soma INTEGER; BEGIN return $1/$2; END; $$ LANGUAGE 'plpgsql'; select get_divisao(2,3)

Função IMC CREATE OR REPLACE FUNCTION get_imc( peso integer,altura numeric) RETURNS numeric AS $$ DECLARE soma INTEGER; BEGIN return $1/($2*2); END; $$ LANGUAGE 'plpgsql'; select get_imc (2,3)

Crie a tabela CREATE TABLE usuario ( id integer NOT NULL, nm_login character varying, ds_senha character varying, fg_bloqueado boolean, nu_tentativa_login integer, CONSTRAINT pk_usuario PRIMARY KEY (id) );

Criar a função CREATE OR REPLACE FUNCTION get_id ( varchar ) RETURNS integer AS $$ DECLARE variavel_id INTEGER; BEGIN SELECT INTO variavel_id id FROM usuario WHERE nm_login = $1; RETURN variavel_id; END; $$ LANGUAGE 'plpgsql';

Sobre a função A função acima (chamada get_id) recebe como parâmetro um VARCHAR e retorna um INTEGER, e funciona da seguinte forma: - declara uma variável chamada variavel_id, do tipo INTEGER; - faz um select na tabelas de usuário onde a coluna nm_login é igual ao varchar recebido como parâmetro, e colocar o valor de id encontrado dentro da variável variavel_id (através do comandoSELECT INTO); - retorna a variavel_id. O $1 representa o primeiro parâmetro recebido, o $2 o segundo, e assim por diante.

Para executar SELECT get_id( 'joao' );

Exemplo de função CREATE OR REPLACE FUNCTION set_tentativa_login ( VARCHAR, VARCHAR ) RETURNS VOID AS $$ DECLARE registro RECORD; tentativas INTEGER; BEGIN SELECT INTO registro id, fg_bloqueado, nu_tentativa_login FROM usuario WHERE nm_login = $1 AND ds_senha = $2; IF registro IS NULL THEN SELECT INTO tentativas nu_tentativa_login FROM usuario WHERE nm_login = $1; tentativas := tentativas + 1; IF tentativas > 2 THEN UPDATE usuario SET nu_tentativa_login = tentativas, fg_bloqueado = TRUE where nm_login = $1; ELSE UPDATE usuario SET nu_tentativa_login = tentativas where nm_login = $1; END IF; ELSE UPDATE usuario SET nu_tentativa_login = 0 where nm_login = $1; END IF; END; $$ LANGUAGE 'plpgsql';

Exemplo de chamada login SELECT set_tentativa_login( 'hallan', 'senha_errada' ); SELECT set_tentativa_login( 'maria', 'senha_errada' ); SELECT set_tentativa_login( 'hallan', 'hallan2011' );

REFERÊNCIAS nco-de-dados-tutorial/postgresql-funcoes/