Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como criar view no oracle


Neste post, eu estaria falando sobre as visualizações do Oracle, que são usadas bastante em vários aplicativos por motivos de segurança e complexidade. alterar view no oracle, como compilar view no oracle, como descartar view no oracle, forçar view no oracle, como verificar a definição de view no oracle. Você saberá por que o Oracle View é importante e o que tudo pode ser feito com ele .

Este mesmo material é quase válido para o sql view também

O que é a visão Oracle?


-Uma visualização Oracle é uma representação de dados de uma ou mais tabelas ou visualizações Oracle.

-Uma visualização do Oracle é uma consulta SQL nomeada e validada que é armazenada no dicionário de dados do Oracle.

As visualizações não contêm dados. É apenas uma consulta armazenada no banco de dados que pode ser executada quando chamada. Todos os dados que ele mostra vêm das tabelas base. Pode-se pensar em uma visualização como uma tabela virtual ou mapeamento de dados de um ou mais

-Uma visualização não ocupa espaço de armazenamento além da definição da visualização no dicionário de dados.
  • Uma visualização pode ser usada para representar um subconjunto de dados (por questões de segurança), usada para representar um superconjunto de dados (juntar várias tabelas em uma visualização), ocultar junções complexas, fornecer nomes significativos para colunas e minimizar as alterações de aplicativos e fontes de dados.

-As tabelas referenciadas são chamadas tabelas base .
  • Para criar uma visualização, use o comando CREATE VIEW seguido de uma consulta SQL.

Exemplo de visualização de criação do Oracle
CREATE VIEW view_name AS
SELECT columns
FROM tables
[WHERE conditions];

-Você pode especificar os nomes das colunas usando
 CREATE VIEW (col1, col2…) AS SELECT COL1, COL2… FROM …;

-Criar uma visão usando CREATE FORCE VIEW criará a visão com erros de compilação.

-Você pode criar uma exibição somente leitura usando a cláusula WITH READ ONLY.

-Oracle 9i permite criar restrições nas visualizações.

-Restrições em visualizações não são impostas, são restrições declarativas. Para impor restrições, você deve criar as restrições nas tabelas base. Você deve sempre incluir a cláusula DISABLE NOVALIDATE ao criar restrições nas visualizações.

Privilégios necessários para criar a visualização do oráculo


Para criar uma visualização em seu próprio esquema, você deve ter o privilégio de sistema CREATE VIEW. Para criar uma visualização no esquema de outro usuário, você deve ter o privilégio de sistema CREATE ANY VIEW.

Exemplo de criação do Oracle Views

View Creation
Create view emp_data  as select e.empno,e.ename,e.sal,e.deptno,d.dname
From emp e, dept d
where e.deptno=d.deptno;

Create view emp_high_sal  as select empno,ename,sal
From emp  where sal > 100000;
Describe the views
Desc Emp_data
Desc emp_high_sal
Select the data from view
Select * from emp_data;
select * from emp_high_sal

Como modificar a visualização do Oracle/como alterar a visualização no oracle


Podemos modificar as visualizações usando o comando create ou replace view. Isso permite alterar a visualização sem descartar, recriar e conceder novamente privilégios de objeto. Não existe um comando como alterar visualização adicionar uma coluna ou alterar visualização modificar a coluna. Precisamos passar pelo método create ou replace view
Create or replace view emp_high_sal  as select empno,ename,sal
From emp  where sal > 200000;

Este comando cria a visualização se não existir e modifica a visualização se existir. Todas as unidades plsql que estão acessando a visão se tornarão inválidas após a modificação da visão

Como compilar a visualização no oracle


A recompilação de uma visão é feita usando o

ALTER VIEW COMPILE;
Alter view  emp_high_sal  compile;

Como eliminar a visualização no oracle


A eliminação de uma vista é feita usando o comando DROP VIEW.

A eliminação de uma visualização não tem efeito nas tabelas base nas quais a visualização é baseada. Os usuários que estavam acessando os dados das tabelas base usando view não poderão mais acessar os dados das tabelas base.

DROP VIEW nome_da_visão;
Drop view  emp_high_sal  ;

Criando visualizações de força do Oracle/exibição de força no oracle


Uma visão pode ser criada mesmo que a consulta de definição da visão não possa ser executada, usando o comando CREATE FORCE VIEW. Essa visualização é chamada de visualização com erros . Esta opção pode ser útil para ferramentas de importação/instalação para criar uma visualização antes que os objetos subjacentes estejam presentes.

Vamos dar um exemplo para entender. Não temos uma tabela como TEST. Mas ainda podemos criar a view nela antes de criar a tabela usando a opção force. A visualização será criada com um erro de compilação e permanecerá inválida
Create  force view TEST_V  as select col1,col2,col3 From test where col1 > 1000;

Agora crie a tabela
create table TEST ( col1 number, col2 number, col3 number);

Agora você pode compilar a visão e ela se tornará válida
alter view TEST_V compile;

O que acontece com a visualização se as tabelas base forem eliminadas?


Se as tabelas subjacentes forem descartadas, o Oracle não descartará a exibição automaticamente. Ele permanece no banco de dados e estará em um estado inválido. Se as tabelas subjacentes forem recriadas, elas se tornarão válidas novamente

Visualizações de dicionário para ver os dados do Oracle View


Os detalhes da visualização podem ser consultados no dicionário consultando USER_VIEWS, ALL_VIEWS ou DBA_VIEWS. As visualizações são úteis para segurança e ocultação de informações, mas podem causar problemas se aninhadas muito profundamente. Algumas das vantagens de usar visualizações:
  • Reduza a complexidade das instruções SQL
  • Compartilhe apenas linhas específicas em uma tabela com outros usuários
  • Ocultar o NOME e o PROPRIETÁRIO da tabela base
  • Existem três categorias de visualizações
USER_% Esta visualização contém informações sobre os objetos de propriedade do usuário apenas Por exemplo
USER_TABLES,USER_TAB_COLS
TODOS-% Esta visão contém informações sobre os objetos que o usuário pode acessar no banco de dados.
Exemplo
ALL_TABLES,ALL_TAB_COLS
DBA_% Esta visualização contém informações sobre todos os objetos   no sistema e são visualizações restritas que podem ser acessadas pelo usuário que tem uma função de DBA
Exemplo
DBA_TABLES
  DBA_% visualizações sobre informações de visualização ALL_% visualizações sobre  informações de visualização USER_% visualizações sobre informações de visualização
A coluna que pode ser atualizada DBA_UPDATABLE_COLUMNS ALL_UPDATABLE_COLUMNS USER_UPDATABLE_COLUMNS
Visualizar sobre informações de visualização dba_views all_views user_views

Listando todas as visualizações no Oracle

To list all views owned by the current user
select  view_name from user_views;

To list all views in a database:

Select  owner,view_name from dba_views;

To list views accessible to the current user:

select view_name from all_views;

To describe the view in sqlplus
desc <view_name>

Como verificar a definição de visualização no oracle


Consulte a coluna TEXT da tabela DBA_VIEWS.
Syntax:
SQL> set long 10000

SQL> select TEXT
2  FROM DBA_VIEWS
3  where OWNER = '<owner_name>'
4  and VIEW_NAME  = '<view_name>';

Como extrair a definição de visualização (instruções DDL) de um banco de dados Oracle sem ter que passar por uma pilha de visualizações de dicionário

Syntax:
SQL> set long 1000
SQL> set pagesize 0
SQL>select DBMS_METADATA.GET_DDL('VIEW','<view_name>') from DUAL

Espero que goste de um artigo detalhado sobre a visão Oracle. Eu tentei responder as consultas populares sobre a visão, como como criar visão no oracle, exemplo de criação do Oracle, como alterar a exibição no oracle, como compilar a exibição no oracle, como descartar a exibição no oracle, forçar a exibição no oracle , Como verificar a definição de visualização no oracle

Artigos relacionados para ler
oracle crie uma tabela:As tabelas são a unidade básica de armazenamento de dados em um banco de dados Oracle. abordamos como usar o comando create table do Oracle para criar uma tabela com uma chave estrangeira/chave primária
tabelas externas no Oracle:Confira este post para obter informações sobre o uso da tabela externa no oracle com um exemplo, como crie uma tabela externa, como usar
Sequências no oracle:O que é Sequência no oracle, Descrição de todas as opções, Como criá-las, Novo recurso de sequências do Oracle 12c, Como descartar e alterá-las
Índices no oracle:Confira informações sobre índices Oracle, diferentes tipos de índices no oracle com um exemplo, como criar/descartar/alterar o índice no oracle
Oracle Materialized Views:o que é Oracle materialized view, Oracle Materialized View Log, Grupo de atualização, diferença entre visualização e visualização materializada
Como monitorar o progresso da atualização de visualizações materializadas
oracle alter table modifique o tipo de coluna:Confira este post sobre como modificar colunas no oracle usando a oracle alter table modificar a coluna. A coluna Modify pode estar alterando o valor padrão, permitindo não null
atualizar a view no Oracle :confira este post para atualizar a view no Oracle, inserir na view oracle, deletar da view no banco de dados Oracle

Cursos recomendados


Aqui está o bom curso da Udemy para Oracle SQL
Oracle-Sql-Step-by-step:Este curso abrange sql básico, junções, criação de tabelas e modificação de sua estrutura, criação de exibição, união, união -tudo e muitas outras coisas . Um ótimo curso e curso obrigatório para iniciantes em SQL
O Curso Completo de Certificação Oracle SQL :Este é um bom curso para quem quer estar pronto para trabalhar com habilidades de desenvolvedor SQL. Um bom curso explicado
Oracle SQL Developer:Essentials, Tips and Tricks :A ferramenta de desenvolvedor Oracle Sql está sendo usada por muitos desenvolvedores. Este curso nos dá truques e lições sobre como usá-lo efetivamente e se tornar um desenvolvedor sql produtivo
Oracle SQL Performance Tuning Masterclass 2020 :O ajuste de desempenho é uma das habilidades críticas e mais procuradas. Este é um bom curso para aprender sobre isso e começar a fazer o ajuste de desempenho do sql