fundamentos de programação oracle: sql. · alias utilizado para facilitar o uso de diversas...
TRANSCRIPT
![Page 2: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/2.jpg)
2
• ALIAS
• RELACIONAMENTOS
• TO_CHAR
• SYSDATE
• ROWNUM
• CONCATENAÇÃO
• PROCEDURES
• FUNCTIONS
![Page 3: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/3.jpg)
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
![Page 4: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/4.jpg)
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
![Page 5: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/5.jpg)
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
![Page 6: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/6.jpg)
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
![Page 7: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/7.jpg)
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
![Page 8: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/8.jpg)
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
![Page 9: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/9.jpg)
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
![Page 10: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/10.jpg)
ROWNUM
Limitar a visualização de uma consulta:
– select * from funcionario where rownum <= 3
10
![Page 11: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/11.jpg)
Concatenação
OPERADOR DE CONCATENAÇÃO || PARA JUNTAR CAMPOS
TEXTO
– SELECT CODIGO || ' - ' || NOME FUNCIONARIOS
FROM FUNCIONARIO
11
![Page 12: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/12.jpg)
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
![Page 13: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/13.jpg)
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
![Page 14: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/14.jpg)
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
![Page 15: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/15.jpg)
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
![Page 16: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/16.jpg)
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
![Page 17: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/17.jpg)
FUNCTION
Calcular o INSS do funcionário:
17
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
![Page 18: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/18.jpg)
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
![Page 19: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/19.jpg)
FUNCTION
Exemplo:
Utilizando a function
select f.nome, f.salario, f_calcula_inss(f.salario) INSS
from
funcionario f
19
![Page 20: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/20.jpg)
PROCEDURES
Exemplo:
Automatizar processo de reajuste das taxas das cidades com aumento de 20%.
20
![Page 21: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/21.jpg)
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
![Page 22: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/22.jpg)
PROCEDURES
Executar a procedure :
execute aumenta_taxa(1);
ou
call aumenta_taxa(1)
* executar no SQL*PLUS
22
![Page 23: Fundamentos de Programação ORACLE: SQL. · ALIAS Utilizado para facilitar o uso de diversas tabelas, permitindo utilizar um “apelido” para as tabelas, no exemplo abaixo a tabela](https://reader030.vdocuments.pub/reader030/viewer/2022040508/5e4da50f2bd8de79a2742730/html5/thumbnails/23.jpg)
PROCEDURES
* executar no SQL*PLUS
connect usuario/senha
23
* executar no SQL*PLUS
connect usuario/senha