Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo view

O que devemos conhecer sobre SQL/Oracle Parte 16: Recuperação hierárquica

Interpretando o conceito de consulta hierárquica Consultas hierárquicas vão além do conceito relacional pai/filho, onde temos uma tabela que é referenciada por outra, onde para cada registro de uma podemos ter vários em outra.  A estrutura de dados hierárquicos é diferente, ao invés dos dados estarem em tabelas diferentes eles ficam na mesma tabela (ou view), onde uma coluna do registro faz referencia a outra coluna de um outro registro, dessa forma teoricamente existe a capacidade de se ter infinitas gerações. Para embasar nossos próximos exemplos construiremos uma tabela nesses moldes, onde teremos informações para relatórios de funcionários: CREATE TABLE RELATORIO_CARGOS(CODIGO NUMBER(10) PRIMARY KEY, CARGO VARCHAR2(50), RESPONDE_PARA NUMBER(10)); ALTER TABLE RELATORIO_CARGOS ADD CONSTRAINT RELATORIO_CARGOS_FK FOREIGN KEY(RESPONDE_PARA) REFERENCES RELATORIO_CARGOS(CODIGO); Resumindo: Uma consulta hierárquica estende o relacionamento pai-filho em uma

O que devemos conhecer sobre SQL/Oracle Parte 15: Manipulando grandes massas de dados

Manipulando dados utilizando subconsultas Já foi visto nos capítulos anteriores como as subconsultas são poderosas, agora veremos novas utilidades para elas, como criar tabelas com registros, ou inserir registros com base em consultas ou mesmo atualizar registros de uma tabela com subconsultas. Em alguns casos, desejamos criar tabelas de forma rápida e depois inserir todos ou alguns dos dados de outra tabela, seja apenas para um teste ou um backup temporário em fim a razão não importa, o que importa é que podemos fazer isso de forma bem simples. Suponhamos que nós queremos separar em uma estrutura a parte todos os funcionários de um determinado cargo para tal poderíamos fazer o seguinte: CREATE TABLE FUNCS_CARGO AS SELECT * FROM FUNCIONARIOS WHERE COD_CARGO = 1; Bom nossa estrutura temporária foi criada, mas uma nova demanda pede que ela também tenha os funcionários do cargo três, obviamente poderíamos simplesmente remover a tabela e gera-la com uma nova consulta,

O que devemos conhecer sobre SQL/Oracle Parte 14: Manipulando objetos com as visões do dicionário de dados

Utilizando o dicionário de dados para pesquisar dados sobre os objetos do banco O dicionário de dados é uma coleção de tabelas (onde as informações estão guardadas) e visões (disponibilizadas para acesso dessas informações) do banco que são automaticamente gerados a cada comando DDL executado. A informação armazenada nessa coleção inclui a descrição completa dos objetos criados como tabelas, visões, índices, restrições, enfim tudo o que foi criado. Essa coleção pertence ao usuário de sistema SYS, que é o dono de todos os privilégios. As visões podem ser distinguidas pelo prefixo de seu nome, vejamos uma tabela: Prefixos de algumas visões do dicionário de dados Prefixo Quantidade de visões aproximada Descrição USER_ 359 Objetos que pertencem ao usuário acessando a visão. ALL_ 334 Objetos que pertencem a qualquer usuário cujo usuário acessando a view possui acesso, DBA_ 670 Todos os obje

O que devemos conhecer sobre SQL/Oracle Parte 10: Criando outros objetos de schema

Criando e usando VIEWS simples e complexas Uma VIEW (visão) nada mais é que um comando SELECT nomeado, e armazenado na base de dados, sendo acessado da mesma maneira que uma tabela comum. Possui como objetivo ocultar a complexidade da consulta que o forma, seja apenas para méritos de facilidade de uso ou segurança. A criação de uma VIEW é muito simples, basta utilizar o comando de criação seguido da consulta, vale ressaltar que expressões devem ser nomeadas caso contrário um erro ocorrerá, sua sintaxe é a seguinte: CREATE VIEW VW_FUNCIONARIOS AS SELECT F.COD, F.NOME FROM FUNCIONARIOS F; Também é possível criar VIEWs capazes de atualizar a tabela na qual ela é baseada, para tal devemos ter em mente: As restrições da tabela devem ser respeitadas; Se a consulta utilizar a cláusula GROUP BY ou qualquer outro tipo de agregação ela não será gerada; Se a cláusula DISTINCT for utilizada também não será possível à criação; Se na cláusula FROM houver referencia a outras

O que devemos conhecer sobre SQL/Oracle Parte 2: Usando comandos DDL para criar e manipular tabelas

Categorizando os principais objetos de uma base de dados Os objetos de banco de dados disponibilizam as estruturas necessárias para que uma aplicação seja formada, ou seja, é tudo aquilo que dá sentido na concepção de uma base de dados. Esses objetos vão desde tabelas, que é a estrutura base, até objetos como visões. Todos os objetos do banco possuem uma categoria, ou pertencem a um “schema” ou são do tipo “non-schema”. Objetos “schema” pertencem a um usuário e existem enquanto essa conta de usuário existir. Já os objetos “non-schema” existem para dar suporte ao uso do banco, como por exemplo, usuários, regras e sinônimos públicos. Um pequeno resumo sobre objetos: Tabelas armazenam dados; Constraints são regras em tabelas; Views funcionam como “janelas/visões” para tabelas; Indexes proporcionam ganho de velocidade durante consultas em tabelas, funciona como um índice de um livro; Sequences são contadores de objetos; Synonyms são uma forma alternativa de se nomear ob