GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

OCA Oracle Database 11g: SQL Fundamentos I [1Z0-051] – Parte IV

Oi amigos, vamos continuar hoje falando um pouco de algumas funções de linha única (Single-Row), como sempre fazemos segue a baixo o roteiro da nossa quarta etapa, boa leitura a todos

Single-Row Functions

(Funções de Linha Única)

Describe Various Types of Functions Available in SQL

(Descrever Vários tipos de Funções Disponíveis no SQL)

Use Character, Number and Date Functions in SELECT Statements

(Use Funções de Caracterios, Número e Data em Instruções SELECT)

Descrever Vários tipos de Funções Disponíveis no SQL

Função SQL são geralmente divididas entre aquelas que calculam ou que retornam um valor para todas as linhas em um conjunto de dados e aqueles que retornam um único valor agregado para todas as linhas.

  • Definindo uma Função

Uma função é um programa escrito para opcionalmente aceitar parâmetros de entrada, realiza uma operação ou retorna um único valor. Um função retorna somente um valor por execução.

Três importantes componentes formam a base da definição de uma função. O primeiro componente é a lista de entrada de parâmetros. O segundo é o tipo de dado do seu valor resultante. O terceiro componente é o encapsulamento dos detalhes do processamento executado por uma função. Funções podem operar geralmente com qualquer tipo de dados disponível, porem os dados mais populares são caracterio, data e dado numérico.

1. Operando com Dados de Caracterio

Funções que operam com dados de caracterios são geralmente classificadas em funções de  caso de conversão e manipulação de caracterio.

LOWER, UPPER e INITCAP são funções de conversão de caso eles convertem um dada coluna de caracterio, literal ou expressão caixa baixa (lowecase), caixa alta (uppercase) ou inicial em caixa alta (initialcase) respectivamente.

lower(‘SQL’) = sql

upper(‘sql’) = SQL

initcap(‘sql’) = Sql

As funções que manipulam caracterios são excepcionalmente poderosas e incluem as funções LENGTH, CONCAT, SUBSTR, INSTR, LPAD, RPAD, TRIM e REPLACE.

A função LENGTH(string) usa uma string de caracterios como parâmetro de entrada e retorna um valor numérico representando o número de caracterios presentes na string.

A função CONCAT(string 1, string 2) toma duas strings e concatena ou junta-los em uma mesma.

A função SUBSTR(strin, start position, number of characters) aceita três parâmetros e retorna uma string contendo o número de caracterios extraídos de uma string fonte.

A função INSTR(source string, search item, [start position], [nth occurrence of search item]) retorna um número para representar a posição em uma string fonte,  iniciando de uma dada posição (start position), onde o nth ocorrência de um item buscado (search item).

As funções LPAD(string, length after padding, padding string) e RPAD(string, length after padding, padding string) adiciona um caracterio para esquerda ou direita de uma string

A função TRIM literalmente corta fora esquerda ou à direita seqüências de caracteres de uma seqüência de determinada fonte

A função REPLACE(string, search item, replacement item) localiza um item procurado em uma dada string e troca com o item a trocar, retornando uma string com valores trocados.

2. Operando com Dados Numéricos

Três funções numéricas comuns , ROUND, TRUNC e MOD.

A função ROUND(number, decimal precision) facilita arredondamento de um número para um valor menor ou maior dado um formato de precisão decimal.

A funçãoTRUNC(number, decimal precision) cai ou trunca o número dado um valor de precisão decimal

A função MOD(dividend, divisor) retorna o restante de uma operação de divisão.

3. Operando com Dados de Data

A Oracle fornece suporte nativo para aritmética de data e várias funções built-in data, como MONTHS_BETWEEN, ADD_MONTHS, LAST_DAY, SYSDATE, ROUND e TRUNC

A função MONTHS_BETWEEN(date 1, date 2) retorna o número de meses entre duas datas.

A função ADD_MONTHS(date 1, number of months) retorna a data resultada da adição se um número especifico de meses para a data.

A funçãoLAST_DAY(date 1) retorna o ultimo dia do mês de uma data especificada.

A função NEXT_DAY(date 1, day of the week) retorna a próxima data que  ocorrera o dia da semana informado.

A função SYSDATE retorna o valor da data corrente no servidor.

A função ROUND(date, date precision format) TRUNC(date, date precision date) ambos dado um valor de uma data retornam a data no formato da precisão que pode ser dia  (day), mês (month) e ano (year).

  • Tipos de Funções

1. Funções de Linha Única

Existem várias categorias de funções de linha única (single-row) incluindo caracterios, número, data, conversão e geral. O foco desse post são as funções de linha única caracterio, numérico e data. Funções de conversão como TO_CHAR, TO_NUMBER e TO_DATE serão discutidas a frente. Eles mudam o tipo de dado de uma coluna ou expressão, permitindo que outras funções possam operar com eles. Funções gerais simplifica o trabalho com valores NULL e facilita condicional lógica com uma instrução SELECT.

2. Funções de Linhas Múltiplas

Como o nome sugere, é uma categoria de funções que operam em mais de uma linha ao mesmo tempo.

  • Usando funções de caracteres de conversão de caso

A função de caracterio de conversão de caso servem para dois importantes propósitos. O primeiro, para modificar a aparência de um caracterio de item de dado para mostra-lo. O segundo, para tornar-lo consistente para operações de comparação. É importante lembrar que estas funções não alteram os dados classificados nas tabelas.

1. A Função LOWER

A função LOWER converte a string de caracterios em seu equivalente em minúsculo. Caracterios em maiúsculo são convertido em seus equivalentes em minúsculo. Caracterios numéricos, pontuação ou especial são ignorados. A sintaxe é a seguinte:

SELECT LOWER(string) FROM tables

As expressões data são avaliadas e implicitamente convertidas em dado de caracterio antes que a função LOWER ser executada.

2. A Função UPPER

A função UPPER é o oposto lógico de uma função LOWER ele converte uma string de caracterio me seu equivalente maiúsculo. Todos os caracterios minúsculos são convertidos em seus equivalentes maiúsculo. Caracterios numéricos, pontuação e especial são ignorados. A sintaxe é a seguinte:

SELECT UPPER(string) FROM table

3. A Função INITCAP

A função INITCAP converte uma string de caracterio em caso capitalizados. A primeira letra de qualquer palavra são convertidos para seu equivalente maiúsculo, em quanto que o restante das letras são convertidos para seu equivalente minúsculo. A sintaxe é a seguinte:

SELECT INITCAP(string) FROM table

  • Usando funções de manipulação de caracterios

1. A FunçãoCONCAT

A função CONCAT junta dois caracterios literais, colunas ou expressões para produzir uma caracterio, ou expressão maior. Número e data literais são implicitamente convertidos para caracterios quando ocorrem como parâmetros para função CONCAT. A sintaxe é a seguinte

CONCAT(s1, s2)

2. A Função LENGTH

A função LENGTH retorna o número de caracterios que constituem o caracterio de uma string. Número e data literal são automaticamente convertidos para caracterios quando ocorrem como parâmetros para a função LENGTH. A sintaxe é a seguinte:

LENGTH(s1)

3. As Funções LPAD e RPAD

As funções LPAD e RPAD, também conhecido como bloco de esquerda e direita do teclado funções retornar um strig preenchido com um número especificado de caracteres à esquerda ou à direita, respectivamente, da seqüência de origem. A sintaxe são LPAD(s, n, p) e RPAD(s, n, p) onde s representa a string base, n representa o tamanho final da string retornada e p especifica o caracterio que será usado.

4. A Função TRIM

A Função TRIM remove caracterios do inicio ou fim de um caracterio literal, colunas ou expressões para produzir um item de caracterio potencialmente menor. A função TRIM utiliza um parâmetro constituído por uma opcional e um componente obrigatório. a sintaxe é TRIM([trailing|leading|both] trimstring from s).

TRIM(s) remove os espaços de ambos os lados da string de entrada.

TRIM(trailing trimstring from s) remove todas as ocorrências de uma trimstring do final de uma string se estiver presente.

TRIM(leading trimstring from s) remove todas as ocorrências de umatrimstring do inicio de uma string se estiver presente.

TRIM(both trimstring from s) remove todas as ocorrências de uma trimstring tanto do inicio como do final de uma string se estiver presente.

5. A Função INSTR

A função INSTR localiza a posição de uma seqüência de pesquisa dentro de uma determinada string. Ele retorna a posição numérica em que a ocorrência nth da seqüência de pesquisa começa, relativo a uma posição de início especificada. A função INSTR possui quatro parâmetros compostos de dois opcionais e dois obrigatórios. A sintaxe é INSTR(source string, search string, , [nth occurrence]).

6. A Função SUBSTR

A função SUBSTR extrai e retorna um segmento de uma determinada string fonte. Ele extrai uma substring de um comprimento especificado desde o início seqüência de origem em uma determinada posição. A função SUBSTR possui três parâmetros, o quais dois são obrigatórios.  A sintaxe é SUBSTR(source string, start position, [number of characters to extract]).

7. A Função REPLACE

A função REPLACE substitui todas as ocorrências de um item de pesquisa em uma seqüência de origem com um termo de substituição e retorna a seqüência de origem modificada. A função REPLACE possui três parâmetros, os quais dois são obrigatórios. A sintaxe é REPLACE(source string, search item, [replacement term]). Se o replace term for omitido, a ocorrência procurada pelo search item é removida do source string.

  • Usando Funções Numéricas

Um significante diferencial entre funções numéricas e outras é que eles aceitam e retornam somente dados numéricos.

1. A Função Numérica ROUND

A função ROUND realiza uma operação de arredondamento de um valor numérico baseado em um decimal de precisão especificado. O valor retornado é geralmente arredondado para cima ou para baixo baseado em um valor numérico de um digito significativo que é especificado pela posição da precisão decimal.

A sintaxe é ROUND(source number, decimal precision) . O parâmetro source number representa qualquer número literal, coluna ou expressão. O parâmetro decimal precision especifica o grau de arredondamento e é opcional.

2. A Função Numérica TRUNC

A função TRUNC realiza uma operação de truncamento de um valor numérico baseado em um decimal de precisão especificado. Um número truncado é diferente de arredondamento pois o valor resultante apagar o número no decimal de precisão especificado.

A sintaxe é TRUNC(source number, decimal precision). Source number representa qualquer número, coluna ou expressão. Decimal precision especifica o grau de truncamento e é opcional.

3. A Função NuméricaMOD

A função MOD retorna o restante numérico de uma operação de divisão. A sintaxe é MOD(dividend, divisor).

  • Trabalhando com Datas

1. Armazenando Data em um Banco de Dados

Datas são armazenadas internamente em um formato numérico que suporta o armazenamento de detalhes de século, ano, mês e dia, assim como as informações de tempo como horas, minutos e segundos.

Quando uma informação de data é acessada de uma tabela, o formato padrão dos resultados compreendem, dois dígitos que representam o dia, três letras abreviando o mês e dois dígitos representando o ano.

2. A função SYSDATE

A função SYSDATE não necessita de parâmetros e retorna a data corrente do sistema e o tempo de acordo com o servidor de banco da dados. Por padrão a funçãoSYSDATE retorna  a data do sistema no formato DD-MON-RR.

3. Aritmética de Data

As seguintes equações ilustram um importante principio sobre aritmética de datas.

Date1 – Date2 = Num1

Date1 – Num1 = Date2

Date1 = Date2 + Num1

Uma data pode ser subtraída de outra data, que vai representar o número de dias entre elas. Qualquer número, incluindo frações, pode ser somado ou subtraído de uma data, sempre retornando uma data. O principio implica que adição, multiplicação ou divisão entre duas datas não é permitido.

4. Funções Usando Data

As funções de manipulação de data fornecem um meio confiável e preciso de trabalhar com itens de data.

  • A Função MONTHS_BETWEEN

A função MONTHS_BETWEEN retorna um valor numérico representando o número de meses entre dois valores de data. A sintaxe é MONTHS_BETWEEN(start date, end date). O número inteiro representa o número de meses entre as duas datas. o componente fracionai representa os dias e tempo restantes depois diferença inteira entre anos e meses é calculada e baseada em um mês de 31 dias.

  • A FunçãoADD_MONTHS

A função ADD_MONTHS retorna uma data calculada com a soma de número especifico de meses para um determinado valor de data. A sintaxe é ADD_MONTHS(start date number of months).

  • A Função NEXT_DAY

A função NEXT_DAY retorna uma data quando a próxima ocorrência de um determinado dia da semana ocorre. A sintaxe é NEXT_DAY(start date, day of the week). Os valores aceitos são determinados pelo parâmetro de banco NLS_DATE_LANGUAGE, mas o valor padrão são, pelo menos, os primeiros três caracteres do nome do dia ou o valor inteiro.

  • A Função LAST_DAY

A função LAST_DAY devolve a data do último dia do mês de um dia especificado. A sintaxe é LAST_DAY(start date).

  • A Função Data ROUND

A função ROUND realiza uma operação de arredondamento de um valor base em um formato de data de precisão especificado. A sintaxe é ROUND(source date, [date precision format]).  O parâmetro date precision format especifica o grau de arredondamento e é opcional. O date precision format incluem século (CC), ano (YYYY), trimestre (Q), mês (MM), semana (W), dia (DD), hora (HH) e minuto (MI).

  • A Função Data TRUNC

A função TRUNC realiza uma operação de truncamento de um valor base em um formato de data de precisão especificado. A sintaxe é TRUNC(source date, ate precision format]). O parâmetro date precision format especifica o grau de arredondamento e é opcional.

Bom Pessoal com isso finalizamos mais uma etapa de nosso caminho de estudos para a certificação.

Boa sorte a todos.

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado.