Exécuter des requêtes PostgreSQL à partir de la ligne de commande
J'ai inséré des données dans une table....Je veux le voir maintenant l'ensemble du tableau avec des lignes et des colonnes et des données. Comment je peux afficher au travers de la commande?
Vous devez vous connecter pour publier un commentaire.
psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Si vous êtes nouveau à postgresql et familier avec l'aide de l'outil de ligne de commande
psql
alors il existe une certaine confusion comportement, vous devriez être conscient de quand vous êtes entré dans une session interactive.Par exemple, pour lancer une session interactive:
À ce stade, vous pouvez entrer directement une requête mais vous devez vous rappeler de mettre fin à la requête avec un point-virgule
;
Par exemple:
Si vous avez oublié le point-virgule, puis lorsque vous appuyez sur entrée, vous n'obtiendrez rien sur votre retour à la ligne car
psql
vais être en supposant que vous n'avez pas fini de saisir votre requête. Cela peut conduire à toutes sortes de confusion. Par exemple, si vous entrez de nouveau dans la même requête, vous aurez plus de chances de créer une erreur de syntaxe.Comme une expérience, essayez de taper tout garble que vous voulez à la psql invite, puis appuyez sur entrée.
psql
en silence à vous fournir une nouvelle ligne. Si vous entrez un point-virgule sur cette nouvelle ligne, puis sur la touche entrée, puis vous recevrez le message d'ERREUR:La règle de base est:
Si vous avez reçu aucune réponse de la
psql
mais vous vous attendiez au moins quelque CHOSE, alors vous avez oublié le point-virgule;
--single-line
(ou-s
) qui fait que chaque commande immédiate, sans avoir besoin d'ajouter un point-virgule.où
my_table
est le nom de votre table.EDIT:
ou tout simplement
psql
puis tapez vos requêtes.psql -U username -c your_database "SELECT * FROM my_table"
cmd.exe /c chcp 1252
après que vous avez ouvert la console de commandes.psql: FATAL: database "SELECT * FROM tb_name" does not exist
jmhead's
solution a l'air très bon !!-d
parampsql -U ravil -d hw5 -c "SELECT * FROM table_name;"
-- il fonctionneSi votre base de données est protégé par mot de passe, alors la solution serait:
Ouvrir "SQL Shell (psql)" à partir de vos Applications (Mac).
Cliquez sur l'entrée pour les paramètres par défaut. Entrez le mot de passe lorsque vous y êtes invité.
*) Type
\?
pour aider*) Type
\conninfo
pour voir d'utilisateur que vous êtes bien connecté tant que.*) Type
\l
pour voir la liste des Bases de données.*) Se connecter à une base de données par
\c <Name of DB>
, par exemple\c GeneDB1
Vous devriez voir l'invite de la touche de changement pour la nouvelle DB, comme suit:
*) Maintenant que vous êtes dans une DB, vous voulez savoir les Schémas pour que DB. Il maîtrise le mieux à faire c'est
\dn
.Les autres commandes qui travaillent aussi (mais pas aussi bon) sont
select schema_name from information_schema.schemata;
etselect nspname from pg_catalog.pg_namespace;
:-) Maintenant que vous avez les Schémas, vous voulez savoir les tables de ces Schémas. Pour cela, vous pouvez utiliser le
dt
de commande. Par exemple\dt "GeneSchema1".*
*) Maintenant, vous pouvez faire vos requêtes. Par exemple:
*) Voici ce que le dessus de DB, les schémas et les Tableaux ressemblent dans pgAdmin:
La même requête est écrit comme ci-dessous pour psql invite de commande de postgres.
D:\TOOLS\Postgresql-9.4.1-3\bin>psql -U postgres-d DatabaseName -h localhost -
t -c "Sélectionnez u.\"Nom d'utilisateur\" auprès des utilisateurs u Où u.\"Nom d'utilisateur\"=1;