PostgreSql - Criar um banco de dados parte I
Tecnologia da Informação

PostgreSql - Criar um banco de dados parte I


Vamos apresentar alguns exemplos da criação de um banco de dados no postgresql.
Podemos criar um banco das seguintes formas:
Criar um banco através da linha de comando via sql

Antes de criar o banco vamos fazer a conexão com o servidor:

psql -h<nome ou ip do host> -U <nome do usuário> -d<nome do banco dados>

Exemplo

psql -h 127.0.0.1 -U postgres -d postgres

OU

psql -h 127.0.0.1 -U postgres

Parâmetros

-h: como estou executando localmente na minha máquina utilizei o ip 127.0.0.1.
Também poderia ter passado o nome localhost;

-U: nome do usuário, no meu caso postgres.
Para você criar um banco você deve ser um super usuário ou ser um usuário com o privilégio de "CREATEDB".
O usuário postgres é um super usuário. No final do artigo, mostramos como listar os privilégios dos usuários

-d: nome do banco que será conectado
Neste exemplo, nos conectamos ao banco de dados "postgres". Este banco é padrão do postgresql, pois já foi criado na instalação.
Quando o nome de usuário é igual ao do banco, como neste caso, não é necessário passar o parâmetro "-d" com o nome do banco, pois quando omitimos o nome do banco, o psql considera que é o nome do banco é igual ao nome do usuário;


Após ter se conectado com o servidor, você pode criar o banco executando a sentença sql conforme o exemplo a seguir:

SINTAXE

CREATE DATABASE nome_do_banco;

Exemplo

Vamos criar um banco de chamado db_livraria

CREATE DATABASE db_livraria;

Veja a imagem abaixo da criação do banco de dados db_livraria:


Agora que já criamos o banco, como vamos acessá-lo?

Para acessarmos um banco utilizamos o comando psql "\c".

\c <nome do banco>

No caso de "db_livraria", ficará ;
\c db_livraria



Agora vamos listar todos os bancos do postgresql para verificar com quais parâmetros eles são criados, utilize o comando psql "\l", conforme exibido na imagem abaixo:



Ao observar o banco db_livraria, percebemos que alguns parâmetros foram incluídos por padrão como o proprietário do banco, a codificação "UTF-8" entre outros.
Estas configurações foram baseadas no banco de dados "template1". O template1 é um modelo para a criação de outros bancos de dados. Ele é criado na instalação do postgresql.   Em outros artigos, falaremos mais sobre o template1. 
Porém caso tenhamos necessidade, podemos passar os parâmetros na criação de um banco. Aqui descrevemos dois deles:  "OWNER" e "CONNECTION LIMIT". Para consultar todos os parâmetros, verifique o manual do postgresql.

CREATE DATABASE nome_do_banco
WITH 
OWNER                        =  <Nome do usuário proprietário do banco>
CONNECTION LIMIT =  <número máximo de conexões do banco.>


PARÂMETRO OWNER

Após o parâmetro OWNER colocamos o nome do usuário que será proprietário do novo banco, caso você não utilize este parâmetro, o usuário que está executando o comando será o proprietário do banco. 

Exemplo do parâmetro OWNER

Vamos criar um banco chamado db_financeiro. A proprietária deste banco será a Ana.
O nome de usuário da Ana vai ser: ana.

Solução

Antes de criarmos o banco, vamos criar a usuária ana, caso ela não exista.

CREATE ROLE ana LOGIN PASSWORD 'cs486338#';

Após executarmos a sentença acima, criamos a usuária ana. Agora vamos criar o banco db_financeiro. 

CREATE DATABASE db_financeiro
WITH 
OWNER = ana;

Observações

Após o WITH passamos os parâmetros que queremos utilizar no banco. Porém o uso do  WITH é opcional, ou seja também é possível passar os parâmetros sem utilizá-lo na sentença:
O sinal de '=' também é opcional.
A sentença também pode ser escrita desta forma.

CREATE DATABASE db_financeiro OWNER  ana;

Para acessarmos o banco "db_financeiro" utilize o comando psql:


\c db_financeiro

PARÂMETRO CONNECTION LIMIT

CONNECTION LIMITnúmero conexões podem ser feitas simultaneamente (ao mesmo tempo) em um banco. Caso você não passe este parâmetro não haverá limite de conexões, ou seja por padrão o valor deste parâmetro será -1.

Exemplo do parâmetro CONNECTION LIMIT

Criar um banco chamado db_escola. Serão permitidos, no máximo, duas conexões e a proprietária será a ana.

CREATE DATABASE db_escola
WITH 
CONNECTION LIMIT = 2
OWNER = ana;

Após a criação do banco, vamos sair da conexão com o usuário postgres, para isso vamos utilizar o comando psql "\q".




Agora vamos nos conectar com a usuária ana.
Quando a usuária ana tentar fazer a terceira conexão,  haverá um erro devido ao limite de 2 conexões. Veja a imagem abaixo. 




Observações

Caso você queira aumentar o limite de conexões do banco "db_escola" para 10 execute a sentença abaixo, na 1ª ou na 2ª conexão:

ALTER DATABASE db_escola CONNECTION LIMIT 10;

Importante: se você precisar limitar o número de conexões no servidor postgresql e não em um banco em específico, você deve alterar a diretiva "max_connections" no arquivo "postgresql.conf" e reiniciar o serviço, mas isso é assunto para um próximo post. 

Verificar os privilégios de usuários

Como prometemos no início do artigo, vamos mostrar como verificar os privilégio de usuário. Para isso, vamos utilizar o comando psql "\du".
O resultado da execução deste comando é exibido na imagem a seguir:


Como podemos ver na imagem acima, os usuários carlos, caio e postgres terão privilégio 
para criar banco de dados, pois os dois primeiros tem a permissão de CREATEDB e o 
último tem a permissão de super-usuário.
A ana não terá permissão para criar novos bancos de dados.

Veja também:

PostgreSql - Criar um banco de dados parte II
PostgreSql - Criar um banco de dados parte III
PostgreSql - Criar tabela primeira parte
Postgresql - Criar tabela segunda parte

Faça um comentário no final do artigo, suas sugestões ou críticas serão bem-vindas.



loading...

- Realizar Backup Do Mysql No Linux
Fazendo Backup de um banco de dados no MySQL no Ubuntu 12.04.1 Lista dos banco de dados padrão após a instalação do MySQL, com o comando: show databases; Criar um novo banco para ser usado como exemplo para realização do backup. Comando para...

- Postgresql - Mudar O Nome De Uma Tabela
Para renomear uma tabela no PostgreSql utilizamos o seguinte comando: ALTER TABLE nome_da_tabela RENAME TO novo_nome_da_tabela;Caso tenha interesse, faça o download do exemplo, veja no GitHub ou assista o vídeo no final do artigo. 1º Exemplo Vamos...

- Postgresql - Criar Um Banco De Dados Parte Iii
Na primeira e segunda parte do artigo, descrevemos alguns exemplos da criação de um banco de dados através da linha de comando. Nesta terceira parte do artigo, apresentamos um vídeo mostrando como criar um banco através de interface gráfica. Existem...

- [oracle] Tempo Limite De Conexão
Neste post irei explicar como colocar um tempo de limite de conexão para os usuários do banco de dados Oracle. 1. Conecte-se ao banco de dados com o usuário system ou sys. 2. Verifique se o parâmetro RESOURCE_LIMIT está como 'true',...

- Mysql - Primeiros Passos
Instalar e gerenciar um banco de dados MySql é bem simples. InstalaçãoDownload e instalação do XAMPP, que da suporte ao MySql e a outras ferramentas como o phpMyAdmin, usado para gerenciar seus bancos de dados.Inicie o XAMPP e no modulo MySql clique...



Tecnologia da Informação








.