Escolar Documentos
Profissional Documentos
Cultura Documentos
Manipulação de Dados
Depois
Depois dede completar
completar esta
esta lição,
lição, você
você poderá
poderá
fazer
fazer oo seguinte
seguinte::
•• Descrever
Descrever cada
cada instrução
instrução DML
DML
•• Inserir
Inserir linhas
linhas em
em uma
uma tabela
tabela
•• Atualizar
Atualizar linhas
linhas em
em uma
uma tabela
tabela
•• Deletar
Deletar linhas
linhas de
de uma
uma tabela
tabela
•• Controlar
Controlar transações
transações
•• Uma
Uma instrução
instrução DML
DML éé executada
executada quando
quando
você:
você:
–– Adiciona
Adiciona novas
novas linhas
linhas aa uma
uma tabela
tabela
–– Modifica
Modifica linhas
linhas existentes
existentes em
em uma
uma
tabela
tabela
–– Remove
Remove linhas
linhas existentes
existentes de
de uma
uma tabela
tabela
•• Uma
Uma transação
transação consiste
consiste em
em um
um conjunto
conjunto
de
de instruções
instruções DML
DML que
que formam
formam uma
uma
unidade
unidade lógica
lógica de
de trabalho.
trabalho.
•• Adicione
Adicione novas
novas linhas
linhas em
em uma
uma tabela
tabela
usando
usando aa instrução
instrução INSERT.
INSERT.
INSERT
INSERT INTO
INTO tabela
tabela [(coluna
[(coluna [,
[, coluna...])]
coluna...])]
VALUES
VALUES (valor
(valor [,
[, valor...]);
valor...]);
•• Somente
Somente uma
uma linha
linha éé inserida
inserida por
por vez
vez com
com
esta
esta sintaxe.
sintaxe.
•• Coloque
Coloque os
os valores
valores de
de data
data ee caractere
caractere
entre
entre aspas
aspas simples.
simples.
9-6 Copyright © Oracle Corporation, 1999. Todos os direitos reservados.
Inserindo Linhas com
Valores Nulos
•• Método
Método implícito:
implícito: Omita
Omita aa coluna
coluna da
da lista
lista
de
de colunas.
colunas.
SQL> INSERT INTO dept (deptno, dname )
2 VALUES (60, 'MIS');
1 row created.
•• Método
Método explícito:
explícito: Especifique
Especifique aa palavra-
palavra-
chave
chave NULL.
NULL.
SQL> INSERT INTO dept
2 VALUES (70, 'FINANCE', NULL);
1 row created.
A
A função
função SYSDATE
SYSDATE registra
registra aa data
data ee hora
hora atuais.
atuais.
•• Verifique
Verifique sua
sua adição.
adição.
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ------- -------- ---- --------- ---- ---- ------
2296 AROMANO SALESMAN 7782 03-FEB-97 1300 10
1 row created.
•• Não
Não use
use aa cláusula
cláusula VALUES.
VALUES.
•• Faça
Faça aa correspondência
correspondência dodo número
número dede
colunas
colunas na
na cláusula
cláusula INSERT
INSERT com
com oo número
número
de
de colunas
colunas nana subconsulta.
subconsulta.
9-12 Copyright © Oracle Corporation, 1999. Todos os direitos reservados.
Alterando os Dados
EMP
em uma Tabela
EMPNO ENAME JOB ... DEPTNO "…atualize uma
7839 KING PRESIDENT 10 linha em uma
7698 BLAKE MANAGER 30 tabela EMP…"
7782 CLARK MANAGER 10
7566 JONES MANAGER 20
...
EMP
EMPNO ENAME JOB ... DEPTNO
•• Modifique
Modifique linhas
linhas existentes
existentes com
com aa
instrução
instrução UPDATE.
UPDATE.
UPDATE
UPDATE tabela
tabela
SET
SET coluna
coluna == valor
valor [,
[, coluna
coluna == valor,
valor, ...]
...]
[WHERE
[WHERE condição];
condição];
•• Atualize
Atualize mais
mais de
de uma
uma linha
linha por
por vez,
vez, se
se
necessário.
necessário.
•• Todas
Todas as
as linhas
linhas na
na tabela
tabela são
são modificadas
modificadas
quando
quando você
você omite
omite aa cláusula
cláusula WHERE.
WHERE.
SQL>
SQL> UPDATE
UPDATE employee
employee
22 SET
SET deptno
deptno == 20;
20;
14
14 rows
rows updated.
updated.
Você
Você pode
pode remover
remover linhas
linhas existentes
existentes de
de uma
uma
tabela
tabela usando
usando aa instrução
instrução DELETE.
DELETE.
DELETE
DELETE [FROM]
[FROM] tabela
tabela
[WHERE
[WHERE condição];
condição];
•• Linhas
Linhas específicas
específicas são
são deletadas
deletadas quando
quando
você
você especifica
especifica aa cláusula
cláusula WHERE.
WHERE.
SQL>
SQL> DELETE
DELETE FROM
FROM department
department
22 WHERE
WHERE dname
dname == 'DEVELOPMENT';
'DEVELOPMENT';
11 row
row deleted.
deleted.
•• Todas
Todas as
as linhas
linhas nana tabela
tabela serão
serão deletadas
deletadas
se
se você
você omitir
omitir aa cláusula
cláusula WHERE.
WHERE.
SQL>
SQL> DELETE
DELETE FROM
FROM department;
department;
44 rows
rows deleted.
deleted.
l iinnhhaa
SQL> DELETE
DELETE FROM dept mmaa l riiaa
SQL> FROM dept
t a r
r u
u i m
m áár
22 WHERE
WHERE deptno
deptno == 10; 10; deelleeta vee p prri
i rraa
e
e d aa v
cchh trraanngg ee i
p
p oodd aa
n
n ã
ã oo a uum
a m e eesst
o c
c êê e n
n hh h aa vve laa..
DELETE
DELETE FROM
FROM dept
VVo oonntte oo cch tabbeel
dept
u ee cc c oo m
m t rra
a ta
** qq u ddaa mc oouu t
ERROR uuss a
a eem
ERROR at
at line
line 1:
1:
ORA-02292:
ORA-02292: integrity
integrity constraint
constraint (USR.EMP_DEPTNO_FK)
(USR.EMP_DEPTNO_FK)
violated
violated -- child
child record
record found
found
Consistem
Consistem de de uma
uma das
das seguintes
seguintes instruções:
instruções:
•• Instruções
Instruções DML
DML que
que fazem
fazem uma
uma alteração
alteração
consistente
consistente nos
nos dados
dados
•• Uma
Uma instrução
instrução DDL
DDL
•• Uma
Uma instrução
instrução DCL
DCL
•• Começa
Começa quando
quando for
for executada
executada aa primeira
primeira
instrução
instrução SQL
SQL executável
executável
•• Termina
Termina com
com um
um dos
dos seguintes
seguintes eventos:
eventos:
–– COMMIT
COMMIT ou
ou ROLLBACK
ROLLBACK éé emitida
emitida
–– Instrução
Instrução DDL
DDL ou
ou DCL
DCL éé executada
executada
(commit
(commit automático)
automático)
–– O
O usuário
usuário sai
sai
–– O
O sistema
sistema cai
cai
•• Garantir
Garantir consistência
consistência dede dados
dados
•• Visualizar
Visualizar alterações
alterações nos
nos dados
dados antes
antes de
de
fazer
fazer as
as alterações
alterações permanentemente
permanentemente
•• Agrupar
Agrupar operações
operações relacionadas
relacionadas
logicamente
logicamente
ROLLBACK
•• Fazer
Fazer as
as alterações.
alterações.
SQL>
SQL> UPDATE
UPDATE emp
emp
22 SET
SET deptno
deptno == 10
10
33 WHERE
WHERE empno
empno == 7782;
7782;
11 row
row updated.
updated.
•• Submeter
Submeter alterações
alterações aa commit.
commit.
SQL> COMMIT;
Commit complete.
SQL> UPDATE...
SQL> SAVEPOINT update_done;
Savepoint created.
SQL> INSERT...
SQL> ROLLBACK TO update_done;
Rollback complete.
•• Se
Se uma
uma única
única instrução
instrução DMLDML falhar
falhar durante
durante
aa execução,
execução, será
será feito
feito rollback
rollback somente
somente
dessa
dessa instrução.
instrução.
•• OO Oracle
Oracle Server
Server implementa
implementa um um savepoint
savepoint
implícito.
implícito.
•• Todas
Todas as
as outras
outras alterações
alterações são
são mantidas.
mantidas.
•• O
O usuário
usuário deve
deve finalizar
finalizar as
as transações
transações
explicitamente
explicitamente usando
usando umauma instrução
instrução
COMMIT
COMMIT ou ou ROLLBACK.
ROLLBACK.
Instrução Descrição
• •Inserindo
Inserindolinhas
linhasnas
nastabelas
tabelas
• •Atualizando
Atualizando e deletandolinhas
e deletando linhasna
natabela
tabela
• •Controlando
Controlandotransações
transações