CHAR para VARCHAR

Há muito tempo, em uma galáxia muito, muito distante… lá na era do COBOL, os dados eram armazenados de forma tabular e os dados eram armazenados em uma tabela onde cada coluna ocupava espaços fixos nessa tabela. Assim, o CEP ocupava a posição de 1 a 7, o número de 8 a 12, o logradouro

Sintaxe no PostgreSQL: endereço de rede

Bom, chega um ponto em que estou falando mais sobre tipos de dados do que sobre sintaxe propriamente dito. O PostgreSQL é um SGDB que nasceu com uma proposta ousada, não apenas substituir o Ingres, mas ter uma arquitetura orientada a objetos e ser muito extensível. Um dos impactos disso é a capacidade de se

Sintaxe no PostgreSQL: booleanos

Se você não leu, recomendo que veja o artigo sobre estrutura léxica do PostgreSQL antes de começar por aqui. Toda informática é baseada na lógica booleana. Os dados booleanos são utilizados geralmente como flags para marcar se determinado atributo de uma tabela está presente ou não. Por incrível que pareça, apesar de ser o tipo

Sintaxe no PostgreSQL: estrutura lexica

Este post inicia uma série de artigos sobre a linguagem SQL no PostgreSQL. Na documentação oficial, o capítulo 4 possui uma longa explicação sobre sintaxe SQL no PostgreSQL. Confesso que quando eu li sobre isso há mais de 15 anos, tive vontade de pular essa parte. Bastante burocrática e pouco interessante. Mas… o mal mora

Chaves artificiais no PostgreSQL

Criar chaves artificiais virou um vício com o advento das ferramentas de ORM. Mesmo antes delas, as chaves artificiais já existiam e temos bons motivos (e maus motivos também) para adota-las. Existem várias formas de criar uma chave artificial. No PostgreSQL temos duas bastante utilizadas. Uma utiliza as sequências, para gerar números sequenciais. Note que

Exibindo e Inserindo data/hora no Postgres

Trabalhar com o tempo em bancos de dados não é moleza. O volume de erros cometidos é absurdamente grande. Difícil de imaginar algumas barberagens que a gente encontra por aí. Eu sei, muitos SGDBs não implementam tipos básicos como DATE, TIME, TIMESTAMP e INTERVAL do mesmo jeito. O estes tipos de dados foram definidos no