Translate

Mostrando postagens com marcador comando psql. Mostrar todas as postagens
Mostrando postagens com marcador comando psql. Mostrar todas as postagens

segunda-feira, 27 de janeiro de 2014

PostgreSql - Criar um banco de dados parte II

Nesta segunda parte do artigo, vamos descrever como utilizar o utilitário "createdb" para criar um banco de dados.

SINTAXE BÁSICA

createdb  <nome_do_banco> <opções> <descrição> 

Inicialmente, abra o terminal.  Para  exibir as opções disponíveis no utilitário "createdb"  execute o comando:
createdb --help

Após executar o comando, serão exibidas as opções disponíveis, conforme a imagem abaixo:




A seguir, apresentamos um exemplo com a utilização de duas dessas opções.

1º Exemplo

Criar um banco chamado "db_loja" e fazer a conexão em uma máquina local utilizando o usuário "postgres".

Solução

Vamos utilizar os seguinte parâmetros:

-h: indica qual a máquina que está localizada o servidor de banco de dados. Há duas possibilidades passar o ip ou o nome da máquina. Como a minha máquina é local posso passar o ip 127.0.0.1 ou nome "localhost";

-U: usuário que vai ser utilizado para se conectar ao servidor;

createdb  db_loja  -h127.0.0.1 -Upostgres

Após executarmos o comando, o banco foi criado e podemos fazer a conexão. Veja a imagem abaixo:

Relembrando, conforme citamos na primeira parte do artigo, que para criar um banco o usuário do banco deve ser um super usuário, exemplo postgres, ou deve ser um usuário com o privilégio de CREATEDB.

quinta-feira, 23 de janeiro de 2014

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:


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

segunda-feira, 28 de outubro de 2013

Exibir uma lista das tabelas de um banco no PostgreSQL

Há três formas para exibir uma lista com as tabelas de um banco no PostgreSql :

1ª) Comando psql: você pode utilizar o comando \dt 
Neste exemplo, vamos listar as tabelas do banco: db_01



2ª) Utilizar a view "pg_tables" para fazer uma consulta. Esta view armazena informações sobre as tabelas do banco e já está por padrão no catálogo de sistema do postgresql. Veja a sua localização na imagem abaixo:



A consulta para listar as tabelas (inclusive as que são padrão do sistema) é:
SELECT tablename FROM pg_tables ORDER BY tablename;

Caso queira listar somente as tabelas criada por você, faça um filtro no schema, neste exemplo só foram criadas tabelas no schema "public" que é padrão do postgresql. Veja a imagem abaixo:


A consulta para lista somente suas tabelas é

SELECT tablename FROM pg_tables
WHERE schemaname = 'public'  
ORDER BY tablename;

3ª) Utilizar a view "tables" para listar suas tabelas. Esta view já está por padrão no catálogo de sistema do postgresql em information_schema.

O information_schema é um padrão ANSI, que contém views que fornecem informações sobre o banco de dados: tabelas, views, colunas e procedures. 

Veja a sua localização na imagem abaixo:





SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';

domingo, 27 de outubro de 2013

Exibir uma lista dos bancos de dados no PostgreSQL

Há duas formas para exibir uma lista com os bancos de dados do PostgreSql :

1ª) Comando psql: você pode utilizar o comando \list ou \l
Neste exemplo serão listados 3 bancos: db_01, db_02 e db_03;






2ª) Fazer uma consulta na tabela "pg_database" que armazena informações sobre os bancos de dados criados. Esta tabela já vem por padrão na instalação e está localizada no catálogo do sistema. 
O catálogo armazena informações sobre os  bancos de dados, tabelas, colunas, índices entre outros.  Veja a imagem abaixo:


A consulta para listar os bancos dados é:


SELECT datname FROM pg_database;



Também é possível filtrar os bancos de acordo com o nome. Veja os exemplos abaixo:

1º)  Bancos que iniciam com db

SELECT datname FROM pg_database  WHERE datname LIKE 'db%';



2º)  Bancos que terminam com 01

SELECT datname FROM pg_database  WHERE datname LIKE '%01';


3º) Bancos que contém com b_0, em qualquer posição:

SELECT datname FROM pg_database WHERE  datname LIKE '%b_0%';



4º) Banco chamado db_02

SELECT datname FROM pg_database WHERE  datname LIKE 'db_02';

OU

SELECT datname FROM pg_database WHERE  datname = 'db_02';


sábado, 19 de outubro de 2013

psql não é reconhecido como um comando interno

Para este erro não ser exibido no prompt de comando é necessário configurar a variável de ambiente do Windows. 




Neste post, será descrito como configurar a variável de ambiente no Windows 7 e no Windows 10.


Configuração no Windows 7


Para configurar a variável de ambiente no Windows 7 siga os seguintes passos:

1º) Selecione "Iniciar", logo após selecione "Painel de Controle":

 


2º) No "Painel de Controle" selecione a opção "Sistema e Segurança", conforme imagem abaixo:

 


 

3º) Selecione a opção "Sistema", conforme figura abaixo:





4º) Em seguida, selecione a opção "Configuração avançadas do sistema", conforme imagem abaixo:
5º) Em "Propriedades do Sistema" escolha a aba "Avançado" e selecione o botão "Variáveis de Ambiente", conforme imagem abaixo.

6º)  Ao exibir a janela de "Variáveis de Ambiente", escolha a variável do sistema chamada "Path" e selecione o botão "Editar", conforme imagem abaixo:


7º) Vai ser aberta a janela "Editar variável do sistema". O campo que vai ser editado é "Valor da variável". Vá com o cursor do mouse até o final do texto. Quando o cursor estiver no final do texto, adicione ";" e acrescente o diretório "bin" onde se encontra o arquivo psql.exe, no meu caso é "C:\Program Files\PostgreSQL\9.0\bin". Após acrescentar o caminho, selecione o botão "ok", conforme imagem abaixo:
 
 



Para localizar o seu arquivo psql.exe digite no prompt:
 
dir psql.exe /s /b
 

 
 
8º) Reinicie o Windows. 

Após a configuração o comando "psql" será reconhecido no "prompt de comando". Conforme imagem abaixo:



Configuração no Windows 10

No Windows 10, as telas são um pouco diferentes. Veja o procedimento de configuração a seguir:

1º) No "Painel de Controle" selecione a opção "Sistema e Segurança", conforme imagem abaixo:




2º) Selecione a opção "Sistema", conforme figura abaixo:



3º) Em seguida, selecione a opção "Configuração avançadas do sistema", conforme imagem abaixo:




4º)  Na janela "Propriedades do Sistema" escolha a aba "Avançado" e selecione o botão "Variáveis de Ambiente", conforme imagem abaixo:





5º)  Após exibir a janela de "Variáveis de Ambiente". Escolha a variável de sistema chamada "Path" e selecione o botão "Editar", conforme imagem abaixo:



6º) Vai ser aberta a janela "Editar variável de ambiente".  Selecione o botão novo: 



7º) Repare que será criado um campo de texto na parte inferior da tela. 



8º)  Acrescente o diretório "bin", onde se encontra o arquivo psql.exeno meu caso é "C:\Program Files\PostgreSQL\9.6\binApós acrescentar o caminho, selecione o botão "ok", conforme imagem abaixo: 


Para localizar o seu arquivo psql.exe digite no prompt:

 
dir psql.exe /s /b
 
 

9º) Na tela "Variáveis de Ambiente" clique em "ok".


  
10º)  Na tela "Propriedades do Sistema" clique em "ok".



11º) Abra um novo prompt (no prompt aberto inicialmente, a configuração não foi alterada) Teste o comando psql. Veja a imagem abaixo:




 A partir de agora o comando será executado.

Deixe o seu comentário ou sugestão.
Gostou?  Siga no Facebook.

sexta-feira, 27 de setembro de 2013

WARNING: Console code page (850) differs from Windows code page (1252) 8-bit characters might not work correctly.


O psql usa uma codificação diferente do Windows. Para que a mensagem, exibida na imagem abaixo, não seja apresentada na inicialização do postgre, você deve alterar a codificação antes de executar o comando psql.




Há duas alternativas para corrigir este problema:

1ª alternativa temporária: basicamente devemos abrir o console, digitar " cmd.exe /c chcp 1252 " e alterar a fonte do prompt de comando para "Lucida Console". Essa solução é temporária, pois toda vez que  o console for aberto, esse procedimento deve ser executado novamente.
Neste post esse procedimento será explicado com maiores detalhes.

2ª alternativa definitiva: basicamente devemos alterar o arquivo runpsql.bat e adicionar a linha 
chcp 1252

Antes do comentário:
REM Run psql

Esse procedimento é definitivo, ou seja, o procedimento é feito uma vez só, e ao abrir o prompt não será necessário fazer nenhuma configuração adicional.



1ª alternativa - temporária


1º passo) Saia do postgre. Para sair do postgre digite \q



2º passo) Para alterar a codificação digite cmd.exe /c chcp 1252 

O Windows-1252 ou o CP-1252 é uma codificação de caracteres de 1 byte do alfabeto latino, usada por padrão nos componentes legados do Microsoft Windows em inglês e algumas outras línguas ocidentais.



3º passo) Altere a fonte para "Lucida Console", pois a fonte "Fontes de varredura" não funciona com o código ANSI. Para alterar a fonte, selecione o menu, no canto superior esquerdo, e escolha o item "Propridades", conforme exibido na figura abaixo:
.

4º passo) Em "Propriedades do Prompt de Comando", escolha a guia "Fonte". Selecione a fonte "Lucida Console" e clique em "OK", conforme exibido na figura abaixo.



O erro não será mais exibido para o prompt que está aberto. Porém alteração da codificação deverá ser feita toda vez que você abrir um novo prompt de comando antes de usar o comando psql.






2ª alternativa - definitiva

1º passo) Localize o diretório do arquivo "runpsql.bat". No meu caso, o diretório é: "C:\Program Files\PostgreSQL\9.6\scripts" Inclua este diretório  na variável "path" do windows.

Procedimento para incluir a variável de ambiente no Windows 10:

a) Acesse o painel de controle;

b)  No "Painel de Controle" selecione a opção "Sistema e Segurança". Veja a imagem abaixo:

c) Selecione a opção "Sistema". Veja a imagem abaixo:


d) Em seguida, selecione a opção "Configuração avançadas do sistema". Veja a imagem abaixo:


e) Na janela "Propriedades do Sistema" escolha a aba "Avançado" e selecione o botão "Variáveis de Ambiente". Veja a imagem abaixo:



f)  Após exibir a janela de "Variáveis de Ambiente". Escolha a variável de sistema chamada "Path" e selecione o botão "Editar". Veja a imagem abaixo:



g) Será aberta a janela "Editar variável de ambiente". Selecione o botão novo. Veja a imagem abaixo:


h) Repare que será criado um campo de texto na parte inferior da tela. Veja a imagem abaixo:



i)  Acrescente o diretório "scripts" da instalação do  PostgreSql, no meu caso é "C:\Program Files\PostgreSQL\9.6\scripts" Após acrescentar o caminho,  selecione o botão "ok", conforme imagem abaixo:



j) Na tela "Variáveis de Ambiente" clique em "ok". Veja a imagem abaixo:



k)  Na tela "Propriedades do Sistema" clique em "ok". Veja a imagem abaixo:



2º passo) Execute como administrador o "Bloco de Notas" (notepad).




3º) Abra o arquivo "runpsql.bat" no "Bloco de Notas" (notepad). No meu caso, o arquivo está localizado no diretório é: "C:\Program Files\PostgreSQL\9.6\scripts".





4º passo) Altere o arquivo runpsql.bat e adicione a linha 
chcp 1252

Antes do comentário:
REM Run psql
Veja a imagem abaixo:



5º passo) Salve o arquivo.

6º passo) Abra um novo prompt de comando e execute
runpsql




7º passo) Agora é só se autenticar no banco de dados. Veja imagem abaixo:



Veja que o alerta não será mais exibido.