quinta-feira, 12 de janeiro de 2012

Oracle SQL (Oracle OCA)

A primeira prova OCA envolve SQL, vimos a alguns post's atrás uma introdução, agora vamos ver alguns detalhes do comando SQL. A melhor forma de aprender é exercitando, então aconselho que instalem o Oracle Free e treinem. Caso tenham dúvida sobre comando SQL, recomendo que procurem na internet, vou passar somente algumas particularidades

SELECT:  O  comando mais simples do SQL é selecionar dados de uma ou mais tabelas do banco
SELECT * |{[DISTINCT]} column expression [alias], … FROM table

Expressão aritmética (+,-,*,/): Regras de precedência:
- Multiplicação e divisão ocorrer antes de adição e subtração
- Operadores de mesma prioridade são avaliados da direita à esquerda
- Os parênteses são usados ​​para substituir a precedência padrão ou para esclarecer a declaração.


Nulo (NULL):
-
Não é o mesmo que zero ou espaço em branco, é inavaliável, desconhecido ou inaplicável
- Colunas ou qualquer tipo pode conter nulos, no entanto, alguns contém (não nula e PK).
- Por padrão, o
SQL Developer utiliza literal, (null), para identificar os valores, no entanto, pode-se configurá-lo para algo mais relevante para você.
- Se qualquer coluna em uma expressão aritmética é nula, então o resultado é nulo
- Se você tentar executar uma divisão por zero você receber um erro
- Se você dividir um número por nulo, o resultado é nulo ou desconhecido


Concatenação:  liga colunas , expressão aritmética ou valores constantes para criar uma expressão de caractere. No exemplo abaixo concatena-se campo nome e sobrenome.
select 'Nome: '||nome ||' Sobrenome: '||sobrenome from funcionario

Describe: Utilizado para descrever um objeto do Oracle (tabela, view, sinônimo, função package)

String e data:
- São case-sensitive e valores de data são sensíveis ao formato
- Devem sero colocados entre aspas simples ('')
- O formato padrão de exibição de data é DD-MON-RR, datas loja em formato numérico interno, representando o século, ano, mês, dia, horas, minutos e segundos. Válidas entre 01 de janeiro de 4712 aC e 31 de dezembro de 9999 dC

- Permite que você armazene datas do século 21 no século 20 especificando apenas os dois últimos dígitos do ano
- Permite que você armazene datas do século 20 no século 21, da mesma forma


Funções de data
- data + numero (data) = adiciona numero de dias a data

- data - número (data) = subtrai numero de dias a data
- data - data (número de dias)= subtrai uma data de outra 
- data - numero/24 (data) = adiciona horas a data
- MONTS_BETWEEN  (MONTS_BETWEEN(’01-SEP-95’,’11-JAN-94’)=19.6774194) Número demeses entre duas datas. O resultado pode ser negativo ou positivo
- ADD_MONTHS (ADD_MONTHS(’31-JAN-96’,1)=’29-FEB-96’) Adiciona meses a data
- NEXT_DAY (NEXT_DAY(’01-SEP-95’,’FRIDAY’)=’08-SEP-95’) Próximo dia de uma data
- LAST_DAY (LAST_DAY(’01-FEB-95’)=’28-FEB-95’) Último dia do mês
- ROUND (ROUND (’25-JUL-03’, ‘MONTH’)=’01-AUG-03’ ROUND (’25-JUL-03’, ‘YEAR’)=’01-JAN-04’)
Arredonda data. Se o formato for omitido, a data é truncar para o próximo dia
- TRUNC (TRUNC (’25-JUL-03’, ‘MONTH’)=’01-JUL-03’ TRUNC (’25-JUL-03’, ‘YEAR’)=’01-JAN-03’) Trunc e Round:
- Se o modelo de formato é mensal, as datas 15/01 resultar no primeiro dia do mês em curso.
- Se o modelo de formato é mensal, as datas 16-31 resultado no primeiro dia do mês seguinte
- Se o modelo de formato é ano, mês 1-6 resultar em 01 de janeiro do corrente ano.
- Se o modelo de formato é ano, mês 7-12 resultado em janeiro do ano que vem

 
Ordenação: a ordenação padrão é crescente- Valores numéricos são exibidos com os valores mais baixos primeiro (1-999)
- Valores de data são exibidos com os primeiros valores primeira (01-jan-92 antes de 01-jan-95)
- Valores de caracteres são exibidos com a ordem alfabética (A ... Z)
- Valores nulos são exibidos durar seqüência e ascendente para descendente primeira seqüência
- Pode-se classificar por uma coluna que não está na lista de seleção



Precedência:
- aritimético - concatenação
- comparação
- [not] null, like, in
- [not]between
- [not]equal
- not
- and
- or

Funções
LOWER: Converte um determinado valor para caixa baixa (ex select lower('Ab') from dual = ab)
UPPER:Converte um determinado valor para caixa alta  (ex select lower('Ab') from dual = AB)
INITICAP: Converte o primeiro caracter de um campo para caixa alta (ex select lower('jose da silva') from dual = Jose Da Silva)
SUBSTR: Retorna um caracter em posição especifica (ex: select substr('123456789',2,3) from dual = 234
LENGTH: Retorna o tamanho de um campo (select legth (nome) from usuario where codigo=1=37 (supondo que o nome do usuário 1 tenha 27 caracteres))
INSTR: Retorna posição para um caracter específico (ex: SHOW INSTR('Corporate Floor','or', 3, 2)

from dual = 14
REPLACE: substituí uma série de caracteres

Numéricas
ROUND: Arredonda (ROUND (45.926,2) = 45.93)
TRUNC: Corta para o número de casas estipulados (TRUNC (45.926,2) = 45.92), pode também ser utilizado para datas, cortando horas por exemplo (data= 21/12/2011 10:15:22 -> trunc(data_x) = 21/12/2011)
MODE: Retorna o resto da divisão (MOD (1600, 300 ) = 100)




Nenhum comentário:

Postar um comentário