Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

segunda-feira, 24 de outubro de 2011

Curso Oracle 11g - Lesson 9 - Programação

 --lesson 9

select *
from regions;

--Insert
--Inserindo linha em uma coluna especifica
Insert into regions (region_id)
values (6);

--Inserindo linha em todas as colunas da tabela
Insert into regions
values(7, 'Teste');

--Inserindo linha com erro na chave primaria
Insert into regions (region_id, region_name)
values (1, 'ID repetido');

commit; --fecha a transação e grava as informações

Select *
From departments;

Insert into departments (department_id, department_name, manager_id, location_id)
            Values (970, 'Educacional', 100, 1700);

Insert into departments (department_id, department_name)
            Values (980, 'Secretaria');

Insert into departments
            Values (990, 'Recepção', null, null);


Select * from employees;

Insert into employees
(employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id)
Values
(999, 'Anderson', 'Siqueira', 'anderson', '1234-1234', sysdate, 'TI_PROG', '18000', 0,100,970);


commit;


Insert into regions (region_id, region_name)
    Select department_id, department_name
          from departments
          where department_id > 100;

select * from regions;


ROLLBACK ; --Remove as alterações realizadas na tranzação


--Update
--Atualizar valores

Select * from regions;

update regions
set region_name = 'nova região', region_id = 30
where region_id = 6;


rollback;


select employee_id, salary, job_id
from employees
where employee_id in (108, 110);


update employees
set salary = (select salary from employees e where employee_id = employees.manager_id),
    job_id = (select job_id from employees e where employee_id = employees.manager_id)
where employee_id = 110;  


commit;


--DELETE / TRUNCATE
Select * from regions;

Delete from regions where region_id = 30;
--SAVEPOINT - Com essa opção você pode escolher um ponto para voltar com o ROLLBACK

--Exemplo -- Executanto linha a linha é possivel acompanhar as modificações
Select * from Regions;
Delete from regions Where region_id = 7; --Apaga o registro 7
Select * from Regions;

savepoint antes_update; --Criando o Ponto de restauração
Update Regions set region_name = 'ABC' where region_id = 1;
Select * from Regions;

savepoint apos_update;
insert into regions values(9,'nova região');
Select * from Regions;

Rollback to antes_update; --Retorna ao ponto de restauração criando desfazendo o update e insert
Select * from Regions;

insert into regions values(10,'sera que funciona?');
Select * from Regions;

rollback to apos_update; --Ero pois o rollback "antes_updade", apagou a criação do savepoint "Apos_update"
Select * from Regions;

update regions set region_name = region_name || '2' where region_id = 1;
Select * from Regions;

commit;
Select * from Regions;

rollback; --retorna tudo que foi feito na transação antes do "commit"


-------------------------------------------------------------

--Read Consistency - Leitura do dado real (consistencia da informação)
Select * From regions;
update regions set region_name = 'ABC' where region_id = 2;

commit;

/* usando sqlplus
Select * from regions for update
--fica aguardando o commit quem iniciou a transação com o update
*/

Fiquem a vontade para comentar e sugerir melhorias e/ou correção dos exemplos acima.

Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...