Oi, Sidney! Tudo certo por aí?
A resposta é sim para suas duas perguntas. No entanto, tais procedimentos dependem do módulo DBLink do PostgreSQL e são pouco utilizados. Na maioria das vezes, recomenda-se a utilização de schemas, muito mais comuns e práticos para pessoas que trabalham com o PostgreSQL!
Ao invés de lidarmos com distintos bancos de dados, podemos, por outro lado, trabalhar com schemas, que são entendidos como um conjunto de regras que define a organização, a estrutura e como será a manipulação do banco de dados. Dentro de um schema, teremos tabelas, índices, chaves primárias e estrangeiras, views, funções etc.
Portanto, eles são muito úteis para a organização e para a melhora da gestão dos itens que fazem parte do nosso banco de dados.
Um banco de dados pode ter mais de um schema. Além disso, é possível usar suas tabelas a qualquer momento, bem como uni-las a partir de um JOIN
.
Abaixo, seguem as etapas iniciais para criação de schemas:
1 - Criar ou acessar um banco de dados de um servidor do pgAdmin;
2 - Abrir uma nova Query Tool;
3 - Criar um schema:
CREATE SCHEMA nome_do_schema;
Sabendo disso, podemos partir para a conversa sobre tabelas!
Durante a criação das nossas tabelas, precisamos explicitar em qual schema ela estará, desta forma:
CREATE TABLE nome_do_schema.nome_da_tabela (
# restante do código vem aqui!
);
Observe que, antes de indicarmos o nome da tabela, digitamos o nome do nosso schema e colocamos um ponto — caso não seja adicionado o schema, o pgAdmin irá criar a tabela em um schema padrão.
Da mesma forma, quando quisermos realizar um SELECT
de uma das tabelas, precisamos indicar seu schema:
SELECT * FROM nome_do_schema.nome_da_tabela;
Por fim, a lógica seguirá a mesma para a junção das tabelas. Para uma melhor compreensão, observe o exemplo abaixo:
SELECT * FROM schema_1.tabela_1
JOIN schema_2.tabela_2
ON schema_2.tabela_2.id_1 = schema_1.tabela_1.id_1
Neste caso, temos dois schemas: schema_1
e schema_2
. O primeiro possui a tabela_1
(com a chave primária id_1
) e o segundo schema possui a tabela_2
, que tem id_1
como chave estrangeira.
Indicando corretamente os schemas, campos e tabelas, é possível utilizar o JOIN
neste cenário.
Sidney, todos os scripts SQL acima foram feitos na mesma Query Tool
e no mesmo banco de dados. Logo, não precisa se preocupar com esses itens!
Espero ter ajudado. Caso surja alguma dúvida após minha explicação ou durante os seus estudos, fico à disposição!
Um forte abraço, Sidney!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!