Εισήγαγα δεδομένα σε έναν πίνακα....Θέλω να δω τώρα ολόκληρο τον πίνακα με γραμμές και στήλες και δεδομένα. Πώς μπορώ να τον εμφανίσω μέσω της εντολής;
psql -U username -d mydatabase -c 'SELECT * FROM mytable'
Εάν είστε νέος στην postgresql και δεν είστε εξοικειωμένος με τη χρήση του εργαλείου γραμμής εντολών psql
τότε υπάρχει κάποια συγκεχυμένη συμπεριφορά που θα πρέπει να γνωρίζετε όταν έχετε εισέλθει σε μια διαδραστική συνεδρία.
Για παράδειγμα, ξεκινήστε μια διαδραστική συνεδρία:
psql -U username mydatabase
mydatabase=#
Σε αυτό το σημείο μπορείτε να εισαγάγετε απευθείας ένα ερώτημα, αλλά θα πρέπει να θυμάστε να τερματίσετε το ερώτημα με μια άνω τελεία ;
Για παράδειγμα:
mydatabase=# SELECT * FROM mytable;
Αν ξεχάσετε την άνω τελεία, τότε όταν πατήσετε enter δεν θα έχετε τίποτα στη γραμμή επιστροφής, επειδή η psql
θα υποθέσει ότι δεν έχετε ολοκληρώσει την εισαγωγή του ερωτήματός σας. Αυτό μπορεί να οδηγήσει σε κάθε είδους σύγχυση. Για παράδειγμα, αν ξαναεισάγετε το ίδιο ερώτημα θα έχετε πιθανότατα δημιουργήσει ένα συντακτικό λάθος.
Ως πείραμα, δοκιμάστε να πληκτρολογήσετε όποια ακαταλαβίστικη φράση θέλετε στην προτροπή psql και μετά πατήστε enter. Η psql
θα σας δώσει σιωπηλά μια νέα γραμμή. Εάν εισάγετε μια άνω τελεία σε αυτή τη νέα γραμμή και στη συνέχεια πατήσετε enter, τότε θα λάβετε το ΣΦΑΛΜΑ:
mydatabase=# asdfs
mydatabase=# ;
ERROR: syntax error at or near "asdfs"
LINE 1: asdfs
^
Ο γενικός κανόνας είναι ο εξής:
Εάν δεν λάβατε καμία απάντηση από την psql
αλλά περιμένατε τουλάχιστον ΚΑΤΙ, τότε ξεχάσατε την άνω τελεία ;
SELECT * FROM my_table;
όπου my_table
είναι το όνομα του πίνακα σας.
ΕΠΕΞΕΡΓΑΣΊΑ:
psql -c "SELECT * FROM my_table"
ή απλά psql
και στη συνέχεια πληκτρολογήστε τα ερωτήματά σας.
Αν η ΒΔ σας προστατεύεται με κωδικό πρόσβασης, τότε η λύση θα ήταν:
PGPASSWORD=password psql -U username -d dbname -c "select * from my_table"