Skip to content

Τύποι δεδομένων PostgreSQL εξηγούνται

Κάθε συνηθισμένος τύπος δεδομένων στήλης του PostgreSQL, ομαδοποιημένος ανά οικογένεια: ακέραιοι, δεκαδικοί, κείμενο, χρόνος, boolean και UUID, JSON, διευθύνσεις δικτύου, σύνθετοι τύποι και τύποι επεκτάσεων. Κάθε γραμμή δείχνει τι αποθηκεύει ο τύπος και πότε τον επιλέγετε.

Το PostgreSQL έχει δεκάδες τύπους, αλλά ο καθημερινός σχεδιασμός σχήματος χρησιμοποιεί έναν πυρήνα. Οι επαναλαμβανόμενες επιλογές είναι: integer ή numeric για αριθμούς, varchar ή text για συμβολοσειρές (το text συνήθως αρκεί), timestamp ή timestamptz (προτιμήστε timestamptz για οτιδήποτε πραγματικό) και json ή jsonb (προτιμήστε το jsonb, είναι δυαδικό και ευρετηριάσιμο). Επιλέξτε τον πιο συγκεκριμένο τύπο που ταιριάζει ακόμα· η βάση τον επιβάλλει για εσάς.

Πίνακας αναφοράς · 46 καταχωρήσεις
46 of 46 rows
Ακέραιοι αριθμοί
Ακέραιος 2 byte από -32768 έως 32767.Σπάνια· μόνο όταν πρέπει να εξοικονομήσετε χώρο.
Ακέραιος 4 byte, περίπου συν ή πλην 2 δισεκατομμύρια.Η προεπιλεγμένη στήλη ακεραίων.
Ακέραιος 8 byte, εύρος περίπου ±9 × 10^18.Πολύ μεγάλοι μετρητές ή εξωτερικά ID.
Ακέραιος 4 byte με αυτόματη αύξηση.Παλιά αυτόματα αριθμημένα κλειδιά· από την PG 10, το GENERATED AS IDENTITY είναι η προτεινόμενη αντικατάσταση.
Οι παραλλαγές 2 και 8 byte του serial.Αυτόματη αρίθμηση αντιστοιχισμένη σε στήλη smallint ή bigint.
Ακέραιος που δημιουργεί ο πίνακας για εσάς (GENERATED ALWAYS AS IDENTITY).Το σύγχρονο serial· πρότυπο SQL και πιο ασφαλές έναντι χειροκίνητων εισαγωγών.
Δεκαδικοί και κινητής υποδιαστολής
Ακριβείς δεκαδικοί με αυθαίρετη ακρίβεια.Χρήματα και οτιδήποτε όπου τα σφάλματα στρογγυλοποίησης είναι απαράδεκτα.
Αριθμός κινητής υποδιαστολής μονής ακρίβειας 4 byte.Κατά προσέγγιση επιστημονικές τιμές όπου η ακρίβεια δεν είναι κρίσιμη.
Αριθμός κινητής υποδιαστολής διπλής ακρίβειας 8 byte.Γεωχωρικά δεδομένα, στατιστική και τιμές χαρακτηριστικών ML.
Ποσό νομίσματος με σταθερή τοπική ρύθμιση.Σπάνια· το numeric με κωδικό νομίσματος στην εφαρμογή είναι πιο φορητό.
Κείμενο
Κείμενο σταθερού μήκους, συμπληρωμένο με κενά.Κωδικοί γνωστού πλάτους· σπάνια χρήσιμο.
Κείμενο μεταβλητού μήκους με προαιρετικό όριο.Περιορισμένες συμβολοσειρές όπως ονόματα χρηστών ή email.
Κείμενο μεταβλητού μήκους χωρίς όριο μήκους.Η γενικής χρήσης στήλη συμβολοσειρών· καμία ποινή απόδοσης έναντι του varchar.
Χρόνος
Ημερολογιακή ημερομηνία χωρίς ώρα της ημέρας.Γενέθλια και ημερομηνίες λήξης.
Ώρα της ημέρας, με ή χωρίς ζώνη ώρας.Καθημερινά ξυπνητήρια ή ώρες λειτουργίας καταστημάτων.
Ημερομηνία και ώρα χωρίς ζώνη ώρας.Παλιά σχήματα· αποφύγετε το σε νέα δουλειά.
Ημερομηνία και ώρα αποθηκευμένα ως UTC, εμφανιζόμενα στη ζώνη του πελάτη.Η προεπιλογή για κάθε πραγματική χρονική στιγμή· προτιμήστε το από το timestamp.
Χρονικό διάστημα, όπως 2 ημέρες ή 3 ώρες.Διάρκειες και αριθμητική ημερομηνιών.
Boolean, UUID και bytes
Αληθές ή ψευδές.Σημαίες και διακόπτες.
Καθολικά μοναδικό αναγνωριστικό 128 bit.Μη διαδοχικά ID ασφαλή για δημόσια έκθεση (δημιουργήστε τα στην εφαρμογή ή με gen_random_uuid).
Ακατέργαστα δυαδικά bytes.Blobs, εικόνες και αδιαφανή payloads· για μεγάλα αρχεία προτιμήστε αποθήκευση αντικειμένων.
Συμβολοσειρές bit σταθερού ή μεταβλητού μήκους.Συσσωματωμένες σημαίες και πεδία πρωτοκόλλου· μία μεμονωμένη τιμή on/off παραμένει boolean.
JSON και ημιδομημένα δεδομένα
JSON που αναλύεται σε δυαδική, ευρετηριάσιμη μορφή.Ευέλικτα ή εμφωλευμένα δεδομένα· η προτεινόμενη στήλη JSON (υποστηρίζει ευρετήρια GIN).
JSON που διατηρείται ως το αρχικό κείμενο.Σπάνια· μόνο όταν πρέπει να διατηρήσετε τη σειρά κλειδιών ή τα ακριβή κενά.
Κείμενο XML.Παλιές ενσωματώσεις που απαιτούν XML.
Μεταγλωττισμένη παράσταση διαδρομής για πλοήγηση σε δεδομένα JSON.Φιλτράρισμα μέσα σε jsonb με jsonb_path_query και τους τελεστές SQL/JSON.
Δίκτυο και αναζήτηση
Διεύθυνση host IPv4 ή IPv6.Αποθήκευση IP πελατών ή διακομιστών.
Μπλοκ δικτύου IP, όπως 10.0.0.0/24.Κανόνες τείχους προστασίας και εύρη υποδικτύων.
Διεύθυνση MAC 6 ή 8 byte (EUI-64).Αναγνωριστικά συσκευών και δικτυακών διεπαφών.
Προεπεξεργασμένο κείμενο για αναζήτηση πλήρους κειμένου.Η ενσωματωμένη αναζήτηση του Postgres πριν στραφείτε σε ξεχωριστή μηχανή αναζήτησης.
Όροι αναζήτησης συνδυασμένοι με τελεστές AND, OR και προθέματος.Το μισό των ερωτημάτων της αναζήτησης πλήρους κειμένου, αντιπαραβαλλόμενο με tsvector μέσω @@.
Θέση στο write-ahead log, ο αριθμός ακολουθίας καταγραφής.Καθυστέρηση αναπαραγωγής και παρακολούθηση αντιγράφων ασφαλείας.
Σύνθετοι και προχωρημένοι
Πίνακας οποιουδήποτε βασικού τύπου, π.χ. integer[].Λίστες απλών τιμών· όταν τα στοιχεία χρειάζονται δικές τους στήλες, χρησιμοποιήστε θυγατρικό πίνακα.
Μία τιμή από σταθερή λίστα που ορίζετε.Πεδία κατάστασης με σταθερό σύνολο επιλογών.
Προσαρμοσμένος τύπος γραμμής από πολλά πεδία.Επαναλαμβανόμενες ομάδες πεδίων που μοιράζονται πίνακες.
Συνεχές εύρος μεταξύ δύο ορίων.Χρονοδιαγράμματα, ζώνες τιμών και εκδόσεις, με τελεστές επικάλυψης.
Βασικός τύπος τυλιγμένος σε περιορισμούς που ορίζετε.Επαναχρησιμοποιήσιμοι κανόνες όπως μη κενό email, επιβαλλόμενοι σε κάθε στήλη που τον χρησιμοποιεί.
Ανώνυμη γραμμή τυποποιημένων τιμών.Επιστρεφόμενες τιμές συναρτήσεων PL/pgSQL και ενδιάμεσα αποτελέσματα ερωτημάτων.
Ενσωματωμένες δισδιάστατες γεωμετρικές τιμές.Απλή γεωμετρία επιπέδου· οι πραγματικές τοποθεσίες χρειάζονται PostGIS.
Απροσήμαστο 4-byte αναγνωριστικό αντικειμένου συστήματος.Συνδέσεις με τους καταλόγους συστήματος· όχι για στήλες εφαρμογής.
Εσωτερική συμβολοσειρά αναγνωριστικού 63 χαρακτήρων.Ερωτήματα καταλόγου· κανονικό text για οτιδήποτε απευθύνεται σε χρήστες.
Τύποι επεκτάσεων
Ζεύγη κλειδί/τιμή συμβολοσειρών σε μία τιμή (επέκταση).Επίπεδα maps· το jsonb το καλύπτει καλύτερα σήμερα.
Ιεραρχική διαδρομή ετικετών όπως news.tech.ai (επέκταση).Δέντρα με ερωτήματα προγόνων και απογόνων.
Κείμενο που συγκρίνει χωρίς διάκριση πεζών/κεφαλαίων (επέκταση).Μοναδικότητα χωρίς διάκριση πεζών/κεφαλαίων, όπως emails, χωρίς ευρετήριο lower().
Γεωγραφικά και γεωμετρικά αντικείμενα από την επέκταση PostGIS.Ερωτήματα απόστασης, περιεχομένου και χωρικού ευρετηρίου.
Συναρτήσεις επέκτασης που δημιουργούν τιμές UUID.Παλαιότερη μέθοδος δημιουργίας· από την PG 13 η gen_random_uuid() είναι ενσωματωμένη.