CREATE TABLE em um esquema Postgres

Create Table Em Um Esquema Postgres



O PostgreSQL é um dos sistemas de banco de dados objeto-relacionais mais populares. É um software gratuito e de código aberto que estende a linguagem SQL com recursos adicionais para lidar com as complexas cargas de trabalho de dados. Pode trabalhar com vários tipos de dados, confiáveis ​​e seguros. Saiba mais sobre os recursos do PostgreSQL.

Neste guia, aprenderemos mais sobre como criar tabelas em um esquema no PostgreSQL.







Esquemas no PostgreSQL

Um banco de dados PostgreSQL pode conter um ou mais esquemas nomeados, cada esquema contendo tabelas.



O mesmo nome de objeto pode ser atribuído a vários esquemas sem conflito. Por exemplo, a seguinte árvore de esquema/tabela é válida:



  • esquema_a
    • tabela 1
    • mesa 2
  • schema_b
    • tabela 1
    • mesa 2

Você pode pensar em esquemas como diretórios no nível do sistema operacional. A diferença é que não pode haver esquemas aninhados. Aprenda mais detalhadamente sobre o esquema em Documentação do PostgreSQL .





Pode haver vários motivos para implementar os esquemas:

  • Vários usuários usando o mesmo banco de dados sem entrar em conflito entre si.
  • Melhor organização e gerenciamento de bancos de dados em grupos lógicos.
  • Aplicativos de terceiros podem criar seu esquema exclusivo sem colidir com os esquemas existentes ou outros objetos.

Tabelas no PostgreSQL

Qualquer banco de dados relacional consiste em várias tabelas relacionadas, cada uma consistindo em linhas e colunas. O PostgreSQL vem com várias tabelas internas que contêm várias informações do sistema. No entanto, também podemos criar novas tabelas em bancos de dados e esquemas definidos pelo usuário.



Pré-requisitos:

Para executar as etapas demonstradas neste guia, você precisará dos seguintes componentes:

  • Um sistema Linux devidamente configurado. Aprender mais sobre Instalando o Ubuntu no VirtualBox .
  • Uma instalação adequada do PostgreSQL. Verificação de saída Instalando o PostgreSQL no Ubuntu .
  • Acesso a um usuário PostgreSQL com permissão de USO para um banco de dados.

Para os fins deste guia, usaremos postgres para executar todas as ações no PostgreSQL.

Criando Tabelas em um Esquema

Criando um banco de dados de demonstração

Conforme mencionado anteriormente, os esquemas existem em um banco de dados. Para fins de demonstração, criamos um banco de dados fictício, evitando a interrupção de qualquer banco de dados existente.

Acesse o shell do PostgreSQL como postgres :

$ sudo -i -u postgres psql

Criar um novo banco de dados demo_db:

$ CREATE DATABASE demo_db;

Verifique se o banco de dados foi criado com sucesso:

$ \l

Por fim, conecte-se ao banco de dados recém-criado:

$ \connect demo_db;

O Esquema Público

Qualquer novo banco de dados no PostgreSQL vem com um esquema padrão – público . Se você tentar criar um objeto sem especificar o nome do esquema, o esquema público será selecionado por padrão.

O seguinte comando imprime todo o esquema disponível no banco de dados PostgreSQL:

$ \dn

Como alternativa, também podemos usar a seguinte consulta SQL:

$ SELECT * FROM pg_catalog.pg_namespace;

Criando um novo esquema

Para criar um novo esquema em um banco de dados específico, a estrutura do comando é a seguinte:

$ CRIAR ESQUEMA ;

Seguindo a regra, vamos criar um novo esquema demo_schema:

$ CREATE SCHEMA demo_schema;

Verifique a lista de esquemas para verificação:

$ \dn

Criando uma tabela em um esquema

Agora que criamos o esquema de destino, podemos preenchê-lo com tabelas.

A sintaxe para criar uma tabela é a seguinte:

CREATE TABLE . (

...
)

Aqui:

  • esquema : Este campo especifica o nome do esquema onde a tabela é criada. Se nenhum valor for fornecido, a tabela será criada sob o público esquema.

Para demonstração, criamos uma tabela simples:

CREATE TABLE demo_schema.demo_table (

NOME CHAR(64),

ID INT NÃO NULO

);

Aqui:

  • O campo NOME é especificado para armazenar uma string de 64 caracteres.
  • O campo EU IRIA contém os valores inteiros. O termo ' NÃO NULO ' indica que EU IRIA não pode ser vazio ou nulo.

Podemos verificar a existência da tabela usando a seguinte consulta:

$ SELECT * FROM demo_schema.demo_table;

Inserindo dados na tabela

Com a tabela pronta, podemos agora inserir alguns valores:

INSERT INTO demo_schema.demo_table (NOME, ID)

VALORES

('PQR', 45),

('IJK', 99)

;

Confira o conteúdo da tabela:

$ SELECT * FROM demo_schema.demo_table;

Gerenciamento de Esquemas

Permissões de Esquema

Com a ajuda da permissão de esquema, podemos gerenciar qual função pode executar qual ação em um esquema específico. De todos os privilégios possíveis, os esquemas suportam apenas CRIAR e USAR.

Para atualizar a permissão do esquema para uma função específica, a estrutura do comando é a seguinte:

$ GRANT ON SCHEMA TO ;

Para revogar a permissão do esquema para uma função específica, a estrutura do comando é a seguinte:

$ REVOKE ON SCHEMA TO ;

Verifique a alteração usando o seguinte comando:

$ \dn+

Alterar Propriedades do Esquema

Com a ajuda do ALTERAR ESQUEMA declaração, podemos modificar as várias propriedades de um esquema. Por exemplo: propriedade, nome do esquema, etc.

Para alterar o nome do esquema, use a seguinte consulta:

$ ALTER SCHEMA RENAME TO ;

Para alterar a propriedade de um esquema, use a seguinte consulta:

$ ALTER SCHEMA PROPRIETÁRIO PARA ;

Observe que, para alterar a propriedade, o usuário atual deve ter o CRIO permissão para o esquema.

Excluindo um Esquema

Se um esquema não for mais necessário, podemos excluí-lo usando o DERRUBAR consulta:

$ DROP SCHEMA

Se o esquema contiver algum objeto, precisamos do CASCATA modificador:

$ DROP SCHEMA CASCADE;

Gerenciamento de Tabelas

Permissões de tabela

Como o esquema, cada tabela também vem com gerenciamento de permissão, definindo qual ação uma função pode executar na tabela.

Para verificar as permissões de uma tabela, use o seguinte comando no psql:

$ \dp

Alterar Propriedades da Tabela

Com a ajuda do ALTERAR A TABELA declaração, podemos modificar os vários aspectos de uma tabela já existente.

Por exemplo, para descartar uma coluna, a consulta fica assim:

$ ALTER TABLE DROP COLUMN ;

Para adicionar uma nova coluna, podemos usar a seguinte consulta:

$ ALTER TABLE
ADD COLUMN ;

Também podemos definir a compactação para uma coluna específica:

$ ALTER COLUMN SET COMPRESSION ;

Excluindo uma tabela

Para excluir uma tabela de um esquema, podemos usar o SAIR DA TABELA consulta:

$ DROP TABLE ;

Observe que, ao contrário dos esquemas, o SAIR DA TABELA a consulta não produzirá um erro se a tabela estiver vazia ou não.

Conclusão

Neste guia, demonstramos como criar as tabelas em um esquema no PostgreSQL. Criamos um esquema fictício dentro de um banco de dados fictício e criamos uma tabela dentro do esquema. Este guia também mostrou como gerenciar as várias propriedades de esquemas e tabelas.

Para melhor integridade dos dados, você pode configurar um replicação lógica do PostgreSQL . Para manter o banco de dados PostgreSQL saudável, você pode configurar o vácuo automático para limpar as tuplas mortas deixadas pelos registros excluídos.

Para obter mais guias do PostgreSQL, confira o Subcategoria do PostgreSQL .