Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo self join

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 9: Recuperando dados utilizando subconsultas

Definindo subconsultas Como visto anteriormente uma consulta é um comando SELECT, logo uma subconsulta é um comando SELECT dentro de outro comando, que pode ser outro SELECT, INSERT, UPDATE, DELETE, CREATE TABLE ou CREATE VIEW: Subconsulta é um SELECT dentro de outro comando SQL; O outro comando SQL é chamado de pai. O nível externo é chamado de top-level; O comando SQL top-level contendo a subconsulta pode ser um SELECT, INSERT, UPDATE, DELETE, CREATE TABLE ou CREATE VIEW; Subconsultas podem estar aninhadas em outras subconsultas; Algumas subconsultas podem funcionar de forma autônoma. Outras funcionam de modo correlacionado, sempre que possuem referencia a suas consulta pai; Descrevendo os tipos de problemas que subconsultas podem resolver As subconsultas podem ser utilizadas para resolver uma série de problemas, sendo eles: Consultas complexas: subconsultas podem encontrar respostas para perguntas e então usar essas respostas para responder novas pergunt

O que devemos conhecer sobre SQL/Oracle Parte 8: Apresentando dados de varias tabelas

Escrevendo comandos SELECT que acessam dados de mais de uma tabela  As junções são utilizadas para mesclar registros de uma ou mais tabelas em um único resultado. Temos duas grandes categorias para a criação das junções: Inner joins: conectam registros em duas ou mais tabelas se, e somente se, existirem registros iguais em todas as tabelas relacionadas (a cláusula INNER é opcional): SELECT F.NOME, D.DEPARTAMENTO FROM FUNCIONARIOS F INNER JOIN DEPARTAMENTOS D ON F.DEP = D.DEP; Acima duas tabelas unidas pela condição de igualdade DEP, onde serão apresentados os funcionários que pertencem a um departamento. Outer joins: conectam registros em duas ou mais tabelas de maneira inclusiva, se existirem  dados em uma tabela que não tenha valores correspondentes em outra, esses registros não correspondentes serão incluídos no resultado (a cláusula OUTER é opcional):  SELECT F.NOME, D.DEPARTAMENTO FROM FUNCIONARIOS F LEFT OUTER JOIN DEPARTAMENTOS D ON F.DEP = D