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

quinta-feira, 3 de novembro de 2011

Curso Oracle 11g - Lesson 2 - Programação Part2

--Lesson 02
--Alter table
Create table exemplo01 (
codigo number(6),
nome varchar2(50));


--adicionar coluna
alter table exemplo01
add (data_nascimento date);

desc exemplo01;

--modificar uma coluna existente
alter table exemplo01
modify (nome varchar2(70));

desc exemplo01;

--apagar uma coluna
alter table exemplo01
drop column data_nascimento;

desc exemplo01;

insert into exemplo01 values(1,'anderson');

alter table exemplo01
modify (nome varchar2(80) not null);

rollback;
-- Obs.: o alter table, faz commit automático
select * from exemplo01;

desc exemplo01;

alter table
add (data_nascimento date not null);
--como já tenho informação não posso adicionar o not null

alter table exemplo01
add (tipo number(2) default 1);
--no registro onde a coluna estava vazio, foi colocado o valor default
select * from exemplo01;

alter table exemplo01
add (tipo2 number(2) default 1 not null);
--adicionando o valor default funciona
select * from exemplo01;

alter table exemplo01
add (tipo3 number(2));
--assim ele adiciona o valor como sendo nulo
select * from exemplo01;

insert into exemplo01 values(2,'teste',2,default,5);
select * from exemplo01;

alter table exemplo01
modify (tipo3 number(2) default 3);
--o valor que esta gravado, não é alterado
select * from exemplo01;

--Desabilitar uma coluna para apagar em um momento mais propicio
alter table exemplo01
set unused(tipo3);

select * from exemplo01;
desc exemplo01;

alter table exemplo01
add (tipo3 number(2) default 3);

select * from user_unused_col_tabs;--Pra saber quantas colunas foram desbilitadas em tabelas que sou dono
select * from all_unused_col_tabs;--Pra saber quantas colunas foram desbilitadas em todas tabelas que tenho acesso
select * from dba_unused_col_tabs;--Pra saber quantas colunas foram desbilitadas em todas as tabelas do banco de dados

--Apagar a coluna desabilitada
alter table exemplo01
drop unused columns;


Alter table exemplo01
modify (codigo primary key);
Alter table exemplo01
modify (nome default 'abc'); --apenas adicionar as alterações

select * from exemplo01;
desc exemplo01;

create table exemplo02 (numero number(6));
create table exemplo03 (numero number(6));
alter table exemplo02
modify (numero primary key); --o oracle nomeia a constraint automaticamente
insert into exemplo02 values (1); --não permite valores dublicados

alter table exemplo03
add constraint exemplo03_numero_pk --constraint nomeada
primary key (numero)
deferrable initially deferred; --Com essa alteração ele permite valores duplicados na cheve primaria,
                               --para que possa validar os dados de uma importação por exemplo,
                               --mas ao dar commit, ele apresentará o erro, fazendo o rollback automatico.
insert into exemplo03 values (1);
select * from exempl
commit;

--Trazer todas as constrains com chave primaria
select * from user_constraints
where constraint_type = 'P'
order by table_name;

--Apagar coluna
Alter table exemplo01
Drop column codigo;
--Drop column codigo cascade coonstraints; -- caso haja relacionament, apaga também o relacioanmento

select * from exemplo01;

--Renomear uma coluna
Alter table exemplo01
Rename column tipo
to tipo1;

select * from exemplo01;


--Tabela de index do usuário
Select *
from user_indexes;



---Flashback
--Recuperar uma tabela deletada

select * from job_history;

drop table job_history;

select * from recyclebin;

select * from "BIN$EdiYkjS3RpSdZRSk6QV7Fg==$0";

Flashback table job_history to before drop;

select * from job_history;

----Teste
Create table Apagar (codigo number(6), nome varchar2(40));
drop table Apagar;
select * from recyclebin;
create table Apagar (codigo number(6), nome varchar2(40));
insert into Apagar values (1, 'abc');
commit;
select * from Apagar;
Drop table Apagar;
select * from recyclebin;
create table Apagar as select * from "BIN$qUwIHQOwS/ueyFtW3pZ1mQ==$0";
insert into Apagar values(2,'der');
commit;
select * from Apagar aa
                  left join "BIN$qUwIHQOwS/ueyFtW3pZ1mQ==$0" lixeira
                            on (aa.codigo = lixeira.codigo);


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...