Escolar Documentos
Profissional Documentos
Cultura Documentos
Para
Para
Para
Para
Vantagens de vises
Restringem o acesso para o banco de dados porque a viso pode exibir uma
poro seletiva do banco de dados;
Permitem aos usurios fazer consultas simples para recuperar os resultados de
consultas complexas. Por exemplo, vises permitem aos usurios consultar
informaes de mltiplas tabelas sem saber escrever um comando join;
Prov independncia dos dados para os usurios e programas de aplicao.
Uma viso pode ser utilizada para recuperar dados de vrias tabelas;
Prov acesso aos dados para grupos de usurios de acordo com seus critrios
particulares.
Criando uma Viso
Voc pode criar uma viso inserindo uma subconsulta dentro do comando CREATE
VIEW. Sintaxe:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW nome_da_view
[(alias[, alias])]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]
OR REPLACE
FORCE
NOFORCE
Nome_da_view
Alias
Subquery
WITH CHECK OPTION
Constraint
WITH READ ONLY
Exemplo: criar uma view que retorne todas as contas da agncia 45.
CREATE VIEW vContas45 AS
SELECT *
FROM CONTA
WHERE COD_AGENCIA = 45;
Comentrios sobre a Criao de Vises:
A subconsulta que define uma viso pode conter uma sintaxe complexa no
comando SELECT, incluindo joins, agrupamentos e subconsultas;
viso complexa:
Deriva dados de vrias tabelas
Utiliza funes ou grupos de dados
Normalmente no permite operaes DML atravs da viso
Caracterstica
Nmero de tabelas
Contm funes
Possui grupos de dados
DML atravs da viso
Exerccios
Exerccio 1 Criar uma view, chamada vContasAg30 apenas com as contas da
agncia 30.
CREATE VIEW VCONTASAG30 AS
SELECT * FROM CONTA WHERE COD_AGENCIA=30;
Exerccio 2 - Criar uma view, chamada vCorrentistas, com o nmero da conta, nome
do correntista, telefone e endereo.
CREATE VIEW VCORRENTISTAS AS
SELECT NRO_CONTA, NOME, DDD_FONE, ENDERECO
FROM CONTA;
Exerccio 3 Criar uma view contendo informaes bancrias relacionadas s contas.
A consulta deve retornar:
- cdigo e nome da agncia
- nmero da conta
- nome do correntista
- saldo na conta corrente
CREATE VIEW VINFOCORRENTISTAS AS
SELECT A.COD_AGENCIA, A.NOME AS NOME_AGENCIA, C.NRO_CONTA, C.NOME,
C.SALDO
FROM AGENCIA A JOIN CONTA C ON C.COD_AGENCIA=A.COD_AGENCIA;
Exerccio 4 - Criar uma view, chamada vDadosAgencia, com o cdigo e nome da
agncia, nmero de contas correntes, Saldo Mnimo, Saldo Mximo e Saldo Mdio da
Agncia.
CREATE VIEW VDADOSAGENCIA AS
SELECT C.COD_AGENCIA,A.NOME, COUNT(C.NRO_CONTA) AS "QTD CONTAS",
MIN(C.SALDO) AS "SALDO MN", MAX(C.SALDO) AS "SALDO MX", AVG(C.SALDO) AS
"SALDO MDIO"
SELECT
sysdate,
TO_CHAR(TRUNC(SYSDATE,'MONTH'),'DD/MM/YYYY')
AS
PRIMEIRO_DIA, TO_CHAR(LAST_DAY(SYSDATE),'DD/MM/YYYY') AS ULTIMO_DIA ,
TO_CHAR(
ADD_MONTHS(TRUNC(SYSDATE,'MONTH'),-3),'DD/MM/YYYY')
AS
PERIODO_INICIAL,
TO_CHAR( TRUNC(SYSDATE,'MONTH')-1,'DD/MM/YYYY') AS PERIODO_FINAL
FROM DUAL;