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 11 - Programação

-- Lesson 11
 --Criação de View
--exemplo 1
create or replace View func_dept80
As
Select  employee_id, first_name || ' ' || last_name nome,
phone_number, job_id
From employees
Where department_id = 80;

select * from func_dept80;
update func_dept80 set phone_number = 11111 where employee_id = 145;
select * from employees where employee_id = 145;
commit;

desc func_dept80;

--exemplo 2

Create or Replace View dept_salario
(Department_name, max_salary, min_salary, avg_salary) --definir o nome das colunas
As
Select department_name, max(salary), min(salary), round(avg(salary),2)
From employees e
  join departments d on (e.department_id = d.department_id)
group by department_name;

select * from dept_salario;

----Exemplo 3
Create or replace View salario
As
select employee_id, first_name, salary * 1 salario
from employees;

select * from salario;

update salario set salario = 20000 where employee_id = 999;
--com o campo salary * 1 não é possivel fazer o update

---Exemplo 4
--WITH CHECK OPTION CONSTRAINT
--Restringir comandos DML para outros registros que não estejam contemplados na View
create or replace view emp_dept20
As
Select *
From employees
where department_id = 20;

create or replace view region_2
As
Select * from countries
where region_id = 2
with check option constraint region_2_ck;

insert into region_2 values ('xy', 'xyz', 3); --Restrito para a região 2
insert into region_2 values ('xy', 'xyz', 2);

select * from countries;
select * from region_2;

--OBS.:
--WITH READ ONLY
--Restringir apenas para visualização

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

--SEQUENCES
--Campo auto númeração
--Este é criado como um objeto e pode ser usado em varios lugares que precisar

--Exemplo 1
Create sequence Auto_number
Increment by 2
--Start with 1 --Não permite iniciar com zero
MaxValue 10 
--MinValue 20
NoCycle --Se omitir essa informação, o padrão é Nocycle
NoCache; --Se omitir essa informação, o padrão é NoCache

Select auto_number.nextval
From dual; --traz o proximo valor
Select auto_number.currval
From dual; --traz o valor atual

Alter sequence Auto_number
Increment by 2
--Start with 1 --Não permite iniciar com zero
MaxValue 10000
--MinValue 20
NoCycle --Se omitir essa informação, o padrão é Nocycle
NoCache; --Se omitir essa informação, o padrão é NoCache

------Criação de index
--Uso para melhorar o desempenho de um select sobre uma tabela com determinadas colunas muito usadas
Create index emp_first_name_idx
        On employees(first_name);
       

-----SYNONYM
--Uso para referenciar uma tabela
--Apenas para seu usuário
Create synonym emp
for employees;

select * from emp;
--Apagar um Synonym
drop synonym emp;

--Criação de um Synonym público, para que todos os usuários possam usar
Create public synonym emp
for employees;
/*Para crar synonym público é necessario ter acesso de administrador*/




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