SQL com Oracle

Antes de começar, gostaria de dizer que este curso está baseado em Oracle, ou seja, os exemplos expostos e o material foram atualizados sobre Oracle. Por outro lado dizer que acho interessante saber algo de SQL antes de começar com MYSQL, já que, embora existam algumas mudanças insignificantes, sabendo manejar SQL você saberá manejar MYSQL.

Algumas características:

SQL: Structured query language.

  • Permite a comunicação com o sistema administrador de banco de dados.
  • Em seu uso pode-se especificar o que quer o usuário.
  • Permite fazer consulta de dados.

Tipos de dados:

CHAR:

  • Têm uma longitude fixa.
  • Armazena de 1 a 255.
  • Se introduzimos uma cadeia de menos longitude que a definida se preencherá com brancos à direita até ficar completa.
  • Se introduzirmos uma cadeia de maior longitude que a fixada nos dará um erro.

VARCHAR:

  • Armazena cadeias de longitude variável.
  • A longitude máxima é de 2000 caracteres.
  • Se introduzimos uma cadeia de menor longitude que a que está definida, se armazena com essa longitude e não se preencherá com brancos nem com nenhum outro caractere à direita até completar a longitude definida.
  • Se introduzimos uma cadeia de maior longitude que a fixada, nos dará um erro.

NUMBER:

  • Armazenam-se tanto inteiros como decimais.
  • Number (precisão, escala)
  • Exemplo:

X=number (7,2)
X=155’862 à Erro já que só pode tomar 2 decimais
X= 155’86 à Bem

Nota: A categoria máxima vai de 1 a 38.

LONG:

  • Não armazena números de tamanho grande, e sim cadeias de caracteres de até 2 GB

DATE:

  • Armazena a data. Armazena da seguinte forma:

Seculo/Ano/Mes/Dia/Hora/Minutos/Segundos

RAW:

  • Armazena cadeias de Bytes (gráficos, áudio…)

LONGRAW:

  • Como o anterior, mas com maior capacidade.

ROWID:

  • Posição interna de cada uma das colunas das tabelas.
  • Sentenças de consultas de dados

Select:
Select [ALL | Distinct] [expresao_coluna1, expresao_coluna2, …., | *]
From [nome1, nome_tabela1, …, nome_tabelan]
{[Where condicao]
[Order By expresao_coluna [Desc | Asc]…]};

Vamos explicar como ler a consulta anterior e assim seguir a pauta para todas as demais. Quando compomos [] significa que a que vai dentro deve existir, e sim, além disso, colocamos | significa que deveremos escolher um valor dos que colocamos e não mais de um. Em troca se colocarmos {} significa que o que vai dentro das chaves pode ir ou não, ou seja, é opcional e se colocará segundo a consulta.

Nota: No select o valor por default entre ALL e DISTINCT é ALL.
  • Alias = O novo nome que se dá a uma tabela. Coloca-se entre aspas
  • Order By = Ordena ascendentemente (Asc) (valor por default) ou descendentemente (Desc).
  • All = Recupera todas as filas da tabela embora estejam repetidas.
  • Distinct = Só recupera as filas que são distintas.
  • Desc Emple; = Dá um resumo da tabela e suas colunas. Neste caso da tabela Emple.
  • Not Null= Se aparecer em uma lista de uma coluna significa que a coluna não pode ter valores nulos.
  • Null= Se estiver nulo.
Nota: Note que cada consulta de SQL que fazemos temos de termina-la com um ponto e vírgula”;”.

Vários exemplos para vê-lo mais claro:

SELECT JOGADOR_NO, SOBRENOME, POSICAO, TIME
FROM JOGADORES
WHERE TIME_NO = ‘FLAMENGO’
ORDER BY SOBRENOME;

Este exemplo mostra o número do jogador (jogador_no) o sobrenome (Sobrenome), a posição na que joga (Posição), e o time (Time) ao que pertence.
Selecionará todos os dados da tabela jogadores onde (Where) o nome do time (Time_No) for igual que a palavra ‘Flamengo’ e se ordenará (order by) sobrenome. Observe também que não põe nem ‘Distinct’ nem ‘All’. Por padrão, gerará a sentença com ALL.

SELECT *
FROM JOGADORES
WHERE POSICAO = ‘ATACANTE’
ORDER BY JOGADOR_NO;

Este exemplo mostra todos os campos da tabela jogadores onde (Where) a posição for igual que ‘Atacante’ e o ordena por número de jogador. Ao não colocar nada se supõe que é ascendentemente (Asc).

SELECT *
FROM JOGADORES
WHERE TIME_NAO = ‘FLAMENGO’ AND POSICAO = ‘ATACANTE’
ORDER BY SOBRENOME DESC, JOGADOR_NAO ASC;

Neste exemplo seleciona todos os campos da tabela jogadores onde (Where) o nome do time for igual a ‘Flamengo’ e a posição dos jogadores for igual a ‘Atacante’. Por ultimo os ordena por ‘Sobrenome’ descendentemente e por número de jogador ascendentemente.

Fonte: http://www.criarweb.com/artigos/714.php

Deixe um comentário