Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

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

SQL Procedural. Josino Rodrigues Neto

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Oracle Database: Fundamentos de SQL e PL/SQL

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

Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Uniao Educacional e Tecnologica Impacta- Uni Impacta

Logado no OracleXE vamos acessar a opção:

Banco de Dados II. PL/SQL Introdução. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

ESTUDO DE CASO EM PL/SQL

Administração de Banco de Dados

Funções Definidas pelo Usuário

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

BD II (SI 587) Procedimentos Armazenados

Tarefa Orientada 17 Scripts

Tratamento de Exceções

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Oracle Database 10g: Fundamentos de SQL e PL/SQL


Prof. Josenildo Silva

Monitoria GDI. Aula Prática. OR (Aula 1)

f. Exemplo: verificar condição de aprovação de alunos

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

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

Oracle PL/SQL Overview

IMPLEMENTAÇÃO DE BANCO DE DADOS

Banco de Dados I Introdução SQL

Oracle Database 12c: Introdução ao SQL Ed. 2

Linguagem SQL Restrições, Triggers e Views

Oracle Database 11g: Introdução à Linguagem SQL Novo

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

Stored Procedures e Triggers

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

Banco de Dados PLPGSQL. Prof. Dr. Joel da Silva

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

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

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Triggers(Gatilhos) Tiago Alves de Oliveira

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

Projeto de Banco de Dados

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

Fundamentos de Banco de Dados Postgre com Sql

Linguagem de Consulta Estruturada SQL- DML

Triggers em SQLite. Fernando Lobo. Base de Dados, Universidade do Algarve

Oracle Database 12c: Programando com PL/SQL Ed. 2

Page 1. Prof. Constantino Jacob

Laboratório de Banco de Dados II AULA 06 Linguagem SQL (Continuação) Prof. Érick de Souza Carvalho

SQL Gatilhos (Triggers)

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

ANÁLISE E PROJETO DE BANCO DE DADOS

BANCO DE DADOS GERENCIAL 1 A U L A 2

A linguagem SQL

Comandos Auxiliares. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Monitor: Marcus Vinícius Custódio

FERRAMENTA DE APOIO A REESTRUTURAÇÃO DE CÓDIGO FONTE EM LINGUAGEM PL/SQL BASEADO EM PADRÕES DE LEGIBILIDADE

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL

Roteiro 10: Consultas com várias tabelas/operadores de busca

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

Laboratório de Banco de Dados

Revisão de Bancos de Dados

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

Oracle 10g: SQL e PL/SQL

LogMiner Além do FlashBack Query

SQL Server Desenvolvedor

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

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

PL/pgSQL por Diversão e Lucro

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

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

Utilizando o Postgres - comandos SQL para a manipulação de dados

Transcrição:

Fundamentos de Programação ORACLE: SQL. 1 Prof. Walter Gima walter_gima@yahoo.com.br

ALIAS RELACIONAMENTOS TO_CHAR SYSDATE ROWNUM CONCATENAÇÃO PROCEDURES FUNCTIONS 2

ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um apelido para as tabelas, no exemplo abaixo a tabela cidade ganhou o apelido de c e estado e, então o uso dos apelidos substitui o nome das tabelas. Exemplo com o nome das tabelas: SELECT cidade.codigo, cidade.descricao, estado.codigo, estado.descricao FROM cidade inner join estado on cidade.codigo_estado = estado.codigo Exemplo com o ALIAS SELECT c.codigo, c.descricao, e.codigo, e.descricao FROM cidade c inner join estado e on c.codigo_estado = e.codigo 3

ALIAS O apelido também pode ser utilizado com os campos que serão exibidos no SELECT: - SELECT descricao NOME FROM cidade - SELECT descricao "NOME DA CIDADE" FROM cidade (como o apelido é composto é preciso utilizar aspas ) 4

TO_CHAR TO_CHAR(DATAS e HORAS) Sintaxe: TO_CHAR (d[,formato[,params_de_nls]]) Converte a data ou registro de data/hora (timestamp) em uma string de caractere VARCHAR2. Se o formato for especificado, ele é utilizado para controlar como resultado é estruturado. Exemplo: SELECT TO_CHAR (SYSDATE, 'DD-MON-YYYY HH24:MI:SS') DATA HORA FROM DUAL; SELECT TO_CHAR (SYSDATE, 'DD-MM-YYYY HH24:MI:SS') DATA HORA FROM DUAL; SELECT TO_CHAR (SYSDATE, 'DD/MON/YYYY HH24:MI:SS') DATA HORA FROM DUAL; 5

TO_CHAR TO_CHAR(Números) Sintaxe: TO_CHAR (num[,formato[,params_de_nls]]) Converte argumento NUMBER de um num em um VARCHAR. Se especificado, formato governa a conversão. Se o formato não for especificado, a string resultante terá exatamente tantos caracteres quantos necessários para conter os dígitos significativos de um num. Exemplo: SELECT TO_CHAR(123456, '99G99G99') RESULTADO FROM DUAL (a legra G coloca um ponto na saída da consulta) SELECT TO_CHAR(123456, '999,999.99') RESULTADO FROM DUAL SELECT TO_CHAR(1234, '999,999.99') RESULTADO FROM DUAL 6

Conversão de Dados TO_DATE(Números) Sintaxe: TO_CHAR (num[,formato[,params_de_nls]]) Converte argumento NUMBER de um num em um VARCHAR. Se especificado, formato governa a conversão. Se o formato não for especificado, a string resultante terá exatamente tantos caracteres quantos necessários para conter os dígitos significativos de um num. Exemplo: SELECT TO_CHAR(123456, '99G99G99') RESULTADO FROM DUAL (a legra G coloca um ponto na saída da consulta) SELECT TO_CHAR(123456, '999,999.99') RESULTADO FROM DUAL SELECT TO_CHAR(1234, '999,999.99') RESULTADO FROM DUAL 7

SYSDATE Função que retorna data/hora atual do sistema. Exemplos: SELECT SYSDATE FROM DUAL; INSERT INTO frete values (10, SYSDATE, 'FRETE DE ENTREGA DE SOJA', 1, 1, 1, 100, 1000); 8

SYSDATE add_months SELECT add_months(sysdate, 1) FROM dual; Adicionar Dias SELECT SYSDATE + 7 FROM dual; Mais funções para trabalhar com data http://66.221.222.85/reference/date_func.html 9

ROWNUM Limitar a visualização de uma consulta: select * from funcionario where rownum <= 3 10

Concatenação OPERADOR DE CONCATENAÇÃO PARA JUNTAR CAMPOS TEXTO SELECT CODIGO ' - ' NOME FUNCIONARIOS FROM FUNCIONARIO 11

PROCEDURES/FUNCTION Procedures e Functions são blocos PL/SQL nomeados que podem aceitar argumentos (também chamado de parâmetros) e podem ser chamadas por um programa, uma sessão SQL ou uma trigger. 12

PROCEDURES/FUNCTION Onde: REPLACE - indica que caso a procedure exista ela será eliminada e substituída pela nova versão criada pelo comando; BLOCO PL/SQL - inicia com uma cláusula BEGIN e termina com END ou END nome_da_procedure; NOME_DA_PROCEDURE - indica o nome da procedure; PARÂMETRO - indica o nome da variável PL/SQL que é passada na chamada da procedure ou o nome da variável que retornará os valores da procedure ou ambos. O que irá conter em parâmetro depende de MODO; MODO - Indica que o parâmetro é de entrada (IN), saída (OUT) ou ambos (IN OUT). É importante notar que IN é o modo default, ou seja, se não dissermos nada o modo do nosso parâmetro será, automaticamente, IN; 13

PROCEDURES/FUNCTION A sintaxe básica de uma procedure é: CREATE [OR REPLACE] PROCEDURE [schema.]nome_da_procedure [(parâmetro1 [modo1] tipodedado1, parâmetro2 [modo2] tipodedado2,...)] IS AS BEGIN Bloco PL/SQL END / 14

PROCEDURES/FUNCTION A sintaxe básica de uma function é: CREATE [OR REPLACE] FUNCTION [schema.]nome_da_procedure [(parâmetro1 [modo1] tipodedado1, parâmetro2 [modo2] tipodedado2, )] RETURN tipo_de_dado IS AS BEGIN Bloco PL/SQL END / 15

PROCEDURES/FUNCTION TIPODEDADO - indica o tipo de dado do parâmetro. Pode ser qualquer tipo de dado do SQL ou do PL/SQL. Pode usar referencias como %TYPE, %ROWTYPE ou qualquer tipo de dado escalar ou composto. Atenção: não é possível fazer qualquer restrição ao tamanho do tipo de dado neste ponto. IS AS - a sintaxe do comando aceita tanto IS como AS. Por convenção usamos IS na criação de procedures e AS quando estivermos criando pacotes. BLOCO PL/SQL - indica as ações que serão executadas por aquela procedure. 16

FUNCTION Calcular o INSS do funcionário: Salario Desconto até R$ 840.47 7.65 % de R$ 840.48 a R$ 1050.00 8.65 % de R$ 1050.01 a R$ 1400.77 9.00 % de R$ 1400.78 a R$ 2801.56 11.00 % acima de R$ 2801.56 Desconto 308,16 17

FUNCTION Exemplo: CREATE OR REPLACE FUNCTION f_calcula_inss (p_salario IN number) return NUMBER IS begin if (p_salario <= 840.47) then return (p_salario * 0.0765); elsif (p_salario >= 840.48) and (p_salario <= 1050.00) then return (p_salario * 0.0865); elsif (p_salario >= 1050.01) and (p_salario <= 1400.77) then return (p_salario * 0.09); elsif (p_salario >= 1400.78) and (p_salario <= 2801.56) then return (p_salario * 0.11); elsif (p_salario > 2801.56) then return (308.16); end if; END f_calcula_inss; / 18

FUNCTION Exemplo: Utilizando a function select f.nome, f.salario, f_calcula_inss(f.salario) INSS from funcionario f 19

PROCEDURES Exemplo: Automatizar processo de reajuste das taxas das cidades com aumento de 20%. 20

PROCEDURES Exemplo: CREATE OR REPLACE PROCEDURE aumenta_taxa (p_cidade IN cidade.codigo%type) IS BEGIN update cidade SET TAXA = taxa * 1.20 where codigo= p_cidade; end aumenta_taxa; / 21

PROCEDURES Executar a procedure : execute aumenta_taxa(1); ou call aumenta_taxa(1) * executar no SQL*PLUS 22

PROCEDURES * executar no SQL*PLUS connect usuario/senha 23