Você está na página 1de 5

SQL e PL/SQL Oracle by 2 Ten Helena - 1 -

SQL e PL/SQL Oracle


Dicas de preparao para certificao
Selection: para escolher linhas em uma tabela
Projection: para escolher colunas em uma tabela
Join: pode trazer simultaneamente dados que est armazenado em diferentes tabelas, criando um link
entre elas.
SELECT: uma lista de uma ou mais colunas. Usa-se para mostrar colunas especficas de uma tabela,
especificando os nomes das colunas, separadas por vrgulas
FROM: especifica a tabela que contm as colunas. No pode usar operadores numricos na clusula
FROM
DISTINCT: suprime linhas duplicadas
*: seleciona todas as colunas
column: seleciona as colunas especficas
alias: seleciona colunas com cabealhos diferentes
Uma palavra-chave refere-se a um elemento individual SQL. no podem ser separadas em quebra de
linhas ou abreviadas, tipicamente so escritas em maisculas; todas as outras palavras, tal como nome de
tabelas e colunas so escritas em minsculo.
Uma clusula uma parte de um comando SQL. so usualmente colocadas em linhas separadas para
facilitar a leitura e edio
Um comando a combinao de duas ou mais clusulas.
Os comandos SQL no so case sensitive; podem ser escritos em uma ou muitas linhas;
Dentro do SQL Plus, um comando SQL escrito no prompt SQL, e as linhas subsequentes so
numeradas. Isto chamado de SQL buffer. Somente um comando pode ser corrente por vez no buffer.
coloque um ponto-e-vrgula (;) no final da ltima clusula
coloque uma barra (/) na ltima linha do buffer
usualmente um comando RUN do SQL Plus roda no prompt SQL.
Default de cabealho de coluna: Maisculo
Default de justificao de coluna: numricos a direita; Data e caracteres a esquerda
Cabealho numrico no pode ser truncado
O SQL Plus ignora espaos brancos antes e depois dos operadores aritmticos
Precedncia de expresses aritmticas: * / + -
Precedncia de operadores lgicos: todos os operadores de comparao, NOT, AND e OR
Zero nmero, branco caracter. Ambos so diferentes de nulo
Para nomear colunas com nomes minsculos, espaos ou caracteres especiais tem que usar aspas duplas
Para concatenar colunas usa-se || barras verticais entre os campos
Datas e caracteres literais vem entre mas nmero no.
Comandos SQL so armazenados no SQL Buffer e comandos do SQL Plus no
GET: lista e executa
START ou @: executa
SPOOL: armazena resultados em um arquivo
DESCRIBE mostra a estrutura de uma tabela
Operadores de comparao: BETWEEN, IN, LIKE e IS NULL
BETWEEN para selecionar uma faixa de valores inclusive
IN parte qualquer de uma lista de valores
SQL e PL/SQL Oracle by 2 Ten Helena - 2 -
LIKE % qualquer seqncia de caracteres
LIKE _ um caracter nico
Precedncia de operadores: todos os operadores de comparao, NOT, AND, OR
AND: requer que ambas as condies so TRUE
OR: requer que uma das opes seja TRUE
NOT: negao
ORDER BY: especifica a ordem na qual as linhas sero retornadas
CONCAT: une strings
SUBSTR: mostra uma seqncia de caracteres especficas a partir de uma posio especfica
LENGTH: informa o numero de caracteres uma string possui
INSTR: informa em qual posio especfica est um caracter especfico
LPAD: preenche uma quantidade de posies especficas com caracteres especficos justificado a direita
RPAD: preenche uma quantidade de posies especficas com caracteres especficos justificado a
esquerda
TRIM: deleta caracteres especficos de uma string
MOD: retorna resto da diviso
ROUND: arredonda valores dual
TRUNC: trunca valores diferente de round
DUAL: tabela do usurio SYS e que todos os usurios tm acesso
SYSDATE: funo que retorna a data e hora do sistema e deve ser obtida da tabela DUAL
NVL: converte nulo para zero
DECODE: funciona como If-Then-Else (ou case)
FM: remove espao em branco ou suprime zero. P. 3-29
JOIN: definida na clusula WHERE
Equijoin: (ou simple join ou inner join) uma coluna corresponde a uma coluna de outra tabela. Para fazer
join com mais de duas tabelas, usa-se o AND
No_equijoin: a coluna da tabela da esquerda no corresponde a da tabela direita
Outer_join: retorna linhas ausentes na outra tabela. O sinal de adio (+) colocado ao lado do join que
no possui as informaes. Esse tipo de relacionamento no pode usar operadores In ou OR
Self Join: auto relacionamento
GROUP BY: retorna uma linha para cada grupo encontrado. No se pode usar com alias de coluna.
Grupos podem ser excludos usando clusula HAVING
HAVING: restrio de linha
AVG: mdia
COUNT: conta linhas
COUNT(*): retorna o nmero de linhas em uma tabela, incluindo linhas duplicadas e valores nulos
COUNT(expr): retorna o nmero de linhas no nulas em uma tabela, com as colunas identificadas pela
(expr)
STDDEV: desvio padro
SUM: soma
VARIANCE: variao de determinado valor
DISTINCT: elimina linhas duplicadas
Funes AVG, SUM, VARIANCE e STDDEV s podem ser usados com dados numricos. Para essas
funes necessrio usar GROUP BY. Em caso de linhas restritas em resultados de um grupo de funo,
deve-se usar a clusula HAVING ao invs da clusula WHERE.
NVL: fora a incluso de valores nulos
A sequncia da clusulas a seguinte: WHERE, GROUP BY E HAVING
SQL e PL/SQL Oracle by 2 Ten Helena - 3 -
Subquery no pode ter ORDER BY.
Quando uma consulta retorna mais que uma linha no se pode usar somente os operadores de
comparao comuns (= > < <>) e sim os operadores IN, ANY e ALL ou conjuntamente com os comuns.
O operador NOT no pode ser usado juntamente com IN, ANY e ALL.
Em caso de subquery, no use NOT IN e sim !=ALL que equivalente.
O operador IN equivalente a =ANY
ACCEPT: L uma linha inserida pelo usurio e armazenada em uma varivel.
DEFINE: cria e especifica um valor para uma varivel. Tipo CHAR. As variveis so vlida apenas para
sesso corrente , para que sejam vlidas em todas as sesses necessrio modificar o arquivo login.sql
&: opo para o usurio inserir o valor
SET VERIFY ON: fora o SQL PLUS a mostrar um valor antes da substituio
&&: para usar mais de uma vez o valor de varivel dada pelo usurio
HIDE: suprime o valor que o usurio insere. Ex.: o valor de uma senha inserida aparece com caracteres
UNDEFINE: para limpar o valor definido com o DEFINE
BREAK: suprime valores duplicados
TTITLE e BTITLE: cabealho e rodap. Quando o texto tem mais de uma palavra tem que colocar em
aspas simples
TRANSACTION: coleo de comandos DML
DML: para adicionar linhas, modificar linhas e remover linhas em uma tabela
DDL: CREATE, TRUNCATE (executam automtico COMMIT)
DCL: GRANT, REVOKE (executam automtico COMMIT)
INSERT: coloque em aspas simples para tipo de dados caracter e data. Dados numricos no. Para
inserir um formato de data que no o default, necessrio usar a funo TO_DATE.
UPDATE: modifica linhas
DELETE: se omitir a clusula WHERE, todas as linhas. Este comando elimina linhas mas no libera
espao.
COMMIT: marca a transao como definitiva
SAVEPOINT: permite um ROLLBACK at uma marca
ROLLBACK: elimina dados pendentes
VALUES: Quando junto com INSERT, adiciona apenas uma linha por vez ma tabela.
Quando um comando no cabe na mesma linha, deve-se usar um trao para continuar na prxima linha
Schema: coleo de objetos
DROP: se uma coluna dropada, ela no pode ser recuperada. Este comando elimina linhas e a estrutura
da tabela. Quando se dropa uma tabela, os ndices correspondentes so dropados.
TRUNCATE: remove linhas e libera espao em disco
USER_TABLES: tabelas pertencentes ao usurio
USER_OBJECTS: objetos do usurio
USER_CATALOG: tabelas, views, sinnimos e sequncias pertencentes ao usurio
Se uma tabela j contm linhas quando uma coluna adicionada, a nova coluna inicialmente nula para
todas as linhas
UNUSED: marcar a coluna como indisponvel
Pode ser adicionado uma coluna com o nome de uma coluna UNUSED
Tipos de Constraints: NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY E CHECK. Uma
constraint pode ser adicionada, eliminada ou desabilitada, mas no se pode modificar sua estrutura. Pode
ser usado o MODIFY apenas para adicionar uma constraint NOT NULL atravs do comando ALTER
TABLE.
SQL e PL/SQL Oracle by 2 Ten Helena - 4 -
NOT NULL: no pode conter valores nulos. S pode ser especificada a nvel de coluna, de tabela no
possvel.
UNIQUE: valores devem ser nicos. Quando envolve mais de uma coluna chamada de composite
unique key.
PRIMARY KEY: identifica unicamente cada linha da tabela. Um index unique automaticamente
criado para uma coluna Primary Key
FOREIGN KEY (ou referenctial integry constraint): estabelece relacionamentos entre tabelas.
REFERENCES: usado com FK identifica a coluna da tabela pai
ON DELETE CASCADE: usado com FK permite deleo na tabela pai e das linhas dependentes na
tabela filha
CHECK: especifica que a condio tem que ser TRUE. No so permitidas referncias a CURRVAL,
NEXTVAL, LEVEL e pseudocolunas ROWNUM
DISABLE: pode ser usado tanto no comando CREATE TABLE quanto no ALTER TABLE. Usando
tambm a clusula CASCADE, desabilitada a integridade das constraints dependentes.
Base Tables: so tabelas na qual uma view baseada
VIEW: representao lgica de dados de uma ou mais tabelas. Linhas podem ser removidas de uma
View, desde que no contenha grupos de funes, a clusula GROUP BY e a pseudocoluna ROWNUM
ROWNUM: retorna o nmero de cada linha no Select
WITH CHECK POINT OPTION: no permite a criao de linhas que a VIEW no seleciona
WITH READ ONLY: view somente para leitura
DROP ANY VIEW: para dropar view, mas s permitido aos donos da view ou usurios com acesso
DROP ANY VIEW
Analysys Top-N: Para consultar os maiores valores. necessrio incluir ROWNUM, ORDER BY,
DESC e a clusula WHERE com os operadores ou < ou <=.
SEQUENCE: para gerar valores sequenciais nicos. Qdo for usado para PK no deve usar a opo
CYCLE.
NEXTVAL: retorna o prximo valor da seqncia.
CURRVAL: obtm o valor corrente da seqncia
Com as pseudocolunas NEXTVAL e CURRVAL, no se pode usar uma lista Select de uma view, um
comando Select com DISTINCT, com GROUP BY, com HAVING ou ORDER BY. Tambm no se
pode usar em uma subquery com os comandos SELECT, DELETE ou UPDATE, nem a expresso
DEFAULT em um CREATE TABLE ou ALTER TABLE.
Privilgios tpicos de DBA: CREATE USER, DROP USER, DROP ANY TABLE, BACKUP ANY
TABLE
Para o desenvolvimento de uma aplicao so necessrios os seguintes privilgios de sistema: Create
session, create table, create sequence, create view, create procedure
ROLE: um grupo de privilgios que podem ser dados ao usurio
GRANT juntamente com WITH GRANT OPTION: permite que o usurio que recebeu estes
privilgios repasse para outros.
REVOKE: remove privilgios
Estrutura de um bloco PL/SQL: Seo Declarativa, seo executvel (mandatria), seo de tratamento
de excees. Para encerrar o bloco use um (;). Para rodar o bloco use (/), para fechar o buffer use um
ponto(.)
Tipos de blocos: anonymous, procedure e function.
PROCEDURES e FUNCTIONS: so tambm conhecidos como subprogramas. A diferena entre eles
que as Functions retornam valores.
SQL e PL/SQL Oracle by 2 Ten Helena - 5 -
Programs constructs: anonymous ( acessvel de todos os ambientes PL/SQL), stores procedure (Oracle
Server), application procedure ou function (Oracle Developer), packages (Oracle Server e Oracle
Developer), database trigger (Oracle Server) e application trigger Oracle Developer)
Variveis PL/SQL: Scalar, composite (collections), Reference (ou pointers), LOB (ou Locator)
Parmetros de subprogramas: IN, OUT e IN OUT
Para inicializar variveis: usar (:=). Por default so inicializadas como NULL.
Variveis no podem Ter mais que 30 caracteres, o 1 caracter tem que ser uma letra, o restante podem
ser caracteres, letras, nmeros ou smbolos especiais.
Tipos scalares: so classificados nas seguintes categorias: number, character, date e boolean.
Tipos composite: TABLE, RECORD, NESTED TABLE e VARRAY
Tipos LOB: CLOB, BLOB, BFILE e NCLOB
Tipos booleanos: TRUE, FALSE e NULL
PRINT: no pode ser usado dentro de um bloco PL/SQL
Variveis (host)que no so PL/SQL, devem conter no seu prefixo dois-pontos (:)
Comentrios: quando estiver em apenas uma linha, usar dois traos (--), quando ocupar mais de uma
linha colocar entre os smbolos /*
Fmt: o formato usado para converter valores
%TYPE: do mesmo tipo
Cursor: rea de memria aberta pelo Oracle Server na qual o comando analisado e executado. Podem
ser implcitos ou explcitos. Os implcitos o Oracle Server usa para analisar e executar os comandos SQL.
Os explcitos so declarados pelo programador.
Atributos do cursor: SQL%ROWCONT (n. de linhas afetadas pelo mais recente comando SQL),
SQL%FOUND (avalia se afetou uma ou mais linhas), SQL%NOTFOUND (avalia se afetou nenhuma
linha), SQL%ISOPEN.
Tipos de IF: IF-THEN-END IF; IF-THEN-ELSE-END IF; IF-THEN-ELSIF-END IF;
Condies booleanas com Operadores lgicos : AND - retorna TRUE somente se ambos os operadores
forem TRUE e o OR retorna FALSE se ambos os operadores forem FALSE.
Tipos de LOOP: Basic (aes repetitivas sem condies globais), FOR (controle interativo das aes
baseadas em uma conta), WHILE (controle interativo das aes baseadas em uma condio).
REVERSE: usado para o loop FOR contar do maior para o menor
Tabela PL/SQL: precisa conter uma pk BINARY_INTEGER para indexar a tabela, uma coluna scalar
ou do tipo record na qual armazena elementos PL/SQL.
A diferena entre o atributo %ROWTYPE e um tipo de dado composite RECORD que este ltimo
permite especificar tipos de dados no registro ou declarar campos da qual for dono.
Active Set: linhas retornadas de uma consulta de linhas mltiplas
Default de OPEN-CURSORS: 50
%ISOPEN: retorna o status do cursor
NOWAIT: se a sesso estiver alocada para outro o Oracle retorna erro
WHERE CURRENT OF: para referenciar uma linha corrente de um cursor explcito
Tipos de excees: Pr-definida pelo Oracle Server, no-pr-definida pelo Oracle Server e definida pelo
usurio
Erros mais comuns: NO_DATA_FOUND e TOO_MANY_ROWS
PRAGMA: tambm chamado pseudoinstructions
Funes de excees: SQLCODE: retorna nmero do cdigo do erro e SQLERRM: retorna a mensagem
associada ao erro.
Procedure de tratamento de erros: usada na seo executvel e na seo de excees.
Helenacs@tba.com.br