www.eversantoro.com.br RECUPERANDO DADOS eversantoro
Usando funções de uma única linha para personalizar a saída eversantoro
Funções SQL Entrada Saída Função arg 1 arg 2 A função executa a ação Valor do Resultado arg n
Dois tipos de funções SQL Funções Funções de uma única linha Retornam um resultado por linha Funções de várias linhas Retornam um resultado para um conjunto de linhas
Funções de uma única linha Funções de uma única linha: Manipulam itens de dados Aceitam argumentos e retornam um valor Atuam em cada linha retornada Retornam um resultado por linha Podem modificar o tipo de dados Podem ser aninhadas Aceitam argumentos que podem ser uma coluna ou uma expressão function_name [(arg1, arg2,...)]
Funções de uma única linha CARACTERE GERAL Funções de uma única linha NÚMERO CONVERSÃO DATA
Funções de Caracteres Funções de caracteres Funções de Conversão LOWER UPPER INITCAP Funções de Manipulação CONCAT SUBSTR LENGTH INSTR LPAD RPAD TRIM REPLACE
Funções de Conversão Essas funções convertem as strings: Função LOWER('SQL Course') UPPER('SQL Course') INITCAP('SQL Course') Resultado sql course SQL COURSE Sql Course
Usando funções de conversão Exibe o número de funcionário, o nome e o número de departamento do funcionário Higgins: SELECT employee_id, last_name, department_id FROM employees WHERE last_name = 'higgins'; SELECT employee_id, last_name, department_id FROM employees WHERE LOWER(last_name) = 'higgins';
Funções de Manipulação Essas funções manipulam as strings de caracteres: Função CONCAT('Hello', 'World') SUBSTR('HelloWorld',1,5) LENGTH('HelloWorld') INSTR('HelloWorld', 'W') LPAD(salary,10, '*') RPAD(salary, 10, '*') REPLACE ('JACK and JUE','J','BL') TRIM('H' FROM 'HelloWorld') Resultado HelloWorld Hello 10 6 *****24000 24000***** BLACK and BLUE elloworld
Usando as funções de manipulação 1 SELECT employee_id, CONCAT(first_name, last_name) NAME, job_id, LENGTH (last_name), INSTR(last_name, 'a') "Contains 'a'?" FROM employees WHERE SUBSTR(job_id, 4) = 'REP'; 2 3 1 2 3
Alinhando Funções Funções de uma única linha podem ser aninhados em qualquer nível. Funções aninhadas são avaliadas a partir do nível mais profundo para o nível mínimo de profundidade.. F3(F2(F1(col,arg1),arg2),arg3) Passo 1 = Resultado 1 Passo 2 = Resultado 2 Passo 3 = Resultado 3
Exemplo de funções alinhadas SELECT last_name, UPPER(CONCAT(SUBSTR (LAST_NAME, 1, 8), '_US')) FROM employees WHERE department_id = 60;
Funções Numéricas ROUND: arredonda o valor para um decimal específico TRUNC: trunca o valor para um decimal específico MOD: retorna o residual da divisão Funções ROUND(45.926, 2) TRUNC(45.926, 2) MOD(1600, 300) Resultado 45.93 45.92 100
Usando a função ROUND 1 2 SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM DUAL; 3 1 2 DUAL é uma tabela fictícia que você pode usar para visualizar resultados de funções e cálculos.. 3
Usando a função TRUNC 1 2 SELECT TRUNC(45.923,2), TRUNC(45.923), TRUNC(45.923,-1) FROM DUAL; 3 1 2 3
Usando a função MOD Para todos os funcionários com o título de cargo de Representante de Vendas, calcule o residual do salário após ele ser dividido por 5.000 SELECT last_name, salary, MOD(salary, 5000) FROM employees WHERE job_id = 'SA_REP';
Trabalhando com Datas O banco de dados Oracle armazena datas em um formato numérico interno: século, ano, mês, dia, horas, minutos e segundos. O formato de exibição de datas padrão é DD-MON-RR. Permite que você armazene datas do século 21 no século 20 especificando somente os últimos dois dígitos do ano Permite que você armazene datas do século 20 no século 21 da mesma maneira SELECT last_name, hire_date FROM employees WHERE hire_date < '01-FEB-08';
Usando a função SYSDATE SYSDATE é uma função que retorna: Data Hora SELECT sysdate FROM dual;
Aritmética com Datas Adicione um número à data ou subtraia um número da data de um valor de data resultante. Subtraia duas datas para localizar o número de dias entre essas datas. Adicione horas a uma data dividindo o número de horas por 24.
Usando operadores aritméticos com Datas SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS FROM employees WHERE department_id = 90;
Usando Funções de Datas Função MONTHS_BETWEEN ('01-SEP-95','11-JAN-94') ADD_MONTHS ('31-JAN-96',1) NEXT_DAY LAST_DAY ('01-SEP-95','FRIDAY') ('01-FEB-95') Resultado 19.6774194 '29-FEB-96' '08-SEP-95' '28-FEB-95'
Usando ROUND e TRUNC com datas Assumindo SYSDATE = '25-JUL-03': Função ROUND(SYSDATE,'MONTH') ROUND(SYSDATE,'YEAR') TRUNC(SYSDATE,'MONTH') TRUNC(SYSDATE,'YEAR') Resultado 01-AUG-03 01-JAN-04 01-JUL-03 01-JAN-03 eversantoro
DÚVIDAS???