Εισαγωγή
Αν ασχολείσαι με εργασίες διαχείρισης βάσεων δεδομένων, όπως η δημιουργία πινάκων, η προβολή σχέσεων ή ακόμα και η δημιουργία αναφορών, η κατανόηση του information_schema της PostgreSQL μπορεί να σου φανεί πολύ χρήσιμη. Σε αυτόν τον οδηγό θα εξερευνήσουμε τα βασικά του information_schema της PostgreSQL με μερικά παραδείγματα κώδικα.
Αυτός ο οδηγός είναι γραμμένος κυρίως για την PostgresSQL, αν και ορισμένες έννοιες ίσως ισχύουν και για άλλες σχεσιακές βάσεις δεδομένων SQL.
Πριν συνεχίσεις το διάβασμα, ήθελα απλώς να σου πω για τον σύγχρονο και γρήγορο διαχειριστή βάσεων δεδομένων PostgreSQL που φτιάξαμε, το Beekeeper Studio. Κάνει την εξερεύνηση των schema παιχνιδάκι και είναι δωρεάν για PostgreSQL. Κατέβασέ το εδώ.
Τι είναι το Information_Schema;
Το information_schema είναι μια κρίσιμη λειτουργία στις βάσεις δεδομένων PostgreSQL που παρέχει πρόσβαση στα μεταδεδομένα της «τρέχουσας βάσης δεδομένων». Ουσιαστικά είναι μια συλλογή από views που περιέχουν πληροφορίες για διάφορα αντικείμενα της «τρέχουσας βάσης δεδομένων». Από πίνακες και στήλες μέχρι περιορισμούς, το information_schema της PostgreSQL σου δίνει τις λεπτομέρειες της αρχιτεκτονικής μιας βάσης δεδομένων.
SELECT *
FROM information_schema.tables;
Αν εκτελέσεις την παραπάνω εντολή, για παράδειγμα στον SQL editor του Beekeeper Studio, θα δεις μια λίστα με τους πίνακες της τρέχουσας βάσης δεδομένων σου.
Πιο σε βάθος
Προβολή δημόσιων πινάκων
Για να δεις όλους τους διαθέσιμους δημόσιους πίνακες στην τρέχουσα βάση δεδομένων σου, απλώς εκτέλεσε:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public';
Αυτή η εντολή επιστρέφει μια λίστα με τα ονόματα όλων των πινάκων της «τρέχουσας βάσης δεδομένων» σου στο schema «public».
Αποτέλεσμα με τη δείγμα βάση δεδομένων «chinook»
| table_name |
|---|
| artist |
| album |
| employee |
| customer |
| invoice |
| invoice_line |
| track |
| playlist |
| playlist_track |
| genre |
| media_type |
Εξέταση στηλών
Χρησιμοποίησε το view information_schema.columns για να πάρεις αναλυτικές πληροφορίες για τις στήλες ενός συγκεκριμένου πίνακα:
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name ='album';
Αυτός ο κώδικας επιστρέφει μια λίστα με όλα τα ονόματα στηλών και τους τύπους δεδομένων τους για τον πίνακα που επέλεξες.
Αποτέλεσμα με τη δείγμα βάση δεδομένων «chinook»
| column_name | data_type |
|---|---|
| album_id | integer |
| artist_id | integer |
| title | character varying |
Εμφάνιση περιορισμών
Το view information_schema.table_constraints παρέχει πληροφορίες για τους περιορισμούς που έχουν οριστεί στον πίνακα.
Μπορείς να χρησιμοποιήσεις το παρακάτω query για να πάρεις τους περιορισμούς ενός συγκεκριμένου πίνακα:
SELECT constraint_name, constraint_type
FROM information_schema.table_constraints
WHERE table_name='album';
Η εκτέλεση της εντολής εμφανίζει τα ονόματα και τους τύπους των περιορισμών για τον «your_table», ώστε να δεις ποιοι κανόνες επιβάλλονται σε αυτόν τον πίνακα.
Αποτέλεσμα με τη δείγμα βάση δεδομένων «chinook»
| constraint_name | constraint_type |
|---|---|
| album_pkey | PRIMARY KEY |
| album_artist_id_fkey | FOREIGN KEY |
| 2200_65375_1_not_null | CHECK |
| 2200_65375_2_not_null | CHECK |
| 2200_65375_3_not_null | CHECK |
Συμπέρασμα
Το information_schema της PostgreSQL είναι ένα σημαντικό εργαλείο για να εξερευνήσεις και να κατανοήσεις τη δομή και τις λεπτομέρειες της βάσης δεδομένων σου. Το πώς θα το αξιοποιήσεις εξαρτάται από τις ανάγκες σου και τη διαμόρφωση της βάσης σου. Θυμήσου να αντικαταστήσεις τα ονόματα πινάκων και στηλών των παραδειγμάτων με εκείνα της δικής σου βάσης, ώστε οι εντολές να εκτελεστούν σωστά.
Σημείωση: Όλα τα παραδείγματα αυτού του οδηγού ταιριάζουν καλύτερα στην PostgreSQL (εκδόσεις 9.4 έως 13.3) και ίσως να μην είναι συμβατά με άλλες μηχανές βάσεων δεδομένων. Φρόντιζε πάντα να προσαρμόζεις τα queries σου στη μηχανή βάσης δεδομένων που χρησιμοποιείς. Η δυαδική φύση του information_schema της PostgreSQL μπορεί να κάνει την εξερεύνηση της βάσης σου πιο εύκολη, πιο αποτελεσματική και πολύ λιγότερο χρονοβόρα.
Το Beekeeper Studio είναι ένα δωρεάν & open source GUI για PostgreSQL
Αυτός είναι ο PostgreSQL client που έψαχνα! Το UI είναι αυτό που τον ξεχωρίζει: καθαρό, διαισθητικό, ισχυρό. Αντίο στο δυσκίνητο PGAdmin. - David Cyprian
Το Beekeeper Studio είναι ένας γρήγορος, διαισθητικός και εύχρηστος client για PostgreSQL. Υποστηρίζει και πολλές άλλες βάσεις δεδομένων και δουλεύει άψογα σε Windows, Mac και Linux.
Τι λένε οι χρήστες της PostgreSQL για το Beekeeper Studio
Σε αντίθεση με το pgAdmin, το Beekeeper είναι εντυπωσιακά απλό στη χρήση χωρίς να του λείπουν δυνατότητες, και η τιμή είναι σωστή! Η λειτουργία backup της βάσης δεδομένων είναι ιδιαίτερα χρήσιμη. Απλώς εξαιρετικό λογισμικό.
Φανταστικό εργαλείο, το πιο πρακτικό IDE που έχω βρει μέχρι σήμερα για διαχείριση βάσεων Postgres και MySql - απλώς δουλεύει, χωρίς φασαρία :-)