PostgreSQL

Existem vários gerenciadores de bancos de dados disponíveis, mas o meu favorito até o momento é o PostgreSQL: é open source, tem bom suporte para imagens e seu setup é bem simples. Hoje vou apresentar minha cheat sheet para levantar um servidor PostgreSQL (ou PSQL para abreviar) na máquina local para desenvolvimento.

Instalação

A instalação depende do sistema operacional que você estiver utilizando. Para algumas distribuições Linux:

sudo pacman -S postgresql # arch
sudo apt-get install postgresql postgresql-client # debian

Para Windows, basta ir ao site do programa, baixar os executáveis e seguir as instruções em tela.

Execução

Em alguns sistemas, pode ser necessário iniciar o servidor PSQL manualmente. Para tanto:

initdb $DATA_FOLDER
pg_ctl -D $DATA_FOLDER start
pg_ctl -D $DATA_FOLDER stop  # para parar
createdb $DB_NAME

Criação de usuários e bancos de dados

Em geral, a instalação do PSQL já cria um usuário chamado postgres para a aplicação. Este é um super usuário que é capaz de tudo no seu banco de dados. Para acessar o banco de dados no Linux, use o comando:

sudo -U postgres psql

No Windows, deve haver um programa chamado PSQL command line ou algo nessas linhas instalado que permitirá o mesmo acesso ao programa.

Dentro da linha de comando do PSQL, podemos criar novos usuários e bancos de dados para trabalhar:

CREATE USER seuusuario WITH PASSWORD 'senha';
CREATE DATABASE meuprimeirodb OWNER usuario;

Para quem estiver começando, eu recomendo criar um único usuário para utilizar; e um banco de dados por aplicação.

Comandos básicos

Para acessar o PSQL com o seu usuário na base de dados desejada, use:

psql -U seuusuario -d meuprimeirodb

Para criar uma nova tabela:

CREATE TABLE IF NOT EXISTS tabelaqualquer (
  id SERIAL PRIMARY KEY,
  idexterno SERIAL REFERENCES outratabela(id) ON DELETE CASCADE,
  admin BOOLEAN NOT NULL,
  texto VARCHAR(2048) NOT NULL,
  avaliacao INT NOT NULL,
  datainclusao TIMESTAMP WITH TIME ZONE NOT NULL
);

Para manipular a tabela, não se esqueça dos comandos fundamentais SQL:

# SELECT
SELECT * FROM tabela WHERE id='1';

# INSERT
INSERT INTO tabela(name,email,password,admin)
SELECT 'cris','[email protected]','intrometido?','off'
WHERE NOT EXISTS (
  SELECT * FROM tabela WHERE email='[email protected]')
RETURNING *;

# UPDATE
UPDATE tabela SET email='[email protected]' WHERE id='1' RETURNING *;

# DELETE
DELETE FROM tabela WHERE id='159' RETURNING *;

Referências