From 535b07873d4680700a2e39857854b9f40e4dcc5d Mon Sep 17 00:00:00 2001
From: Bruce Momjian Última atualização: Sáb Out 14 19:08:19 EDT 2006 Última atualização: Qui Set 27 02:14:24 EDT 2007 Mantenedor atual: Bruce Momjian (bruce@momjian.us)
@@ -43,6 +43,7 @@
1.11) Como eu posso aprender SQL? PostgreSQL é pronunciado Post-Gres-Q-L, e é, às vezes, referido apenas como
- Postgres. Um arquivo de áudio está disponível em
- formato MP3 para
- aqueles que gostariam de ouvir a pronúncia. PostgreSQL é pronunciado Post-Gres-Q-L, mas também pode ser referido apenas como Postgres principalmente em conversações.
+ (Para os curiosos que querem saber como se diz "PostgreSQL", um
+ arquivo de áudio está disponível). O PostgreSQL é um sistema de banco de dados objeto-relacional que tem as
características de sistemas de bancos de dados comerciais tradicionais com
@@ -125,7 +125,7 @@
você precisa é se inscrever nas listas de discussão e participar das
discussões. Veja a
FAQ do desenvolvedor para obter informações como se envolver com o
- desenvolvimento do PostgreSQL.Perguntas Frequentes (FAQ) sobre PostgreSQL
-
1.12) Como posso submeter uma correção (patch) ou me juntar a equipe de desenvolvimento?
1.13) Como é o PostgreSQL comparado a outros SGBDs?
+ 1.14) O PostgreSQL gerenciará as mudanças de horário devido ao horário de verão em vários países?
Perguntas sobre Clientes
@@ -57,7 +58,7 @@
3.3) Como eu ajusto o servidor de banco de dados para obter uma performance melhor?
3.4) Quais características de depuração estão disponíveis?
3.5) Por que eu recebo "Sorry, too many clients" quando eu tento conectar?
- 3.6) Qual é o processo de atualização do PostgreSQL?
+ 3.6) Qual é o processo de atualização do PostgreSQL?
3.7) Que tipo de hardware eu devo usar?
@@ -70,7 +71,7 @@
4.6) Por que minhas consultas estão lentas? Por que elas não estão utilizando meus índices?
4.7) Como eu vejo como o otimizador de consultas está avaliando minha consulta?
4.8) Como eu faço buscas com expressões regulares e buscas com expressões regulares sem diferenciar mauúsculas de minúsculas? Como eu utilizo um índice para buscas sem distinguir maiúsculas de minúsculas?
- 4.9) Em uma consulta, como eu detecto se um campo é NULL? Como eu posso ordenar por um campo que é NULL ou não?
+ 4.9) Em uma consulta, como eu detecto se um campo é NULL? Como eu posso concatenar possíveis NULLs? Como eu posso ordenar por um campo que é NULL ou não?
4.10) Qual é a diferença entre os vários tipos de dado de caracteres?
4.11.1) Como eu crio um campo serial/auto incremento?
4.11.2) Como eu consigo o valor de um campo
@@ -88,7 +89,7 @@
does not exist" ao acessar tabelas temporárias em funções PL/PgSQL?
4.20) Quais soluções de replicação estão disponíveis?
4.21) Por que os nomes de minhas tabelas e colunas não
- são reconhecidos em minha consulta?
+ são reconhecidos em minha consulta? Por que as maiúsculas não são preservadas?
@@ -97,10 +98,9 @@
1.1) O que é PostgreSQL? Como ele é pronunciado?
-
Há também uma versão para o Novell Netware 6 em http://forge.novell.com @@ -181,13 +181,13 @@
Via navegador web, utilize http://www.postgresql.org/ftp/ e via ftp, utilize - - ftp://ftp.PostgreSQL.org/pub/.
+ + ftp://ftp.postgresql.org/pub/.A última versão do PostgreSQL é a versão 8.1.5.
+A última versão do PostgreSQL é a versão 8.2.5.
Nós planejamos lançar versões novas a cada ano com versões corretivas em alguns meses.
@@ -211,8 +211,8 @@Visite o formulário que reporta bugs do PostgreSQL em http://www.postgresql.org/support/submitbug.
Verifique também o nosso ftp ftp://ftp.PostgreSQL.org/pub para - ver se há uma versão mais recente do PostgreSQL.
+ "ftp://ftp.postgresql.org/pub">ftp://ftp.postgresql.org/pub para + ver se há uma versão mais recente do Postgres.Bugs submetidos utilizando o formulário ou informado a qualquer lista de discussão do PostgreSQL tipicamente gera uma das seguintes @@ -220,7 +220,7 @@
O PostgreSQL suporta um subconjunto extendido do SQL:2003. - Veja nossa lista de AFAZERES (TODO) + Veja nossa lista de AFAZERES que contém bugs conhecidos, funcionalidades ausentes e planos futuros.
Uma solicitação de funcionalidade geralmente resulta em uma das seguintes respostas:
O PostgreSQL não utiliza sistema de acompanhamento de bugs porque nós achamos mais eficiente responder diretamente o e-mail e manter a - lista de AFAZERES (TODO) + lista de AFAZERES atualizada. Na prática, bugs não duram muito no programa; e bugs que afetam uma grande quantidade de usuários são corrigidos rapidamente. O único lugar para encontrar todas as mudanças, melhorias e correções em uma versão do - PostgreSQL é ler as mensagens de log do + Postgres é ler as mensagens de log do CVS. Até mesmo as notas de lançamento não listam todas as mudanças feitas no programa.
@@ -280,7 +280,7 @@O PostgreSQL inclui vasta documentação, incluindo um manual extenso, páginas de manuais (man pages) e alguns exemplos teste. Veja o diretório /doc. Você também pode pesquisar os manuais online em http://www.PostgreSQL.org/docs. + "http://www.postgresql.org/docs">http://www.postgresql.org/docs.
Há dois livros sobre PostgreSQL disponíveis online em http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. + "http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php. + Há também uma coleção de artigos técnicos sbore PostgreSQL em http://techdocs.postgresql.org/.
O programa cliente de linha de comando psql tem alguns comandos \d para mostrar informações sobre tipos, operadores, funções, agregações, etc. - utilize \? @@ -352,7 +353,7 @@
Mudanças no horário de verão dos USA foram incluídas nas versões 8.0 .[4+] do PostgreSQL e em todas as versões grandes, i.e. 8.1. Mudanças no Canadá e Austrália Oeste foram incluídas na 8.0.[10+], 8.1.[6+] e em todas as versões grandes subsequentes. Versões do PostgreSQL anteriores a 8.0 utilizam o banco de dados de zona horária do sistema operacional para informações sobre horário de verão.
+O time do PostgreSQL faz somente pequenas mudanças entre versões corretivas, então atualizar da versão 7.4.8 para 7.4.9 não requer uma exportação e uma importação; basta para o servidor de banco de dados, instalar os binários atualizados e reiniciar o servidor.
- -Todos os usuários devem atualizar para as versões corretivas mais recentes - assim que elas estiverem disponíveis. Enquanto cada atualização tem algum risco, - versões corretivas do PostgreSQL são projetadas para corrigir somente bugs comuns - com um risco mínimo. A comunidade considera não atualizar mais - perigoso do que atualizar.
- -Versões novas (i.e. da 7.3 para 7.4) geralmente muda-se o formato interno das tabelas de sistema e dos arquivo de dados. Essas mudanças geralmente são complexas, então nós não mantemos compatibilidade para os arquivos de dados. Uma exportação/importação de um banco de dados é necessária para atualizações entre versões.
+Veja http://www.postgresql.org/support/versioning + para discussão geral sobre atualizações e + http://www.postgresql.org/docs/current/static/install-upgrading.html + para instruções específicas.
Um banco de dados PostgreSQL irá requerer até cinco vezes a quantidade de espaço requerida para armazenar dados em um arquivo texto.
-Como um exemplo, considere um arquivo com 100.000 linhas contendo um inteiro e uma descrição em cada linha. Suponha que o tamanho médio da descrição é de vinte bytes. O arquivo terá 2,8 MB. O tamanho do arquivo do banco de dados PostgreSQL que contém esses dados pode ser estimado em 5,6 MB:
+Como um exemplo, considere um arquivo com 100.000 linhas contendo um inteiro e uma descrição em cada linha. Suponha que o tamanho médio da descrição é de vinte bytes. O arquivo terá 2,8 MB. O tamanho do arquivo do banco de dados PostgreSQL que contém esses dados pode ser estimado em 5,2 MB:
- 28 bytes: cada cabeçalho de registro (aproximadamente) + 24 bytes: cada cabeçalho de registro (aproximadamente) 24 bytes: um campo int e um campo texto + 4 bytes: ponteiro na página para a tupla ------------------------------------------- - 56 bytes por registro + 52 bytes por registro - O tamanho de uma página de dados no PostgreSQL é 8192 bytes (8 KB), então: + O tamanho de uma página de dados no Postgres é 8192 bytes (8 KB), então: 8192 bytes por página - ------------------------ = 146 registros por página do banco de dados (arredondado para baixo) - 56 bytes por registro + ------------------------ = 158 registros por página do banco de dados (arredondado para baixo) + 52 bytes por registro 100000 registros de dados - ---------------------------- = 685 páginas do banco de dados (arredondado para cima) - 146 registros por página + ---------------------------- = 633 páginas do banco de dados (arredondado para cima) + 158 registros por página -685 páginas do banco de dados * 8192 bytes por página = 5.611.520 bytes (5,6 MB) +633 páginas do banco de dados * 8192 bytes por página = 5.185.536 bytes (5,2 MB)
Índices não requerem muito espaço, mas contém @@ -704,7 +706,7 @@ Para forçar uma letra maiúscula ou minúscula a ser armazenada na coluna, utilize uma restrição CHECK ou um gatilho.
-Você testa a coluna com IS NULL e IS NOT NULL, como a seguir:
@@ -715,6 +717,12 @@ WHERE col IS NULL; +Para concatenar com possíveis NULLs, utilize COALESCE(), assim:
++ SELECT COALESCE(col1, '') || COALESCE(col2, '') + FROM tab ++
Para ordenar pelo status NULL, utilize os modificadores IS NULL e IS NOT NULL na sua cláusula ORDER BY. Coisas que são verdadeiro serão ordenadas acima @@ -802,7 +810,7 @@ comprimento novo_id = execute("SELECT currval('pessoa_id_seq')"); -
Não. currval() retorna o valor atual atribuido pela sua sessão, e não por todas as sessões.
@@ -810,13 +818,12 @@ comprimentoPara melhorar a concorrência, valores da sequência são atribuídos a transações correntes e não são travados até que a transação seja finalizada. Isso causa intervalos na numeração por causa de transações abortadas.
-Cada registro que é criado no PostgreSQL recebe um OID único - a menos que seja criado com WITHOUT OIDS. +
Se uma tabela é criada com WITH OIDS, cada registro recebe um OID único. OIDs são automaticamente atribuídos como inteiros de 4 bytes que são únicos ao longo de toda instalação. Contudo, eles são limitados em - 4 bilhões, e então os OIDs começam a ser duplicados. O PostgreSQL + 4 bilhões e, então, os OIDs começam a ser duplicados. O PostgreSQL utiliza OIDs para ligar as tabelas do sistema.
Para numerar registros nas tabelas do usuários, é melhor utilizar @@ -852,7 +859,7 @@ comprimento CREATE TABLE teste (x int, modtime timestamp DEFAULT CURRENT_TIMESTAMP ); -
PostgreSQL suporta junções externas utilizando a sintaxe padrão do SQL. Aqui temos dois exemplos:
@@ -874,7 +881,7 @@ comprimento A palavra OUTER é opcional e é assumida nas junções LEFT, RIGHT e FULL. Junções ordinárias são chamadas junções - naturais (INNER). + internas (INNER).4.17) Como eu faço consultas utilizando múltiplos bancos de dados?
@@ -891,8 +898,8 @@ comprimento4.18) Como eu retorno múltiplos registros ou colunas de uma função?
É fácil utilizando funções que retornam conjunto, - - http://techdocs.postgresql.org/guides/SetReturningFunctions.
+ + http://www.postgresql.org/docs/techdocs.17.4.19) Por que eu obtenho erros "relation with OID ###### does not exist" ao acessar tabelas temporárias em funções PL/PgSQL?
@@ -912,22 +919,22 @@ comprimentoReplicação com múltiplos mestres permite que consultas leitura/escrita sejam enviadas para múltiplos computadores replicadores. Esta capacidade também tem um sério impacto na performance por causa da necessidade de sincronizar as mudanças - entre os servidores. Pgcluster + entre os servidores. PGCluster é a solução mais popular disponível livremente para PostgreSQL.
Há também soluções de replicação comerciais e baseadas em hardware disponíveis que suportam uma variedade de modelos de replicação.
4.21) Por que os nomes de minhas tabelas e colunas não - são reconhecidos em minha consulta?
+ são reconhecidos em minha consulta? Por que as maiúsculas não são preservadas? -O caso mais comum é o uso de aspas ao redor dos nomes da tabela ou coluna +
A causa mais comum de nomes desconhecidos é o uso de aspas ao redor dos nomes da tabela ou coluna durante a criação da tabela. Ao utilizar aspas, nomes de tabela e coluna (chamados de identificadores) são armazenados + href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS"> como especificado, significando que você deve utilizar aspas quando se referir aos nomes na consulta. Algumas interfaces, como pgAdmin, - automaticamente coloca aspas nos identificadores durante a criação da tabela. + automaticamente colocam aspas nos identificadores durante a criação da tabela. Então, para identificadores serem reconhecidos, você deve: