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