Escolar Documentos
Profissional Documentos
Cultura Documentos
Oracle 11g
DDL (Data Definition Language)
CRIAO DE TABELAS
CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE VIEW
DROP VIEW
CREATE INDEX
DROP INDEX
TRUNCATE
PRIMARY KEY
NOT NULL
NR_PEDIDO
NUMBER(5)
PRIMARY KEY
NOME
VARCHAR2(50)
CLIENTE
UF
DATA_NASC
CHAR(2)
DATE
CHECK
('SP', 'RJ','MG')
CPF
CHAR(11)
UNIQUE
COD_CLIENTE
NUMBER(4)
PEDIDO
DATA_EMISSAO
VALOR
DATE
NUMBER(6,2)
DEFAULT SYSDATE
NOT NULL
COD_CLIENTE
NUMBER(4)
FOREIGN KEY
CHAR
Para apresentar a estrutura da tabela utilize:
DESC NOME_DA_TABELA;
VARCHAR2
DATE
Datas entre 01/01/4712 AC at 31/12/9999 DC.
RENOMEAR TABELAS
RESTRIES (CONSTRAINTS)
ELIMINAO DE TABELAS
ALTERAO DE TABELAS
ON DELETE CASCADE
Quando for removido um valor da "tabela-pai" o Oracle remove as linhas
correspondentes da "tabela-filho".
CHECK
DEFAULT
Atribui um contedo padro a uma coluna caso nenhum valor seja informado.
www.dba.net.br
SELECT
Exemplo:
SELECT NOME,CPF FROM CLIENTE WHERE COD_CLIENTE = 1001;
Clusula WHERE
Permite que sejam especificadas linhas sobre as quais ser aplicada determinada
instruo. sempre seguida por uma expresso lgica que pode conter os
seguintes operadores:
TIPO
OPERADORES
COMPARAO = , < , <=, >, >=, <>
LGICO
AND, OR, NOT
SQL
IS NULL, LIKE, IN, BETWEEN, EXISTS
OPERADORES SQL
IS NULL
IS NOT NULL
TRUNCATE
Comando DDL utilizado para 'cortar' uma tabela.
TRUNCATE TABLE NOME_DA_TABELA;
Nota: Os dados no podero ser recuperados (a no ser atravs do backup).
NDICES
Fornecem acesso mais rpido a linhas especficas, eliminando a necessidade de
varreduras completas de tabelas.
CRIAR UM NDICE
CREATE INDEX NOME_DO_INDICE ON NOME_DA_TABELA (NOME_DA_COLUNA);
ELIMINAR UM NDICE
DROP INDEX NOME_DO_INDICE;
INSERT
Para inserir uma nova linha na tabela:
INSERT INTO NOME_DA_TABELA (NOME_DA COLUNA_1,NOME_DA_COLUNA_2)
VALUES (VALOR_1,VALOR_2);
ALIAS
Exemplo:
INSERT INTO CLIENTE (COD_CLI,NOME,UF,DATA_NASC,CPF)
VALUES (1001,'ANTONIO ALVES','SP','15/12/1980','111222333444');
Nota: Os tipos CHAR, VARCHAR2 e DATE devem ser declarados entre ' ' (aspas simples).
DISTINCT
DELETE
Exemplo:
SELECT DISTINCT UF FROM CLIENTE;
ORDER BY
UPDATE
Exemplo:
SELECT NOME FROM CLIENTE ORDER BY NOME ASC;
Nota: ASC padro, pode ser omitido.
COMMIT E ROLLBACK
Exemplo:
www.dba.net.br
RPAD
GROUP BY
Agrupa as linhas selecionadas e retorna uma nica linha para cada grupo.
A consulta abaixo retorna a soma dos valores dos pedidos agrupados por cliente:
SELECT SUM(VALOR), COD_CLIENTE FROM CLIENTE GROUP BY COD_CLIENTE;
Clusula HAVING
Seleciona grupos de linhas que satisfazem determinado critrio.
A consulta abaixo retorna a soma dos valores dos pedidos do cliente cujo
COD_CLIENTE igual a 1001:
SELECT SUM(VALOR), COD_CLIENTE FROM CLIENTE
GROUP BY COD_CLIENTE HAVING COD_CLIENTE = 1001;
FUNES NUMRICAS
FUNES
ABS
CEIL
FLOOR
FUNES DE GRUPO
SUM
AVG
MAX
MIN
COUNT
Preenchimento direita.
SELECT RPAD(COLUNA_OU_VALOR, TAMANHO,'CARACTERE')
FROM NOME_DA_TABELA;
SELECT RPAD('TESTE',10,'*') FROM DUAL; -- RETORNA TESTE*****
TRUNC
MOD
SQRT
SIGN
FUNES DE CONVERSO
TO_CHAR
TO_DATE
TO_NUMBER
FUNES DE LINHA
UPPER
LOWER
OUTRAS FUNES
Preenchimento esquerda.
SELECT LPAD(COLUNA_OU_VALOR,TAMANHO,'CARACTERE')
FROM NOME_DA_TABELA;
SELECT LPAD('TESTE',10,'*') FROM DUAL; -- RETORNA *****TESTE
NVL
NULLIF
DECODE
www.dba.net.br
CASE
Implementa uma estrutura de controle. H dois tipos de construes:
TIPO 1
SELECT UF,
CASE UF
WHEN 'SP' THEN 'SO PAULO'
WHEN 'RJ' THEN 'RIO DE JANEIRO'
ELSE 'OUTRO'
END
FROM ESTADO;
TIPO 2
SELECT COD_PRODUTO, VALOR,
CASE
WHEN VALOR < 10.00 THEN VALOR * 0.9
WHEN VALOR >= 15.00 THEN VALOR * 0.8
ELSE VALOR * 0.7
END VALOR_PROMOCIONAL
FROM PRODUTO;
NOME
CLIENTE
UF
ANTONIO ALVARES
BEATRIZ BERNARDES
CLAUDIO CARDOSO
DANIELA DANTAS
SP
RJ
SP
RJ
DATA_NASC
CPF
20/10/1980
15/05/1982
10/06/1981
25/01/1982
11122233344
22233344455
33344455566
44455566677
SELF JOIN
Relaciona dois campos de uma mesma tabela que sejam do mesmo tipo.
Apresentar os nomes dos cursos que tm pr-requisitos e os nomes dos
respectivos cursos que so pr-requisitos.
SELECT C.NOME_CURSO, P.NOME "PRE-REQUISITO"
FROM CURSO C
INNER JOIN CURSO P
ON C.COD_PRE_REQUISITO = P.COD_CURSO;
PEDIDO
NR_PEDIDO
DATA_EMISSAO
VALOR
COD_CLIENTE
1
2
3
4
10/10/2011
11/10/2011
11/10/2011
14/10/2011
1500.00
2800.00
1200.00
1700.00
1002
1001
1004
CLASSE
CLASSE_PEDIDO
VALOR_MINIMO
CROSS JOIN
Apresenta todas as combinaes possveis entre elementos de duas tabelas.
SELECT T1.NOME_DA_COLUNA, T2.NOME_DA_COLUNA
FROM TABELA_1 T1
CROSS JOIN TABELA_2 T2;
NATURAL JOIN
VALOR_MAXIMO
A
B
C
1000.00
1500.01
2000.01
1500.00
2000.00
3000.00
COD_CURSO
CURSO
NOME_CURSO
COD_PRE_REQUISITO
11
12
51
52
WORD BSICO
WORD AVANADO
EXCEL BSICO
EXCEL AVANADO
OPERAES DE CONJUNTO
11
UNION (UNIO)
51
Apresenta como resultado a unio de todas as linhas que foram recuperadas por
dois comandos SQL realizados em separado.
Os comandos devem retornar o mesmo nmero de colunas.
As colunas correspondentes devem possuir os mesmos tipos de dados.
SELECT COLUNA_1, COLUNA_2 FROM TABELA_1
UNION [ALL]
SELECT COLUNA_3, COLUNA_4 FROM TABELA_2;
O predicado ALL far com que apaream linhas repetidas (se for o caso).
SUBQUERIES (SUBCONSULTAS)
Consulta dentro de um comando SQL (SELECT, UPDATE, DELETE ou INSERT).
Apresentar os nmeros dos pedidos emitidos pelo cliente 'ANTONIO ALVARES':
SELECT NR_PEDIDO FROM PEDIDO WHERE COD_CLIENTE =
(SELECT COD_CLIENTE FROM CLIENTE WHERE NOME = 'ANTONIO ALVARES');
Para consultas que possam retornar mais de uma linha utilize o operador IN:
SELECT NR_PEDIDO FROM PEDIDO WHERE COD_CLIENTE IN
(SELECT COD_CLIENTE FROM CLIENTE WHERE NOME LIKE '%A%');
INTERSECT (INTERSEO)
Apresenta como resultado a interseo de todas as linhas que foram recuperadas
por dois comandos SQL realizados em separado.
Os comandos devem retornar o mesmo nmero de colunas.
As colunas correspondentes devem possuir os mesmos tipos de dados.
SELECT COLUNA_1, COLUNA_2 FROM TABELA_1
INTERSECT
SELECT COLUNA_3, COLUNA_4 FROM TABELA_2;
JOINS (JUNES)
EQUI JOIN
Rene campos iguais de tabelas diferentes.
Apresentar os nomes dos clientes e os nmeros dos seus respectivos pedidos:
SELECT C.NOME, P.NR_PEDIDO
FROM CLIENTE C
INNER JOIN PEDIDO P
ON C.COD_CLIENTE = P.COD_CLIENTE;
MINUS (DIFERENA)
Apresenta como resultado a diferena entre as linhas que foram recuperadas por
dois comandos SQL realizados em separado.
A ordem de declarao das consultas com relao ao predicado MINUS altera o
resultado final.
OUTER JOIN
Alm de mostrar registros cujos campos em comum estejam presentes nas duas
tabelas, mostra tambm os que faltam.
Apresentar os nomes dos clientes e os nmeros dos seus respectivos pedidos
(incluir os nomes dos clientes que no efetuaram pedidos):
SELECT C.NOME, P.NR_PEDIDO
FROM CLIENTE C
LEFT OUTER JOIN PEDIDO P
ON C.COD_CLIENTE = P.COD_CLIENTE;
www.dba.net.br