# PostgreSQL schema: Como manter o banco de dados organizado

O PostgreSQL schema permite agrupar várias tabelas, facilitando a organização e administração de bancos de dados. Você pode criá-lo usando o comando `CREATE SCHEMA`. Caso não precise mais dele, remova-o com o comando `DROP SCHEMA`.

## O que é PostgreSQL schema?

No PostgreSQL, um **schema é uma coleção de tabelas**. Ele também pode incluir índices, sequências, tipos de dados e funções, tornando-o similar a um diretório. No entanto, ao contrário dos diretórios, um schema não pode ser aninhado. Esse método de organização de objetos é especialmente útil para administrar bancos de dados que abrangem muitas tabelas.

Os schemas ficam situados entre o nível do banco de dados e as tabelas individuais. Esta é uma visão geral da estrutura hierárquica completa desse popular sistema de gerenciamento de banco de dados:

1. Instância (frequentemente chamada de “servidor” no PostgreSQL, contém múltiplos bancos de dados)
2. Banco de dados
3. Schema
4. Tabela
5. Linha

Para criar um novo schema no PostgreSQL, use o comando `CREATE SCHEMA`. Para removê-lo, utilize `DROP SCHEMA`. Analisaremos os dois comandos a seguir.

## Qual é a sintaxe de um PostgreSQL schema?

A sintaxe para criar um schema no PostgreSQL é a seguinte:

```postgresql
CREATE SCHEMA nome;
```

O comando acima instrui o PostgreSQL a criar um schema dentro do banco de dados. Ao inserir o comando, é preciso informar um nome único para o schema.

## Como atribuir uma nova tabela a um PostgreSQL schema

Ao criar novas tabelas usando o comando [PostgreSQL `CREATE TABLE`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-create-table/), é possível atribuí-las a um schema. Esta é a sintaxe para fazer isso:

```postgresql
CREATE TABLE seu_schema.nova_tabela (
…
);
```

Para demonstrar como funciona, vamos criar um schema chamado `clientes`:

```postgresql
CREATE SCHEMA clientes;
```

Em seguida, criaremos uma nova tabela chamada `lista_clientes_brasil` e a adicionaremos ao schema `clientes`:

```postgresql
CREATE TABLE clientes.lista_clientes_brasil (
id INT PRIMARY KEY NOT NULL,
nome VARCHAR(50) NOT NULL,
país VARCHAR(50),
endereço VARCHAR(255)
);
```

Esse código criará uma tabela sem dados no schema schema `clientes`. Você poderá preenchê-la com dados usando o comando [PostgreSQL `INSERT INTO`](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-insert-into/).

Nota Se nenhum schema for especificado, as novas tabelas serão atribuídas automaticamente ao schema padrão (`public`).

## Como excluir um schema com o comando `DROP SCHEMA`

Você também pode remover um PostgreSQL schema caso não precise mais dele. Se o schema estiver vazio, use o seguinte comando para fazer isso:

```postgresql
DROP SCHEMA clientes;
```

Para excluir um schema e todos os objetos contidos nele, adicione a ação `CASCADE`:

```postgresql
DROP SCHEMA clientes CASCADE;
```

A execução do comando acima removerá permanentemente o schema e todos os seus dados, portanto, use-o com cautela.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-schema/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/postgresql-schema/) for AI/LLM consumption.