sexta-feira, 11 de outubro de 2013

Instalando Postgresql 9.1 no CentOS 6 e Red Hat Enterprise 6.

Instalando Postgresql 9.1 no CentOS 6 e Red Hat Enterprise 6.

# yum install wget
# cd /tmp
# wget http://yum.pgrpms.org/9.1/redhat/rhel-6-x86_64/pgdg-redhat91-9.1-5.noarch.rpm
# rpm -Uvh pgdg-redhat91-9.1-5.noarch.rpm
# yum install postgresql91-server
* Verificando pacotes instalados:
# rpm -qa | grep postgres
postgresql91-server-9.1.8-2PGDG.rhel6.x86_64
postgresql91-9.1.8-2PGDG.rhel6.x86_64
postgresql91-libs-9.1.8-2PGDG.rhel6.x86_64
# /etc/init.d/postgresql-9.1 initdb
# chkconfig postgresql-9.1 on
initdb – Cria um serviço "postgresql-9.1" de inicialização automática no banco de dados PostgreSQL.
* Subindo o serviço:
# /etc/init.d/postgresql-9.1 start
* Verificando status do serviço:
# /etc/init.d/postgresql-9.1 status
(pid  2647) está em execução...
* Setar senha no usuário postgres
# sudo -u postgres psql
psql (9.1.8)
Digite "help" para ajuda.
 
postgres=# alter user postgres with encrypted password 'teste';
* Alterar
# vi /var/lib/pgsql/9.1/data/pg_hba.conf
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
para
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# /etc/init.d/postgresql-9.1 restart
* Testando
# psql -h localhost -U postgres -d postgres
Senha para usuário postgres: 
psql (9.1.8)
Digite "help" para ajuda.
 
postgres=#

quinta-feira, 10 de outubro de 2013

Dicas PostgreSQL

Comandos interessantes:
SELECT version();
SHOW search_path; -- nome do esquema
SELECT cast(random() * 10 as int);SELECT random(); -- gera um int de 0 a 10
SELECT current_date;
SELECT 3 + 4 resultado; ou select 3 + 4 as resultado;

Criando:
CREATE DATABASE meubanco;
CREATE TABLE equipamentos (nome varchar(80), peso integer);

Renomeando algumas coisas:
ALTER DATABASE meubanco RENAME TO nossobanco;
ALTER TABLE equipamentos RENAME TO ferramentas;
ALTER TABLE produto RENAME COLUMN cod_prod TO cod_produto;

SIMILAR TO, bem parecido com o LIKE
select 'abc' SIMILAR TO 'abc' resultado = true ou t
select 'abc' SIMILAR TO 'a' resultado = false ou f

Permitir apenas preços positivos, utiliza-se: CHECK
CREATE TABLE produtos (
cod_prod integer,
nome text,
preco numeric CHECK (preco > 0)
);

Uma restrição de verificação também pode referenciar várias colunas:
CREATE TABLE produtos (
cod_prod integer,
nome text,
preco numeric CHECK (preco > 0),
preco_com_desconto numeric CHECK (preco_com_desconto > 0),
CHECK (preco > preco_com_desconto)
);

Uso do HAVING
SELECT nome from cidades group by nome HAVING count(nome) > 1;

PostgreSQL Dicas

Neste rápido artigo procurei reunir algumas dicas úteis ao se trabalhar com o banco de dados PostgreSQL.
Setando uma chave estrangeira (foreign key) em um campo já existente na tabela:
ALTER TABLE endereco ADD CONSTRAINT endereco_usuario_id_fkey FOREIGN KEY (usuario_id) REFERENCES usuario(id);
No exemplo anterior, foi criado uma constraint no campo usuario_id da tabela endereco referenciando a tabela usuario campo id.
Alterando a senha do usuário postgres do banco de dados:
Entrar no banco de dados template1
psql -d template1 -U postgres
Executar a query para alterar a senha:
alter user postgres with password 'senha';
Os comandos anteriores de mudança de senha são válidos somente para as versões 7.3 e mais recentes do PostgreSQL.
Renomenado tabelas:
Renomear tabelas no Postgres é bem simples:
ALTER TABLE “nome_tabela” RENAME TO “novo_nome”
Exemplos:
ALTER TABLE user RENAME TO usuario;
ALTER TABLE employee RENAME TO funcionario;
Criando indexes:
Para criar um indíce no campo nome da tabela usuario:
create index idx_nome on usuario(nome);
O PostgreSQL permite também criar indíces usando expressões. Exemplo:
create index idx_lower_nome on usuario(lower(nome));
Você pode rodar queries usando o indíce criado no exemplo acima:
select * from usuario WHERE lower(nome) = 'alberto';
Exibir resultado das queries em formato modo extendido no psql:
Para habilitar o formato modo extendido no psql, utilize o comando abaixo:
x
Esta função é útil quando você precisa printar na tela valores de campos muito longos. Os nomes de campos são exibidos em uma coluna à esquerda e os valores em outra coluna à direita.
Para listar os nomes dos banco de dados no psql:
l
Para listar os nomes de tabelas ou os detalhes de uma tabela no psql:
d <tabela>

quarta-feira, 9 de outubro de 2013

pgModeler: Ferramenta de Modelagem de Open source

PostgreSQL Database Modeler ou pgModeler é uma ferramenta open source para modelagem de banco de dados a qual mescla conceitos clássicos de diagramas entidade-relacionamento com as funcionalidade específicas do PostgreSQL. 

O pgModeler traduz os modelos criados para código SQL (versão 8.0 a 9.1). Implementado sobre framework Qt, o pgModeler pode ser usado em ambientes Linux, Windows e Mac. 

Ajude a melhorar este projeto 100% brasileiro! Visite a página oficial e veja como colaborar:http://pgmodeler.com.br