Sei sulla pagina 1di 30

Usando funes Single-Row para

customizar a sada

Objetivos
Depois de completar esta lio, voc deve estar apto a fazer o
seguinte:
Descrever vrios tipos de funes disponveis no SQL
Usar funes de caractr, nmero e data em comandos
SELECT

Agenda

Funes SQL Single-row


Funes de caractr
Funes de nmero
Trabalhando com datas
Funes de Data

Funes SQL

Entrada

Sada
Funo
Funo faz a ao

arg 1
arg 2

arg n

Valor
de resultado

Dois tipos de funes SQL

Funes

Single-row

Multiple-row

Retorna um resultado por linha

Retora um resultado por


Conjunto de linhas

Funes Single-Row
Funes Single-row:
Manipula itens de dados
Aceita argumentos e retorna um valor
Age em cada linha que retornada
Retorna um resultado por linha
Pode modificar o tipo de dados
Pode ser aninhada
Aceita argumentos que podem ser colunas ou uma
expresso
function_name [(arg1, arg2,...)]

Funes Single-Row

Caractr

Funes
Single-row

Geral

Converso

Nmero

Data

Agenda

Funes SQL Single-row


Funes de caractr
Funes de nmero
Trabalhando com datas
Funes de Data

Funes de nmero
ROUND: Arredonda o valor para um decimal especfico
TRUNC: Reduz o valor para um decimal especfico
MOD: Retorna o resto da diviso
Function

Result

ROUND(45.926, 2)

45.93

TRUNC(45.926, 2)

45.92

MOD(1600, 300)

100

Usando a funo ROUND

SELECT ROUND(45.923,2), ROUND(45.923,0),


ROUND(45.923,-1)
FROM
DUAL;

DUAL uma tabela manequm que voce pode usar para visualizar
os resultados de funes e clculos

Usando a funo TRUNC

SELECT TRUNC(45.923,2), TRUNC(45.923),


TRUNC(45.923,-1)
FROM
DUAL;

Usando a funo MOD


Para todos os empregados que o a funo Sales
Representative, calcule o resto do salrio depois da diviso
por 5,000.
SELECT last_name, salary, MOD(salary, 5000)
FROM
employees
WHERE job_id = 'SA_REP';

Agenda

Funes SQL Single-row


Funes de caractr
Funes de nmero
Trabalhando com datas
Funes de Data

Trabalhando com datas


O banco de dados Oracle armazena datas em um formato
numrico: sculo, ano, ms, dia, horas e segundos.
O padro de data padro DD-MM-RR.
Permite voc armazenar datas do sculo 21 no sculo 20
especificando os ltimos dias do ano
Permite voc armazenar datas do sculo 20 no sculo 21 da
mesma forma

SELECT last_name, hire_date


FROM
employees
WHERE hire_date < '01-FEB-88';

RR Formato de data

Current
Ano atual
Year
1995
1995
2001
2001

Data especfica
27-OCT-95
27-OCT-17
27-OCT-17
27-OCT-95

FormatoRR
1995
2017
2017
1995

Formato YY
1995
1917
2017
2095

Se os dois digitos especifcados forem:

Se os dois
digitos do
ano atual
forem:

049

5099

049

Retorna a data com


o sculo atual

Retorna a data no
sculo anterior

5099

Retorna a data com


um sculo
posterior

Retorna a data com


o sculo atual

Usando a funo SYSDATE


SYSDATE uma funo que retorna:
Data
Tempo
SELECT sysdate
FROM
dual;

Clculos com datas


Adicione ou subtraa um nmero de ou para uma data para
um valor resultante.
Substrair duas datas para encontrar o nmero de dias entre
elas.
Adicionar horas a uma data dividindo o nmero de horas por
24.

Usando operadores aritimticos com datas

SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS


FROM
employees
WHERE department_id = 90;

Agenda

Funes SQL Single-row


Funes de caractr
Funes de nmero
Trabalhando com datas
Funes de Data

Funes de manipulao de data

Funo

Resultado

MONTHS_BETWEEN

Number of months between two dates

ADD_MONTHS

Add calendar months to date

NEXT_DAY

Next day of the date specified

LAST_DAY

Last day of the month

ROUND

Round date

TRUNC

Truncate date

Usando funes de data

Function

Result

MONTHS_BETWEEN
('01-SEP-95','11-JAN-94')

19.6774194

ADD_MONTHS (31-JAN-96',1)

29-FEB-96'

NEXT_DAY

('01-SEP-95','FRIDAY')

'08-SEP-95'

LAST_DAY

('01-FEB-95')

'28-FEB-95'

Usando funes ROUND e TRUNC com datas


Assumir SYSDATE = '25-JUL-03':
Funo

Resultado

ROUND(SYSDATE,'MONTH')

01-AUG-03

ROUND(SYSDATE ,'YEAR')

01-JAN-04

TRUNC(SYSDATE ,'MONTH')

01-JUL-03

TRUNC(SYSDATE ,'YEAR')

01-JAN-03

Agenda

Funes SQL Single-row


Funes de caractr
Funes de nmero
Trabalhando com datas
Funes de Data

Functions de caractr

Functions
de caractr

Funes
Case-conversion
LOWER
UPPER
INITCAP

Functions de manipulao
De caractr
CONCAT
SUBSTR
LENGTH
INSTR
LPAD | RPAD
TRIM
REPLACE

Funes Case-Conversion
Estas funes convertem case de strings:
Funo

Resultado

LOWER('SQL Course')

sql course

UPPER('SQL Course')

SQL COURSE

INITCAP('SQL Course')

Sql Course

Usando funes Case-Conversion


Mostrar o nmero,nome e nmero do departamento do
empregado cujo nome 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';

Funes de manipulao de caractr


Estas funes manipulam strings:
Funp

Resultado

CONCAT('Hello', 'World')

HelloWorld

SUBSTR('HelloWorld',1,5)

Hello

LENGTH('HelloWorld')

10

INSTR('HelloWorld', 'W')

LPAD(salary,10,'*')

*****24000

RPAD(salary, 10, '*')

24000*****

REPLACE
('JACK and JUE','J','BL')

BLACK and BLUE

TRIM('H' FROM 'HelloWorld')

elloWorld

Usando funes de mainuplao de caractr

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

Resumo
Nesta lio, voc deve ter aprendido como:
Realizar clculos em dados usando funes
Modificar dados individuais usando funes

Prtica 3: Overview
Esta prtica abrange os seguintes tpicos:
Escrevendo uma consulta que mostra a data atual
Criando consultas que requerem o uso de funes
numeris, de caracter e data
Realizando clculos de anos e mses de servio par um
empregado

Potrebbero piacerti anche