Crie um banco de dados no PostgreSQL usando o comando createdb

Crie Um Banco De Dados No Postgresql Usando O Comando Createdb



Neste guia, aprenderemos como criar um banco de dados no PostgreSQL usando o comando createdb.

Pré-requisitos:

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

  • Um sistema Linux devidamente configurado. Para testar, considere configurando uma máquina Ubuntu virtual usando o VirtualBox .
  • PostgreSQL instalado e configurado. Aprender mais sobre Instalando o PostgreSQL no Ubuntu .
  • Acesso a um usuário não root com privilégio sudo .

Bancos de Dados PostgreSQL

PostgreSQLName é um sistema de banco de dados objeto-relacional gratuito e de código aberto compatível com SQL. Ele pode funcionar com consultas relacionais (SQL) e não relacionais (JSON). Saiba mais sobre o recursos do PostgreSQL .







No PostgreSQL, a hierarquia de dados é a seguinte:



  • conjunto
  • base de dados
  • esquema
  • tabela (ou outros objetos; por exemplo, função)

Qualquer instância do PostgreSQL pode aceitar várias conexões de cliente. O cliente deve especificar o nome do banco de dados na solicitação de conexão. Apenas um banco de dados por conexão é permitido. No entanto, um cliente pode abrir várias conexões com o servidor, conectando-se a um ou mais bancos de dados simultaneamente.



Criando um banco de dados no PostgreSQL

1. Abrindo uma conexão com o servidor

Para criar um novo banco de dados, conecte-se primeiro ao servidor PostgreSQL:





$ sudo -eu -em postgres
$ psql

Observe que a criação do banco de dados é uma operação restrita. Somente usuários com privilégios suficientes têm permissão para executar a ação.



2. Listando os bancos de dados atuais
Execute a seguinte consulta em psql para imprimir a lista de bancos de dados no servidor:

$ \lista

Durante a instalação, o PostgreSQL cria o primeiro banco de dados do servidor que é o “postgres”. Dois bancos de dados adicionais também são criados:

  • modelo1 : Sempre que criar qualquer novo banco de dados dentro do cluster, “template1” é clonado.
  • modelo0 : Serve como uma cópia original do conteúdo original de “template1”.

Não crie objetos dentro de “template1” a menos que você queira que eles façam parte de cada banco de dados recém-criado. Se “template1” for modificado, “template0” pode ser clonado para criar um novo banco de dados sem nenhuma adição de site local.

3. Criando um novo banco de dados
Para criar um novo banco de dados, execute a seguinte consulta no psql:

$ CRIAR BANCO DE DADOS < db_name > ;

Aqui:

  • A função atual é automaticamente assumida como proprietária do novo banco de dados.
  • O proprietário tem o privilégio de alterar o proprietário para uma função diferente.

Verifique a lista de bancos de dados se a ação for bem-sucedida usando o seguinte comando:

$ \lista

Com uma conta privilegiada, também podemos criar um banco de dados para outra pessoa usando o seguinte comando:

$ CRIAR BANCO DE DADOS < db_name > PROPRIETÁRIO < papel > ;

O Comando Createdb

No método anterior, tínhamos que passar por várias etapas para criar um banco de dados:

  • Conecte-se ao servidor PostgreSQL usando psql.
  • Execute as consultas para criar um novo banco de dados.

Para agilizar o processo, o PostgreSQL vem com o comando createdb. Ele basicamente atua como um wrapper para essas ações. Podemos executar diretamente o comando createdb a partir do shell.

1. Criando um banco de dados usando o Createdb
Para criar um banco de dados usando o servidor de banco de dados padrão, use o seguinte comando:

$ criadob < db_name >

Verifique a ação usando o seguinte comando:

$ psql -c '\lista'

Com várias opções, também podemos ajustar as operações do createdb. Confira o exemplo a seguir:

$ criadob -h < hospedar > -p < porta > -T < modelo > -e --nome de usuário = < nome de usuário > --senha --maintenance-db = < manutenção_db_name > < db_name >

Aqui:

  • -h : Este parâmetro especifica a localização do servidor PostgreSQL (endereço IP ou nome de domínio).
  • -p : A porta para conectar ao servidor.
  • -T : O modelo a ser usado ao criar o novo banco de dados. Pode ser template0, template1 ou qualquer outro banco de dados.
  • -e : Ecoa a consulta equivalente.
  • -nome de usuário : O nome de usuário para se conectar ao servidor.
  • -senha : força o comando createdb a solicitar uma senha antes de se conectar ao servidor. Na maioria dos casos, não é necessário, pois o createdb solicita automaticamente uma senha se o servidor exigir. No entanto, ele gasta uma tentativa de conexão para descobrir isso.
  • –manutenção-db : O banco de dados ao qual se conectar ao criar o novo banco de dados. Se não for especificado, o postgres será assumido por padrão. Se postgres não existir, 'template1' será assumido.

Hora de colocá-lo em ação. Execute o seguinte comando createdb:

$ criadob -h host local -p 5432 -T modelo0 -e --nome de usuário =postgres test_db

Como a saída sugere, é equivalente à seguinte consulta:

$ CREATE DATABASE test_db TEMPLATE template0;

Gerenciamento de banco de dados adicional

Nesta seção, vamos dar uma olhada em outras operações de gerenciamento de banco de dados.

Listando os bancos de dados

Existem algumas maneiras de listar os bancos de dados armazenados no servidor. Já demonstramos um método nas seções anteriores:

$ \lista

Outra maneira é examinar o catálogo do sistema “pg_database”:

$ SELECIONE o nome de dados FROM pg_database;

Excluindo um banco de dados

Para excluir um banco de dados, execute a seguinte consulta:

$ DROP DATABASE < db_name > ;

Semelhante ao createdb, o PostgreSQL também vem com o comando dropdb que podemos executar a partir do shell. Dê uma olhada no seguinte exemplo:

$ dropdb -h < hospedar > -p < porta > --nome de usuário = < nome de usuário > --senha -e < db_name >

Aqui:

  • -h : O servidor PostgreSQL ao qual se conectar.
  • -p : A porta do servidor PostgreSQL à qual se conectar.
  • -e : Ecoa a consulta equivalente.

Observe que o usuário deve ter privilégios suficientes para excluir um banco de dados.

Alterando a propriedade de um banco de dados

O proprietário de um banco de dados pode executar qualquer ação no banco de dados, inclusive excluir o banco de dados. Por padrão, o usuário que cria o banco de dados é atribuído como proprietário. No entanto, podemos reatribuir a propriedade a um usuário diferente.

Para alterar o proprietário do banco de dados, execute a seguinte consulta no psql:

$ ALTER DATABASE < db_name > PROPRIETÁRIO PARA < novo dono > ;

Isso, no entanto, não mudará a propriedade dos objetos no banco de dados (incluindo tabelas). Nesses casos, temos que usar uma consulta diferente. Conecte-se ao banco de dados de destino e execute a seguinte consulta:

$ REATRIBUIR DE PROPRIEDADE DE < antigo_proprietário > PARA < novo dono > ;

Embora conveniente, esta consulta vem com algumas ressalvas:

  • Ao conectar-se ao postgres (banco de dados), ele pode alterar a propriedade de vários bancos de dados de uma só vez.
  • Não use esta consulta quando o proprietário original for postgres, pois isso pode corromper toda a instância do banco de dados.

Bônus: executando as consultas do shell

Até agora, executamos as consultas no console do PostgreSQL. E se você quiser incorporar algumas funcionalidades de banco de dados em seus scripts? Os comandos createdb e dropdb só podem executar operações específicas.

Para resolver isso, podemos usar o psql como um canal. Além do shell interativo padrão, o psql também pode executar as consultas em tempo real.

Método 1:

A estrutura do comando é a seguinte:

$ psql -h < hospedar > -p < porta > -EM < nome de usuário > -d < base de dados > -c < consulta >

Aqui:

  • -h : O endereço do servidor PostgreSQL.
  • -p : A porta à qual conectar (o valor padrão é 5432).
  • -EM : O usuário para se conectar como.
  • -d : O banco de dados ao qual se conectar.
  • -c : A consulta a ser executada.

Método 2:

O PostgreSQL vem com outro recurso interessante: URI de conexão. É uma maneira inteligente de codificar perfeitamente todos os parâmetros de conexão. A estrutura de um URI de conexão é a seguinte:

$ postgresql: //< nome de usuário > : < senha >@< hospedar > : < porta >/< db_name >

Aqui:

  • postgresql ou postgres : o protocolo exclusivo para URI de conexão PostgreSQL.

Para se conectar a um banco de dados usando o URI de conexão, use o seguinte comando psql:

$ psql -d < connection_uri > -c < consulta >

Conclusão

Aprendemos sobre várias maneiras de criar bancos de dados no PostgreSQL. Demonstramos como criar um banco de dados usando a consulta CREATE DATABASE. Também mostramos a criação do banco de dados usando o comando createdb. Além disso, também abordamos algumas outras ações importantes de gerenciamento de banco de dados, como excluir bancos de dados e alterar o proprietário.

Interessado em aprender mais sobre o PostgreSQL? Confira a Subcategoria do PostgreSQL y que contém vários guias sobre vários recursos; por exemplo: funções , expressões regulares , tabelas , e muito mais.