Como mostrar dados em uma tabela usando a interface de linha de comando psql?

101

Existe uma maneira de mostrar todo o conteúdo dentro de uma tabela usando a interface de linha de comando do psql?

Posso usar \listpara mostrar todos os bancos de dados, \dpara mostrar todas as tabelas, mas como posso mostrar todos os dados em uma tabela?

Lisa
fonte
stackoverflow.com/questions/9178406/… isso pode ser útil para você.
Wanna Coffee

Respostas:

163

Versões mais recentes: (de 8.4 - mencionado nas notas de lançamento )

TABLE mytablename;

Mais longo, mas funciona em todas as versões:

SELECT * FROM mytablename;

Você pode querer usar \xprimeiro se for uma tabela larga, para facilitar a leitura.

Para dados longos:

SELECT * FROM mytable LIMIT 10;

ou similar.

Para dados largos (linhas grandes), no psqlcliente de linha de comando, é útil usar \xpara mostrar as linhas na forma de chave / valor em vez de tabuladas, por exemplo

 \x
SELECT * FROM mytable LIMIT 10;

Observe que, em todos os casos, o ponto-e-vírgula no final é importante.

Craig Ringer
fonte
1
Uma adição útil à resposta acima, ao lidar com tabelas maiores, é adicionar LIMIT 100ao seu comando, para que você possa ver apenas as primeiras 100 (ou quantas linhas quiser).
Matt
Apenas letras maiúsculas funcionam para o comando SQL. Portanto, "selecionar * de ..." não funcionará. Você deve usar "SELECT * FROM ..." (bem, na versão 9.1 de qualquer maneira)
MacGyver
2
@MacGyver Isso não aconteceu com nenhuma versão do PostgreSQL, mesmo vagamente recente. Eu usei o Pg já em 7.2 e ele não se importava com maiúsculas e minúsculas (exceto para regras de cotação de identificadores em torno de nomes de identificadores de maiúsculas e minúsculas como "MyTable"vs MyTable).
Craig Ringer
Essa foi a razão pela qual cheguei a esta pergunta, porque simplesmente não conseguia exibir dados. Eu estava usando letras minúsculas. Quando tentei letras maiúsculas, comecei a funcionar, por mais estranho que pareça. Embora não possa reproduzir agora, vou guardar meus comentários e voltar se achar que está falhando novamente.
MacGyver
1
@AntonKahwaji Está disponível a partir da versão 8.4. Consulte a documentação oficial
Vignesh Raja
2

No Windows, use o nome da tabela entre aspas: TABLE "user";ouSELECT * FROM "user";

israteneda
fonte