Τύποι δεδομένων PostgreSQL: Χαρακτήρας - Αριθμητικός - Δυαδικό - Boolean

Η PostgreSQL προσφέρει ένα πλούσιο σύνολο εγγενών τύπων δεδομένων για τους χρήστες. Οι χρήστες μπορούν να προσθέσουν νέους τύπους με τη βοήθεια της εντολής CREATE TYPE. Κάνει επίσης τα ερωτήματα απλούστερα και πιο ευανάγνωστα.

Τύποι δεδομένων στο PostgreSQL

Η PostgreSQL υποστηρίζει τους ακόλουθους τύπους δεδομένων:

  • Τύποι κειμένου
  • Αριθμητικοί τύποι
  • Ημερομηνίες και ώρες
  • XML
  • JSON
  • Boolean
  • Μπιτς
  • Δυαδικά δεδομένα
  • Δίκτυο
  • Πίνακες
  • Δημιουργήστε τον τύπο δεδομένων σας
  • Boolean
  • Χρονικός
  • UUID
  • Πίνακας
  • JSON
  • Ειδικοί τύποι δεδομένων για την αποθήκευση διεύθυνσης δικτύου και γεωμετρικών δεδομένων.

Ας μελετήσουμε λεπτομερώς τους τύπους δεδομένων PostgreSQL

  • Τύποι δεδομένων χαρακτήρων
  • Αριθμητικοί τύποι δεδομένων
  • Δυαδικοί τύποι δεδομένων
  • Τύπος διεύθυνσης δικτύου
  • Τύπος αναζήτησης κειμένου
  • Τύποι δεδομένων ημερομηνίας / ώρας
  • Δυαδικός τύπος
  • Τύποι γεωμετρικών δεδομένων
  • Αριθμημένοι τύποι
  • Τύπος εύρους
  • Τύπος UUID
  • Τύπος XML
  • Τύπος JSON
  • Ψευδο-Τύποι

Τύποι δεδομένων χαρακτήρων

Η PostgreSQL υποστηρίζει τύπους δεδομένων χαρακτήρων για την αποθήκευση τιμών κειμένου. Η PostgreSQL δημιουργεί τύπους δεδομένων χαρακτήρων από τις ίδιες εσωτερικές δομές. Η PostgreSQL προσφέρει τρεις τύπους δεδομένων χαρακτήρων: CHAR (n), VARCHAR (n) και TEXT.

Ονομα Περιγραφή
varchar (ν) Σας επιτρέπει να δηλώσετε μεταβλητό μήκος με όριο
Χαρ (ν) Σταθερό, κενό με επένδυση
Κείμενο Η χρήση μπορεί να χρησιμοποιήσει αυτόν τον τύπο δεδομένων για να δηλώσει μια μεταβλητή με απεριόριστο μήκος

Αριθμητικοί τύποι δεδομένων

Η PostgreSQL υποστηρίζει δύο διαφορετικούς τύπους αριθμών:

  • Ακέραιοι
  • Αριθμοί κινητής υποδιαστολής
Ονομα Μέγεθος καταστήματος Εύρος
μικρός 2 byte -32768 έως +32767
ακέραιος αριθμός 4 byte -2147483648 έως +2147483647
bigint 8 byte -9223372036854775808 έως 9223372036854775807
δεκαδικός μεταβλητός Εάν το δηλώσατε ως δεκαδικός τύπος δεδομένων κυμαίνεται από 131072 ψηφία πριν από το δεκαδικό έως 16383 ψηφία μετά το δεκαδικό
αριθμητικός μεταβλητός Εάν τον δηλώσετε ως αριθμό, μπορείτε να συμπεριλάβετε αριθμό έως 131072 ψηφία πριν από το δεκαδικό έως 16383 ψηφία μετά το δεκαδικό
πραγματικός 4 byte Ακρίβεια 6 δεκαδικών ψηφίων
διπλό 8 byte Ακρίβεια 15 δεκαδικών ψηφίων

Δυαδικοί τύποι δεδομένων

Μια δυαδική συμβολοσειρά είναι μια ακολουθία οκτάδων ή byte. Οι τύποι δεδομένων Binary Postgres χωρίζονται με δύο τρόπους.

  • Οι δυαδικές συμβολοσειρές επιτρέπουν την αποθήκευση αποδόσεων αξίας μηδέν
  • Μη εκτυπώσιμα οκτάδια

Οι συμβολοσειρές χαρακτήρων δεν επιτρέπουν μηδενικές οκτάδες και επίσης δεν επιτρέπουν άλλες οκτάδες τιμές και ακολουθίες που δεν είναι έγκυρες σύμφωνα με τους κανόνες κωδικοποίησης συνόλου χαρακτήρων της βάσης δεδομένων.

Ονομα Μέγεθος αποθήκευσης Περιγραφή
Ψηφιόλεξη 1 έως 4 byte συν το μέγεθος της δυαδικής συμβολοσειράς Δυαδική συμβολοσειρά μεταβλητού μήκους

Τύπος διεύθυνσης δικτύου

Πολλές εφαρμογές αποθηκεύουν πληροφορίες δικτύου, όπως διεύθυνση IP χρηστών ή

Αισθητήρες. Η PostgreSQL έχει τρεις εγγενείς τύπους που σας βοηθούν να βελτιστοποιήσετε τα δεδομένα δικτύου.

Ονομα Μέγεθος Περιγραφή
μηλίτης 7 ή 19 αντί Δίκτυα IPV4 και IPv6
Ίντ 7 ή 19 byte Υπολογιστής και δίκτυα IPV4 και IPV5
macaddr 6 byte Διευθύνσεις MAC

Η χρήση των τύπων διευθύνσεων δικτύου έχει τα ακόλουθα πλεονεκτήματα

  1. Εξοικονόμηση χώρου αποθήκευσης
  2. Έλεγχος σφάλματος εισαγωγής
  3. Λειτουργίες όπως αναζήτηση δεδομένων από υποδίκτυο

Τύπος αναζήτησης κειμένου

Η PostgreSQL παρέχει δύο τύπους δεδομένων που έχουν σχεδιαστεί για την υποστήριξη αναζήτησης πλήρους κειμένου. Η αναζήτηση πλήρους κειμένου πραγματοποιεί αναζήτηση μέσω μιας συλλογής εγγράφων φυσικής γλώσσας για αναζήτηση σε αυτά που ταιριάζουν καλύτερα σε ένα ερώτημα.

  • Αναζήτηση κειμένου Tsvector Οι μεταβλητές PostgreSQL αντιπροσωπεύουν ένα έγγραφο σε μορφή βελτιστοποιημένη για αναζήτηση κειμένου
  • Η αναζήτηση κειμένου τύπου ερωτήματος αποθηκεύει τις λέξεις-κλειδιά που πρέπει να αναζητηθούν

Τύποι δεδομένων ημερομηνίας / ώρας

Η χρονική σήμανση PostgreSQL προσφέρει ακρίβεια μικροδευτερολέπτου αντί για δεύτερη ακρίβεια. Επιπλέον, έχετε επίσης τη δυνατότητα αποθήκευσης με ζώνη ώρας ή χωρίς. Η PostgreSQL θα μετατρέψει τη χρονική σήμανση με τη ζώνη ώρας σε UTC κατά την είσοδο και θα την αποθηκεύσει.

Η εισαγωγή ημερομηνίας και ώρας γίνεται αποδεκτή σε διάφορες μορφές, συμπεριλαμβανομένων των παραδοσιακών Postgres, ISO 8601. Συμβατό με SQL κλπ

Η PostgreSQL υποστηρίζει παραγγελίες ημέρας / μήνα / έτους. Οι μορφές που υποστηρίζονται είναι DMY, MDY, YMD

Τύποι χρονικών δεδομένων

Ονομα Μέγεθος Εύρος Ανάλυση
Χρονική σήμανση χωρίς ζώνη ώρας 8 byte 4713 π.Χ. έως 294276 μ.Χ. 1 μικροδευτερόλεπτο / 14 ψηφία
Χρονική σήμανση με ζώνη ώρας 8 byte 4713 π.Χ. έως 294276 μ.Χ. 1 μικροδευτερόλεπτο / 14 ψηφία
ημερομηνία 4 byte 4713 π.Χ. έως 294276 μ.Χ. Μια μέρα
Χρόνος χωρίς ζώνη ώρας 8 byte 00:00:00 έως 24:00:00 1 μικροδευτερόλεπτο / 14 ψηφία
Ώρα με ζώνη ώρας 12 byte 00:00:00 + 1459 έως 24: 00: 00-1459 1 μικροδευτερόλεπτο / 14 ψηφία
Διάστημα 12 byte -178000000 έως 178000000 χρόνια 1 μικροδευτερόλεπτο / 14 ψηφία

Παραδείγματα:

Εισαγωγή Περιγραφή
2025-09-07 ISO 8601, 7 Σεπτεμβρίου με οποιοδήποτε στυλ ημερομηνίας (προτεινόμενη μορφή)
7 Σεπτεμβρίου 2025 7 Σεπτεμβρίου με οποιοδήποτε στυλ ημερομηνίας
9/7/2025 7 Σεπτεμβρίου με MDY, 9 Ιουλίου με DMY
9/7/25 7 Σεπτεμβρίου 2025, με το MDY
2025-Σεπ-7 7 Σεπτεμβρίου με οποιοδήποτε στυλ ημερομηνίας
Σεπ-7-2018 7 Σεπτεμβρίου με οποιοδήποτε στυλ ημερομηνίας
7-Σεπ-25 7 Σεπτεμβρίου 2025, με YMD
20250907 ISO 8601,7 Σεπ 20225 σε οποιαδήποτε λειτουργία
2025.250 έτος και ημέρα του έτους, σε αυτήν την περίπτωση, 7 Σεπτεμβρίου 2025
J25250 Ιουλιανή ημερομηνία

Ώρα / Ώρα με είσοδο ζώνης ώρας

Εισαγωγή Περιγραφή
11: 19: 38.507 11:19:38 11:19 111938 ISO 8601
11:19 ΠΜ Όπως και 11:19
11:19 μ.μ. όπως το 23:19
23: 19-3 23: 19-03: 00 231900-03 ISO 8601, όπως στις 11:19 μ.μ. EST
23:19 EST ζώνη ώρας που καθορίζεται ως EST, όπως στις 11:19 μ.μ. EST

Δυαδικός τύπος

Μπορεί να διατηρηθεί ένας τύπος δεδομένων Boolean

  • Αληθής
  • Ψευδής
  • μηδενικό

αξίες.

Χρησιμοποιείτε μια λέξη-κλειδί bool ή boolean για να δηλώσετε μια στήλη με τον τύπο δεδομένων Boolean.

Όταν εισάγετε τιμές σε μια δυαδική στήλη, το Postgre μετατρέπει τιμές όπως

  • Ναί
  • γ
  • 1
  • τ
  • αληθής

σε 1.

Ενώ οι τιμές αρέσουν

  • Οχι
  • Ν
  • 0
  • φά
  • Ψευδής

μετατρέπονται σε 0

Κατά την επιλογή δεδομένων, οι τιμές μετατρέπονται και πάλι σε ναι, αληθές, y κ.λπ.

Τύποι γεωμετρικών δεδομένων

Οι τύποι γεωμετρικών δεδομένων αντιπροσωπεύουν δισδιάστατα χωρικά αντικείμενα. Βοηθούν στην εκτέλεση λειτουργιών όπως περιστροφές, κλιμάκωση, μετάφραση κ.λπ.

Ονομα Μέγεθος αποθήκευσης Αναπαράσταση Περιγραφή
Σημείο 16 byte Σημείο σε αεροπλάνο (x, ε)
Γραμμή 32 byte Άπειρη γραμμή ((xl.yl). (x2.y2))
Lseg 32 byte Τμήμα πεπερασμένων γραμμών ((xl.yl). (x2.y2))
Κουτί 32 byte Ορθογώνιο κουτί ((xl.yl). (x2.y2))
Μονοπάτι 16n + 16n bytes Κλείσιμο και άνοιγμα διαδρομής ((xl.yl),…)
Πολύγωνο 40 + 16n bytes Πολύγωνο [(xl.yl)….]
Κύκλος 24 byte Κύκλος <(xy) .r> (κεντρικό σημείο και ακτίνα)

Αριθμημένοι τύποι

Ο τύπος δεδομένων Enumerated PostgreSQL είναι χρήσιμος για την αναπαράσταση σπανίως αλλαγμένων πληροφοριών, όπως κωδικός χώρας ή αναγνωριστικό υποκαταστήματος. Ο τύπος αριθμημένων δεδομένων αναπαρίσταται σε έναν πίνακα με ξένα κλειδιά για την εξασφάλιση ακεραιότητας δεδομένων.

Παράδειγμα:

Το χρώμα των μαλλιών είναι αρκετά στατικό σε μια δημογραφική βάση δεδομένων

CREATE TYPE hair_color AS ENUM('brown','black','red','grey','blond')

Τύπος εύρους

Πολλές επιχειρηματικές εφαρμογές απαιτούν δεδομένα σε εύρη. Συνήθως, δύο στήλες (παράδειγμα: ημερομηνία έναρξης, ημερομηνία λήξης) ορίζονται για να αντιμετωπίσουν εύρη. Αυτό είναι τόσο αναποτελεσματικό όσο και δύσκολο να διατηρηθεί.

Η Postgre έχει ενσωματωμένους τύπους εύρους ως εξής

  • int4range - Εύρος εμφάνισης ακέραιου
  • int8range - Εύρος εμφάνισης bigint
  • numrange - Εμφανίζει το αριθμητικό εύρος
  • tstrange - Σας βοηθά να εμφανίσετε τη χρονική σήμανση χωρίς ζώνη ώρας
  • παράξενο - Σας επιτρέπει να εμφανίσετε τη χρονική σήμανση με τη ζώνη ώρας
  • εύρος ημερομηνιών - Εύρος ημερομηνιών

Τύπος UUID

Το Universally Unique Identified (UUID) είναι μια ποσότητα 128-bit που δημιουργείται από έναν αλγόριθμο. Είναι πολύ απίθανο να δημιουργηθεί το ίδιο αναγνωριστικό από άλλο άτομο στον κόσμο χρησιμοποιώντας τον ίδιο αλγόριθμο. Γι 'αυτό για τα κατανεμημένα συστήματα, αυτά τα αναγνωριστικά είναι μια ιδανική επιλογή, καθώς προσφέρει μοναδικότητα σε μία μόνο βάση δεδομένων. Ένα UUID γράφεται ως ομάδα πεζών δεκαεξαδικών ψηφίων, με διάφορες ομάδες χωρισμένες με ενωτικά.

Η PostgreSQL έχει έναν εγγενή τύπο δεδομένων UUID που καταναλώνει 16 byte αποθήκευσης… Το UUID είναι ένας ιδανικός τύπος δεδομένων για πρωτεύοντα κλειδιά.

Παράδειγμα:

d5f28c97-b962-43be-9cf8-ca1632182e8e

Η Postgre δέχεται επίσης εναλλακτικές μορφές εισόδων UUID όπως όλες τις κεφαλαίες, χωρίς παύλες, τιράντες κ.λπ.

Τύπος XML

Η PostgreSQL σάς επιτρέπει να αποθηκεύετε δεδομένα XML σε έναν τύπο δεδομένων, αλλά δεν είναι τίποτα περισσότερο από μια επέκταση σε έναν τύπο δεδομένων κειμένου. Αλλά το πλεονέκτημα είναι ότι ελέγχει ότι η είσοδος XML είναι καλά διαμορφωμένη.

Παράδειγμα:

XMLPARSE (DOCUMENT 'Data Type')

Τύπος JSON

Για την αποθήκευση δεδομένων JSON Η PostgreSQL προσφέρει 2 τύπους δεδομένων

  1. JSON
  2. JSONB
Τζόνσον Τζόνμπ
Μια απλή επέκταση ενός τύπου δεδομένων κειμένου με επικύρωση JSON Μια δυαδική αναπαράσταση των δεδομένων JSON
Η εισαγωγή είναι γρήγορη αλλά η ανάκτηση δεδομένων είναι σχετικά αργή. Η εισαγωγή είναι αργή αλλά επιλέξτε (η ανάκτηση δεδομένων είναι γρήγορη)
Αποθηκεύει τα δεδομένα που έχετε εισαγάγει με τον ίδιο τρόπο που περιλαμβάνει το κενό διάστημα. Υποστηρίζει ευρετηρίαση. Μπορεί να βελτιστοποιήσει το κενό διάστημα για να κάνει την ανάκτηση πιο γρήγορη.
Επανεπεξεργασία στην ανάκτηση δεδομένων Δεν απαιτείται επανεπεξεργασία κατά την ανάκτηση δεδομένων

Ο ευρύτερα χρησιμοποιούμενος τύπος δεδομένων JSON μας χρησιμοποίησε jsonb εκτός εάν υπάρχει κάποια εξειδικευμένη ανάγκη να χρησιμοποιήσουμε τον τύπο δεδομένων JSON.

Παράδειγμα:

CREATE TABLE employee (id integer NOT NULL,age integer NOT NULL,data jsonb);
INSERT INTO employee VALUES (1, 35, '{"name": "Tom Price", "tags": ["Motivated", "SelfLearner"], "onboareded": true}');

Ψευδο-Τύποι

Η PostgreSQL έχει πολλές καταχωρήσεις ειδικού σκοπού που ονομάζονται ψευδο-τύποι. Δεν μπορείτε να χρησιμοποιήσετε ψευδο-τύπους ως τύπους στηλών PostgreSQL. Χρησιμοποιούνται για τη δήλωση ή το όρισμα της συνάρτησης ή τον τύπο επιστροφής.

Κάθε ένας από τους διαθέσιμους ψευδο-τύπους είναι χρήσιμος σε καταστάσεις όπου τα έγγραφα συμπεριφοράς μιας συνάρτησης δεν αντιστοιχούν στην απλή λήψη ή επιστροφή μιας τιμής ενός συγκεκριμένου τύπου δεδομένων SQL.

Ονομα Περιγραφή
Οποιος Η λειτουργία δέχεται όλους τους τύπους δεδομένων εισόδου.
Ένας πίνακας Η συνάρτηση δέχεται οποιονδήποτε τύπο δεδομένων πίνακα.
Οποιοδήποτε στοιχείο Η συνάρτηση δέχεται οποιονδήποτε τύπο δεδομένων.
Οποιοδήποτε enum Η συνάρτηση δέχεται οποιονδήποτε τύπο δεδομένων enum.
Όχι Η συνάρτηση δέχεται οποιονδήποτε τύπο δεδομένων χωρίς συστοιχία.
Κορδόνι Η συνάρτηση αποδέχεται ή επιστρέφει μηδενική τερματική συμβολοσειρά C.
Εσωτερικός Η εσωτερική λειτουργία δέχεται ή επιστρέφει τον εσωτερικό τύπο δεδομένων διακομιστή.
Γλώσσα_ χειριστής Έχει δηλωθεί ότι επιστρέφει τον χειριστή γλώσσας.
Ρεκόρ Βρείτε μια συνάρτηση που επιστρέφει έναν μη καθορισμένο τύπο σειράς.
Δώσει το έναυσμα για Μια λειτουργία σκανδάλης χρησιμοποιείται για την επιστροφή της σκανδάλης.

Είναι σημαντικό ο χρήστης που χρησιμοποιεί αυτήν τη συνάρτηση να βεβαιωθεί ότι η συνάρτηση θα συμπεριφέρεται με ασφάλεια όταν ένας ψευδο-τύπος χρησιμοποιείται ως τύπος ορίσματος.

Βέλτιστες πρακτικές με χρήση τύπων δεδομένων

  • Χρησιμοποιήστε τον τύπο δεδομένων "κείμενο" εκτός εάν θέλετε να περιορίσετε την εισαγωγή
  • Μην χρησιμοποιείτε ποτέ "char".
  • Οι ακέραιοι χρησιμοποιούν το "int". Χρησιμοποιήστε το bigint μόνο όταν έχετε πολύ μεγάλους αριθμούς
  • Χρησιμοποιήστε το "αριθμητικό" σχεδόν πάντα
  • Χρησιμοποιήστε το float στη PostgreSQL εάν έχετε πηγή δεδομένων IEEE 754

Περίληψη

  • Η PostgreSQL προσφέρει ένα πλούσιο σύνολο εγγενών τύπων δεδομένων για τους χρήστες
  • Η PostgreSQL υποστηρίζει τύπους δεδομένων χαρακτήρων για την αποθήκευση τιμών κειμένου
  • Η PostgreSQL υποστηρίζει δύο διαφορετικούς τύπους αριθμών: 1. Ακέραιοι, 2. Αριθμοί κινούμενου σημείου
  • Μια δυαδική συμβολοσειρά είναι μια ακολουθία byte ή οκτάδες
  • Η PostgreSQL διαθέτει τύπο διεύθυνσης δικτύου για να σας βοηθήσει να βελτιστοποιήσετε την αποθήκευση δεδομένων δικτύου
  • Αναζήτηση κειμένου Οι δομές δεδομένων PostgreSQL έχουν σχεδιαστεί για να υποστηρίζουν την αναζήτηση πλήρους κειμένου
  • Ημερομηνία / Ώρα Οι τύποι δεδομένων PSQL επιτρέπουν πληροφορίες ημερομηνίας και ώρας σε διάφορες μορφές
  • Οι τύποι πεδίων Boolean Postgres μπορούν να έχουν τρεις τιμές 1. True 2. False 3. Null
  • Οι γεωμετρικοί τύποι δεδομένων PostgreSQL αντιπροσωπεύουν δισδιάστατα χωρικά αντικείμενα
  • Οι αριθμημένοι τύποι δεδομένων στο PostgreSQL είναι χρήσιμοι για την αναπαράσταση σπανίως αλλαγμένων πληροφοριών, όπως ο κωδικός χώρας ή το αναγνωριστικό κλάδου
  • Το Universally Unique Identified (UUID) είναι μια ποσότητα 128-bit που δημιουργείται από έναν αλγόριθμο
  • Η PostgreSQL έχει πολλές καταχωρήσεις ειδικού σκοπού που ονομάζονται ψευδο-τύποι
  • Είναι βέλτιστη πρακτική η χρήση τύπου δεδομένων "κειμένου" εκτός εάν θέλετε να περιορίσετε την εισαγωγή

ενδιαφέροντα άρθρα...