Comment afficher des données dans une table à l'aide de l'interface de ligne de commande psql?

102

Existe-t-il un moyen d'afficher tout le contenu d'une table à l'aide de l'interface de ligne de commande psql?

Je peux utiliser \listpour afficher toutes les bases de données, \dpour afficher toutes les tables, mais comment puis-je afficher toutes les données dans une table?

Lisa
la source
stackoverflow.com/questions/9178406/ ... cela pourrait vous être utile.
Wanna Coffee

Réponses:

163

Versions plus récentes: (à partir de 8.4 - mentionné dans les notes de version )

TABLE mytablename;

Plus long mais fonctionne sur toutes les versions:

SELECT * FROM mytablename;

Vous souhaiterez peut-être utiliser d' \xabord s'il s'agit d'une table large, pour plus de lisibilité.

Pour les données longues:

SELECT * FROM mytable LIMIT 10;

ou similaire.

Pour les données larges (grandes lignes), dans le psqlclient de ligne de commande, il est utile d'utiliser \xpour afficher les lignes sous forme de clé / valeur au lieu de tabulé, par exemple

 \x
SELECT * FROM mytable LIMIT 10;

Notez que dans tous les cas, le point-virgule à la fin est important.

Craig Ringer
la source
1
Un ajout utile à la réponse ci-dessus, pour les tables plus volumineuses, est d'ajouter LIMIT 100à votre commande, de sorte que vous puissiez afficher uniquement les 100 premières lignes (ou autant que vous le souhaitez).
Matt
Seules les majuscules fonctionnent pour la commande SQL. Donc, "sélectionner * de ..." ne fonctionnera pas. Vous devez utiliser "SELECT * FROM ..." (enfin, dans la version 9.1 de toute façon)
MacGyver
2
@MacGyver Cela n'a été vrai pour aucune version de PostgreSQL, même vaguement récente. J'ai utilisé Pg aussi loin que 7.2 et je ne me souciais pas des majuscules par rapport aux minuscules (sauf pour les règles de citation d'identifiant autour des noms d'identifiant à casse mixte comme "MyTable"vs MyTable).
Craig Ringer
C'est la raison pour laquelle je suis venu à cette question parce que je ne pouvais tout simplement pas afficher les données. J'avais utilisé les lettres minuscules. Quand j'ai essayé les majuscules, je l'ai fait fonctionner, aussi étrange que cela puisse paraître. Bien que je ne puisse pas reproduire maintenant, je garderai mes commentaires et reviendrai si je trouve que cela échoue à nouveau.
MacGyver
1
@AntonKahwaji Il est disponible à partir de la version 8.4. Veuillez vous référer aux documents officiels
Vignesh Raja
2

Sous Windows, utilisez le nom de la table entre guillemets: TABLE "user";ouSELECT * FROM "user";

israteneda
la source