Συναλλαγές τύπων δεδομένων sql. SQL: Τύποι δεδομένων

Όλες οι τιμές σε μια στήλη πρέπει να είναι ο ίδιος τύπος δεδομένων. (Η μόνη εξαίρεση σε αυτόν τον κανόνα είναι οι τιμές του τύπου δεδομένων SQL_VARIANT.) Οι τύποι δεδομένων που χρησιμοποιούνται στο Transact-SQL μπορούν να χωριστούν στις ακόλουθες κατηγορίες:

    αριθμητικοί τύποι?

    Τύποι χαρακτήρων?

    προσωρινοί τύποι (ημερομηνίες και/ή ώρες)·

    άλλους τύπους δεδομένων.

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

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

Τύποι αριθμητικών δεδομένων T-SQL
Τύπος δεδομένων Περιγραφή
ΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣ

Αντιπροσωπεύει ακέραιες τιμές 4 byte στην περιοχή -2 32 έως 2 32 - 1. Το INT είναι μια σύντομη μορφή του INTEGER.

SMALLINT

Αντιπροσωπεύει ακέραιες τιμές 2 byte στην περιοχή -32.768 έως 32.767

TINYINT

Αντιπροσωπεύει ακέραιες τιμές 1 byte στην περιοχή από 0 έως 255

ΜΕΓΑΛΗ

Αντιπροσωπεύει ακέραιες τιμές μήκους 8 byte στην περιοχή -2 63 έως 2 63 - 1

ΔΕΚΑΔΙΚΑ(p,[s])

Αντιπροσωπεύει τιμές σταθερού σημείου. Το όρισμα p (ακρίβεια) καθορίζει τον συνολικό αριθμό ψηφίων και το όρισμα s (κλίμακα) καθορίζει τον αριθμό των ψηφίων στα δεξιά της υποδιαστολής. Ανάλογα με την τιμή του ορίσματος p, οι δεκαδικές τιμές αποθηκεύονται σε 5 έως 17 byte. Το DEC είναι μια σύντομη μορφή του ΔΕΚΑΔΙΚΟΥ.

NUMERIC(p,[s])

Συνώνυμο του ΔΕΚΑΔΙΚΟΥ.

ΠΡΑΓΜΑΤΙΚΟΣ

Χρησιμοποιείται για την αναπαράσταση τιμών κινητής υποδιαστολής. Το εύρος των θετικών τιμών εκτείνεται από περίπου 2,23E -308 έως -1,18E -38. Μπορεί επίσης να αναπαρασταθεί μια μηδενική τιμή.

FLOAT[(p)]

Όπως και ο τύπος REAL, αντιπροσωπεύει τιμές κινητής υποδιαστολής [(p)]. Το όρισμα p καθορίζει την ακρίβεια. Στην τιμή p< 25 представляемые значения имеют одинарную точность (требуют 4 байта для хранения), а при значении p >= 25 - διπλή ακρίβεια (απαιτούνται 8 byte για αποθήκευση).

ΧΡΗΜΑΤΑ

Χρησιμοποιείται για την αναπαράσταση χρηματικών αξιών. Οι τιμές MONEY αντιστοιχούν σε τιμές ΔΕΚΑΔΙΩΝ 8 byte, στρογγυλεμένες σε τέσσερα δεκαδικά ψηφία

SMALLMONEY

Αντιπροσωπεύει τις ίδιες τιμές με τον τύπο MONEY, αλλά μήκους 4 byte

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

Υπάρχουν δύο γενικά είδη τύπων δεδομένων χαρακτήρων. Οι συμβολοσειρές μπορούν να αναπαρασταθούν ως χαρακτήρες ενός byte ή χαρακτήρες Unicode. (Το Unicode χρησιμοποιεί πολλαπλά byte για να αναπαραστήσει έναν χαρακτήρα.) Επιπλέον, οι συμβολοσειρές μπορεί να έχουν διαφορετικά μήκη. Ο παρακάτω πίνακας παραθέτει τις κατηγορίες τύπων δεδομένων χαρακτήρων με τις σύντομες περιγραφές τους.

Τύποι δεδομένων χαρακτήρων T-SQL
Τύπος δεδομένων Περιγραφή
CHAR[(n)]

Χρησιμοποιείται για την αναπαράσταση συμβολοσειρών σταθερού μήκους που αποτελούνται από n χαρακτήρες ενός byte. Η μέγιστη τιμή του n είναι 8000. Ο CHARACTER(n) είναι μια εναλλακτική ισοδύναμη μορφή του CHAR(n). Εάν το n δεν προσδιορίζεται ρητά, τότε η τιμή του θεωρείται ότι είναι 1.

VARCHAR[(n)]

Χρησιμοποιείται για την αναπαράσταση μιας συμβολοσειράς χαρακτήρων ενός byte μεταβλητού μήκους (0< n < 8 000). В отличие от типа данных CHAR, количество байтов для хранения значений типа данных VARCHAR равно их действительной длине. Этот тип данных имеет два синонима: CHAR VARYING и CHARACTER VARYING.

NCHAR[(n)]

Χρησιμοποιείται για την αποθήκευση συμβολοσειρών σταθερού μήκους που αποτελούνται από χαρακτήρες Unicode. Η κύρια διαφορά μεταξύ τύπων δεδομένων CHAR και NCHAR είναι ότι μια συμβολοσειρά NCHAR απαιτεί 2 byte για την αποθήκευση κάθε χαρακτήρα, ενώ μια συμβολοσειρά CHAR απαιτεί 1 byte. Επομένως, μια συμβολοσειρά τύπου δεδομένων NCHAR μπορεί να περιέχει το πολύ 4000 χαρακτήρες. Ο τύπος NCHAR μπορεί να χρησιμοποιηθεί για την αποθήκευση, για παράδειγμα, χαρακτήρων του ρωσικού αλφαβήτου, επειδή Οι κωδικοποιήσεις ενός byte δεν το επιτρέπουν.

NVARCHAR[(n)]

Χρησιμοποιείται για την αποθήκευση συμβολοσειρών μεταβλητού μήκους χαρακτήρων Unicode. Κάθε χαρακτήρας μιας συμβολοσειράς τύπου δεδομένων NVARCHAR απαιτεί 2 byte για αποθήκευση, επομένως μια συμβολοσειρά τύπου δεδομένων NVARCHAR μπορεί να περιέχει το πολύ 4000 χαρακτήρες.

Ο τύπος δεδομένων VARCHAR είναι πανομοιότυπος με τον τύπο δεδομένων CHAR, εκτός από μία διαφορά: εάν τα περιεχόμενα μιας συμβολοσειράς CHAR(n) είναι μικρότερα από n χαρακτήρες, το υπόλοιπο της συμβολοσειράς συμπληρώνεται με κενά. Και ο αριθμός των byte που καταλαμβάνει μια συμβολοσειρά VARCHAR είναι πάντα ίσος με τον αριθμό των χαρακτήρων σε αυτήν.

Τύποι δεδομένων χρόνου

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

Τύποι δεδομένων ΗΜΕΡΟΜΗΝΙΑ ΩΡΑΚαι SMALLDATETIMEχρησιμοποιούνται για την αποθήκευση ημερομηνίας και ώρας ως ακέραιες τιμές μήκους 4 και 2 byte, αντίστοιχα. Οι τιμές του τύπου DATETIME και SMALLDATETIME αποθηκεύονται εσωτερικά ως δύο ξεχωριστές αριθμητικές τιμές. Το στοιχείο ημερομηνίας των τιμών του τύπου DATETIME αποθηκεύεται στο εύρος από 01/01/1753 έως 31/12/9999 και το αντίστοιχο στοιχείο τιμών του τύπου SMALLDATETIME αποθηκεύεται στο εύρος από 01/01/1900 έως 06/06/2079. Το στοιχείο ώρας αποθηκεύεται σε ένα δεύτερο πεδίο 4 byte (2 byte για τιμές SMALLDATETIME) ως ο αριθμός των τριών εκατοστών του δευτερολέπτου (για DATETIME) ή ο αριθμός των λεπτών (για SMALLDATETIME) που έχουν περάσει από τα μεσάνυχτα.

Εάν θέλετε να αποθηκεύσετε μόνο το στοιχείο ημερομηνίας ή ώρας, η χρήση των τιμών DATETIME ή SMALLDATETIME είναι κάπως άβολη. Για το λόγο αυτό, εισήχθησαν τύποι δεδομένων στον SQL Server ΗΜΕΡΟΜΗΝΙΑΚαι ΧΡΟΝΟΣ, τα οποία αποθηκεύουν μόνο τα στοιχεία ημερομηνίας και ώρας των τιμών DATETIME, αντίστοιχα. Οι τιμές DATE καταλαμβάνουν 3 byte, αντιπροσωπεύοντας το εύρος ημερομηνιών από 01/01/0001 έως 31/12/9999. Οι τιμές TIME καταλαμβάνουν 3-5 byte και αντιπροσωπεύουν χρόνο με ακρίβεια 100 ns.

Τύπος δεδομένων DATETIME2χρησιμοποιείται για την αναπαράσταση τιμών ημερομηνίας και ώρας με υψηλή ακρίβεια. Ανάλογα με τις απαιτήσεις, οι τιμές αυτού του τύπου μπορούν να οριστούν σε διαφορετικά μήκη και καταλαμβάνουν από 6 έως 8 byte. Η συνιστώσα του χρόνου αντιπροσωπεύει το χρόνο με ακρίβεια 100 ns. Αυτός ο τύπος δεδομένων δεν υποστηρίζει τη θερινή ώρα.

Όλοι οι προσωρινοί τύποι δεδομένων που συζητήθηκαν μέχρι στιγμής δεν υποστηρίζουν ζώνες ώρας. Τύπος δεδομένων DATETIMEOFFSETέχει ένα στοιχείο για την αποθήκευση της μετατόπισης ζώνης ώρας. Για το λόγο αυτό, οι τιμές αυτού του τύπου καταλαμβάνουν 6 έως 8 byte. Όλες οι άλλες ιδιότητες αυτού του τύπου δεδομένων είναι ίδιες με αυτές του τύπου δεδομένων DATETIME2.

Οι τιμές ημερομηνίας στο Transact-SQL ορίζονται από προεπιλογή ως μια συμβολοσειρά της μορφής "μμμ ηη εεε" (για παράδειγμα, "10 Ιαν 1993") που περικλείεται σε μονά ή διπλά εισαγωγικά. (Αλλά η σχετική σειρά των στοιχείων του μήνα, της ημέρας και του έτους μπορεί να αλλάξει χρησιμοποιώντας την οδηγία ΡΥΘΜΙΣΗ ΜΟΡΦΗ ΗΜΕΡΟΜΗΝΙΑΣ. Επιπλέον, το σύστημα υποστηρίζει αριθμητικές τιμές για το στοιχείο μήνα και τους οριοθέτες / και -.) Ομοίως, η τιμή χρόνου καθορίζεται σε μορφή 24 ωρών ως "ωω: χιλιοστά" (για παράδειγμα, "22:24") .

Το Transact-SQL υποστηρίζει διάφορες μορφές για την εισαγωγή τιμών DATETIME. Όπως αναφέρθηκε, κάθε στοιχείο ορίζεται ξεχωριστά, επομένως οι τιμές ημερομηνίας και ώρας μπορούν να καθοριστούν με οποιαδήποτε σειρά ή ξεχωριστά. Εάν ένα από τα στοιχεία δεν έχει καθοριστεί, το σύστημα χρησιμοποιεί την προεπιλεγμένη τιμή για αυτό. (Η προεπιλεγμένη ώρα είναι 12:00 π.μ. (πριν το μεσημέρι).)

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

Υπάρχουν δύο τύποι δυαδικών τύπων δεδομένων: ΔΥΑΔΙΚΟΣ και VARBINARY. Αυτοί οι τύποι δεδομένων περιγράφουν αντικείμενα δεδομένων στην εσωτερική μορφή του συστήματος και χρησιμοποιούνται για την αποθήκευση συμβολοσειρών bit. Για το λόγο αυτό, οι τιμές αυτών των τύπων εισάγονται χρησιμοποιώντας δεκαεξαδικούς αριθμούς.

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

Τύπος δεδομένων LOB

Τύπος δεδομένων LOB (Μεγάλο αντικείμενο)χρησιμοποιείται για την αποθήκευση αντικειμένων δεδομένων μεγέθους έως 2 GB. Τέτοια αντικείμενα χρησιμοποιούνται συνήθως για την αποθήκευση μεγάλων ποσοτήτων δεδομένων κειμένου και για τη φόρτωση προσθηκών και αρχείων ήχου και βίντεο. Το Transact-SQL υποστηρίζει τους ακόλουθους τύπους δεδομένων LOB:

Ξεκινώντας με τον SQL Server 2005, το ίδιο μοντέλο προγραμματισμού χρησιμοποιείται για την πρόσβαση σε τιμές τυπικών τύπων δεδομένων και τιμές τύπων δεδομένων LOB. Με άλλα λόγια, μπορείτε να χρησιμοποιήσετε βολικές συναρτήσεις συστήματος και τελεστές συμβολοσειρών για να εργαστείτε με αντικείμενα LOB.

Στη Μηχανή Βάσης Δεδομένων Παράμετρος MAXχρησιμοποιείται με τύπους δεδομένων VARCHAR, NVARCHAR και VARBINARY για τον καθορισμό τιμών στηλών μεταβλητού μήκους. Όταν χρησιμοποιείται η προεπιλεγμένη τιμή μήκους MAX αντί να καθορίζεται ρητά το μήκος μιας τιμής, το σύστημα εξετάζει το μήκος μιας συγκεκριμένης συμβολοσειράς και αποφασίζει εάν θα αποθηκεύσει αυτήν τη συμβολοσειρά ως κανονική τιμή ή ως τιμή LOB. Η παράμετρος MAX καθορίζει ότι το μέγεθος των τιμών στηλών μπορεί να είναι μέχρι το μέγιστο μέγεθος LOB του συστήματος.

Παρόλο που το σύστημα αποφασίζει πώς θα αποθηκεύονται τα αντικείμενα LOB, οι προεπιλεγμένες ρυθμίσεις μπορούν να παρακαμφθούν χρησιμοποιώντας τη διαδικασία συστήματος sp_tableoption με το όρισμα LARGE_VALUE_TYPES_OUT_OF_ROW. Εάν αυτό το όρισμα οριστεί σε 1, τότε τα δεδομένα σε στήλες που δηλώνονται με χρήση της παραμέτρου MAX θα αποθηκευτούν χωριστά από άλλα δεδομένα. Εάν το όρισμα είναι 0, το Database Engine αποθηκεύει όλες τις τιμές έως και 8.060 byte στη σειρά του πίνακα ως κανονικά δεδομένα και αποθηκεύει μεγαλύτερες τιμές εκτός σειράς στην περιοχή αποθήκευσης LOB.

Ξεκινώντας από τον SQL Server 2008, μπορείτε να χρησιμοποιήσετε το VARBINARY(MAX) για στήλες τύπου Χαρακτηριστικό FILESTREAMγια αποθήκευση δεδομένων BLOB (Δυαδικό μεγάλο αντικείμενο)απευθείας στο σύστημα αρχείων NTFS. Το κύριο πλεονέκτημα αυτού του χαρακτηριστικού είναι ότι το μέγεθος του αντίστοιχου αντικειμένου LOB περιορίζεται μόνο από το μέγεθος του τόμου του συστήματος αρχείων.

Τύπος δεδομένων UNIQUEIDENTIFIER

Όπως υποδηλώνει το όνομά του, ο τύπος δεδομένων UNIQUEIDENTIFIER είναι ένας μοναδικός αριθμός αναγνώρισης που αποθηκεύεται ως δυαδική συμβολοσειρά 16 byte. Αυτός ο τύπος δεδομένων σχετίζεται στενά με το αναγνωριστικό GUID (Παγκόσμιο μοναδικό αναγνωριστικό - μοναδικό παγκοσμίως αναγνωριστικό), που εγγυάται τη μοναδικότητα σε παγκόσμια κλίμακα. Έτσι, αυτός ο τύπος δεδομένων επιτρέπει στα δεδομένα και τα αντικείμενα να αναγνωρίζονται μοναδικά σε κατανεμημένα συστήματα.

Μπορείτε να αρχικοποιήσετε μια στήλη ή μια μεταβλητή τύπου UNIQUEIDENTIFIER χρησιμοποιώντας τη συνάρτηση NEWID ή NEWSEQUENTIALID ή χρησιμοποιώντας μια σταθερά συμβολοσειράς ειδικής μορφής που αποτελείται από δεκαεξαδικά ψηφία και παύλες. Αυτά τα χαρακτηριστικά συζητούνται στο επόμενο άρθρο.

Μια στήλη με τιμές του τύπου δεδομένων UNIQUEIDENTIFIER μπορεί να προσπελαστεί χρησιμοποιώντας ένα ερώτημα λέξη-κλειδί ROWGUIDCOLγια να υποδείξετε ότι η στήλη περιέχει τιμές αναγνωριστικού. (Αυτή η λέξη-κλειδί δεν δημιουργεί τιμές.) Ένας πίνακας μπορεί να περιέχει πολλές στήλες UNIQUEIDENTIFIER, αλλά μόνο μία από αυτές μπορεί να έχει τη λέξη-κλειδί ROWGUIDCOL.

Τύπος δεδομένων SQL_VARIANT

Ο τύπος δεδομένων SQL_VARIANT μπορεί να χρησιμοποιηθεί για την αποθήκευση τιμών διαφορετικών τύπων ταυτόχρονα, όπως αριθμητικές τιμές, συμβολοσειρές και ημερομηνίες. (Η εξαίρεση είναι οι τιμές TIMESTAMP.) Κάθε τιμή στήλης SQL_VARIANT αποτελείται από δύο μέρη: την ίδια την τιμή και πληροφορίες που περιγράφουν αυτήν την τιμή. Αυτές οι πληροφορίες περιέχουν όλες τις ιδιότητες του τύπου δεδομένων πραγματικής τιμής, όπως μήκος, κλίμακα και ακρίβεια.

Για πρόσβαση και εμφάνιση πληροφοριών σχετικά με τις τιμές μιας στήλης τύπου SQL_VARIANT, χρησιμοποιήστε τη συνάρτηση SQL_VARIANT_PROPERTY.

Θα πρέπει να δηλώσετε έναν τύπο στήλης ως SQL_VARIANT μόνο εάν είναι πραγματικά απαραίτητο. Για παράδειγμα, εάν η στήλη προορίζεται για αποθήκευση τιμών διαφορετικών τύπων δεδομένων ή εάν ο τύπος δεδομένων που θα αποθηκευτεί σε αυτήν τη στήλη είναι άγνωστος κατά τη δημιουργία του πίνακα.

Τύπος δεδομένων HIERARCHYID

Ο τύπος δεδομένων HIERARCHYID χρησιμοποιείται για την αποθήκευση μιας πλήρους ιεραρχίας. Για παράδειγμα, μια τιμή αυτού του τύπου μπορεί να αποθηκεύσει μια ιεραρχία όλων των υπαλλήλων ή μια ιεραρχία φακέλων. Αυτός ο τύπος υλοποιείται ως τύπος που ορίζεται από το χρήστη CLR που καλύπτει διάφορες λειτουργίες συστήματος για τη δημιουργία και την εργασία με κόμβους ιεραρχίας. Οι ακόλουθες συναρτήσεις, μεταξύ άλλων, ανήκουν σε μεθόδους αυτού του τύπου δεδομένων: GetLevel(), GetAncestor(), GetDescendant(), Read() και Write().

Τύπος δεδομένων TIMESTAMP

Ο τύπος δεδομένων TIMESTAMP καθορίζει μια στήλη που ορίζεται ως VARBINARY(8) ή BINARY(8) , ανάλογα με τη μηδενικότητα της στήλης. Για κάθε βάση δεδομένων, το σύστημα διατηρεί έναν μετρητή του οποίου η τιμή αυξάνεται κάθε φορά που εισάγεται ή ενημερώνεται οποιαδήποτε σειρά που περιέχει ένα κελί TIMESTAMP και εκχωρεί αυτήν την τιμή σε αυτό το κελί. Έτσι, χρησιμοποιώντας κελιά TIMESTAMP, μπορείτε να προσδιορίσετε τον σχετικό χρόνο της τελευταίας τροποποίησης των αντίστοιχων σειρών του πίνακα. ( ΑΝΑΒΟΛΗείναι συνώνυμο του TIMESTAMP.)

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

Επιλογές αποθήκευσης

Ξεκινώντας με τον SQL Server 2008, υπάρχουν δύο διαφορετικές επιλογές αποθήκευσης, οι οποίες σας επιτρέπουν να αποθηκεύετε LOB και να εξοικονομείτε χώρο στο δίσκο. Αυτές είναι οι ακόλουθες επιλογές:

    αποθήκευση δεδομένων τύπου FILESTREAM.

    αποθήκευση με αραιές στήλες.

Αυτές οι επιλογές αποθήκευσης συζητούνται στις ακόλουθες υποενότητες.

Αποθήκευση δεδομένων FILESTREAM

Όπως αναφέρθηκε προηγουμένως, ο SQL Server υποστηρίζει την αποθήκευση μεγάλων αντικειμένων (LOB) μέσω του τύπου δεδομένων VARBINARY(MAX). Η ιδιότητα αυτού του τύπου δεδομένων είναι ότι τα δυαδικά μεγάλα αντικείμενα (BLOB) αποθηκεύονται στη βάση δεδομένων. Αυτό μπορεί να προκαλέσει προβλήματα απόδοσης κατά την αποθήκευση πολύ μεγάλων αρχείων, όπως αρχεία ήχου ή βίντεο. Σε τέτοιες περιπτώσεις, αυτά τα δεδομένα αποθηκεύονται εκτός της βάσης δεδομένων σε εξωτερικά αρχεία.

Η αποθήκευση δεδομένων FILESTREAM υποστηρίζει τη διαχείριση των LOB που είναι αποθηκευμένα στο σύστημα αρχείων NTFS. Το κύριο πλεονέκτημα αυτού του τύπου αποθήκευσης είναι ότι παρόλο που τα δεδομένα αποθηκεύονται εκτός της βάσης δεδομένων, η διαχείριση τους γίνεται από τη βάση δεδομένων. Έτσι, αυτός ο τύπος αποθήκευσης έχει τις ακόλουθες ιδιότητες:

    Τα δεδομένα FILESTREAM μπορούν να αποθηκευτούν χρησιμοποιώντας τη δήλωση CREATE TABLE και οι δηλώσεις τροποποίησης δεδομένων (SELECT, INSERT, UPDATE και DELETE) μπορούν να χρησιμοποιηθούν για εργασία με αυτά τα δεδομένα.

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

Αραιές στήλες

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

Οι στήλες αυτού του τύπου σάς επιτρέπουν να βελτιστοποιήσετε την αποθήκευση στηλών των οποίων οι πλειοψηφικές τιμές είναι μηδενικές. Όταν χρησιμοποιείτε αραιές στήλες, η αποθήκευση μηδενικών τιμών δεν απαιτεί χώρο στο δίσκο, αλλά από την άλλη πλευρά, η αποθήκευση μη μηδενικών τιμών απαιτεί επιπλέον 2 έως 4 byte, ανάλογα με τον τύπο τους. Για το λόγο αυτό, η Microsoft συνιστά τη χρήση αραιών στηλών μόνο σε περιπτώσεις όπου αναμένεται τουλάχιστον το 20% της συνολικής εξοικονόμησης χώρου στο δίσκο.

Οι αραιές στήλες ορίζονται με τον ίδιο τρόπο όπως και άλλες στήλες πίνακα. το ίδιο ισχύει και για την αντιμετώπισή τους. Αυτό σημαίνει ότι μπορείτε να χρησιμοποιήσετε προτάσεις SELECT, INSERT, UPDATE και DELETE για να αποκτήσετε πρόσβαση σε αραιές στήλες με τον ίδιο τρόπο που έχετε πρόσβαση στις κανονικές στήλες. Η μόνη διαφορά αφορά τη δημιουργία αραιών στηλών: για να ορίσετε μια συγκεκριμένη στήλη ως αραιή, χρησιμοποιήστε SPARSE επιχείρημαμετά το όνομα της στήλης, όπως φαίνεται σε αυτό το παράδειγμα:

στήλη_όνομα_δεδομένα_τύπος SPARSE

Πολλές αραιές στήλες πίνακα μπορούν να ομαδοποιηθούν σε ένα σύνολο στηλών. Αυτό το σύνολο θα ήταν ένας εναλλακτικός τρόπος αποθήκευσης και πρόσβασης σε τιμές σε όλες τις αραιές στήλες ενός πίνακα.

NULL τιμή

Το Null είναι μια ειδική τιμή που μπορεί να εκχωρηθεί σε ένα κελί πίνακα. Αυτή η τιμή χρησιμοποιείται συνήθως όταν οι πληροφορίες σε ένα κελί είναι άγνωστες ή δεν είναι εφαρμόσιμες. Για παράδειγμα, εάν δεν γνωρίζετε τον αριθμό τηλεφώνου σπιτιού ενός υπαλλήλου της εταιρείας, συνιστούμε να ορίσετε το αντίστοιχο κελί στη στήλη home_telephone σε null.

Εάν η τιμή οποιουδήποτε τελεστή οποιασδήποτε αριθμητικής παράστασης είναι μηδενική, η τιμή του αποτελέσματος της αξιολόγησης αυτής της παράστασης θα είναι επίσης μηδενική. Επομένως, σε μονομερείς αριθμητικές πράξεις, εάν η τιμή της παράστασης A είναι μηδενική, τότε και το +A και το -A επιστρέφουν μηδενικό. Σε δυαδικές παραστάσεις, εάν η τιμή ενός ή και των δύο τελεστών Α και Β είναι μηδενική, τότε το αποτέλεσμα της πρόσθεσης, αφαίρεσης, πολλαπλασιασμού, διαίρεσης και διαμόρφωσης αυτών των τελεστών θα είναι επίσης μηδενικό.

Εάν μια παράσταση περιέχει έναν τελεστή σύγκρισης και ο ένας ή και οι δύο τελεστές της είναι null, το αποτέλεσμα αυτής της πράξης θα είναι επίσης μηδενικό.

Η τιμή null πρέπει να είναι διαφορετική από όλες τις άλλες τιμές. Για τους τύπους αριθμητικών δεδομένων, η τιμή 0 και η τιμή null δεν είναι ίδιες. Το ίδιο ισχύει για την κενή συμβολοσειρά και τη μηδενική συμβολοσειρά για τους τύπους δεδομένων χαρακτήρων.

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

    NULL εάν η τιμή της παραμέτρου ANSI_NULL_DFLT_ONΗ εντολή SET είναι ενεργοποιημένη.

    NOT NULL εάν η παράμετρος ANSI_NULL_DFLT_OFF της δήλωσης SET είναι ενεργοποιημένη.

Εάν η δήλωση set δεν είναι ενεργοποιημένη, η στήλη θα είναι από προεπιλογή NOT NULL. (Οι μηδενικές τιμές δεν επιτρέπονται για στήλες TIMESTAMP.)

Ενότητα 3. Βασικά ΓλώσσαSQL

Διάλεξη 19. Ομάδες χειριστών. Τύποι δεδομένων

Σχεσιακή γλώσσα βάσης δεδομένων SQL αναπτύχθηκε στα μέσα της δεκαετίας του '70 ως μέρος ενός ερευνητικού έργου σε ένα πειραματικό σχεσιακό DBMS System R από την IBM . Αυτό το έργο περιελάμβανε την ανάπτυξη ενός σχεσιακού DBMS και μιας γλώσσας SEQUEL (Structured English Query Language ). Αυτό το όνομα αντανακλούσε μόνο εν μέρει την ουσία της γλώσσας. Η γλώσσα επικεντρώθηκε κυρίως στη διατύπωση ερωτημάτων σε μια σχεσιακή βάση δεδομένων που ήταν βολικά και κατανοητά στους χρήστες, στην πραγματικότητα ήταν μια πλήρης γλώσσα σχεσιακής βάσης δεδομένων και περιείχε, εκτός από τελεστές για τη διατύπωση ερωτημάτων και τον χειρισμό της βάσης δεδομένων, τα ακόλουθα. εργαλεία:

· ορισμός του σχήματος βάσης δεδομένων και χειρισμός του.

· καθορισμός περιορισμών ακεραιότητας και ενεργοποίησης·

· Δημιουργία προβολών βάσης δεδομένων.

· ορισμός δομών φυσικών επιπέδων που υποστηρίζουν αποτελεσματική εκτέλεση ερωτημάτων.

· αυτοματοποίηση της πρόσβασης σε πίνακες και τα πεδία τους.

· υποστήριξη για εξοικονόμηση πόντων συναλλαγών και επαναλήψεις.

Στα τέλη της δεκαετίας του '70, η εταιρείαΜαντείο κυκλοφόρησε μια τροποποιημένη έκδοση της γλώσσαςΗ ΣΥΝΕΧΕΙΑ , που ονομάζεται SQL . Το 1983 η εταιρείαΗ IBM κυκλοφόρησε την SQL ως μέρος του συστήματος βάσης δεδομένων DB 2.

Γλώσσα SQL ήταν τόσο επιτυχημένη που λίγο αργότερα, το 1986, το Αμερικανικό Εθνικό Ινστιτούτο Προτύπων ( ANSI ) το υιοθέτησε ως πρότυπο. Μετά από αυτό, το πρότυπο αναθεωρήθηκε ήδη αρκετές φορές, το 1989, το 1992, με αποτέλεσμα η γλώσσα SQL Έχουν γίνει κάποιες μικρές αλλαγές. Επί του παρόντος το πιο κοινό πρότυπο είναι SQL-92.

Τύποι εντολώνSQL

Εντολές SQL , υπό όρους, μπορεί να χωριστεί σε ομάδες:

· DCL ( Δεδομένα Ελεγχος Γλώσσα) – γλώσσα διαχείρισης δεδομένων. Οι γλωσσικές εντολές έχουν σχεδιαστεί για να ελέγχουν την πρόσβαση σε πληροφορίες που είναι αποθηκευμένες στη βάση δεδομένων. (Πίνακας 19.1);

· DDL (Γλώσσα ορισμού δεδομένων) – γλώσσα ορισμού δεδομένων. Οι εντολές του χρησιμοποιούνται για τη δημιουργία και την αλλαγή της δομής των αντικειμένων της βάσης δεδομένων (Πίνακας 19.2).

· DML ( Δεδομένα Χειρισμός Γλώσσα) – γλώσσα χειρισμού δεδομένων. Χρησιμοποιείται για τον χειρισμό πληροφοριών που περιέχονται σε αντικείμενα βάσης δεδομένων (Πίνακας 19.3).

· DQL ( Δεδομένα Ερώτηση Γλώσσα) – Γλώσσα ερωτήματος δεδομένων. Η πιο συχνά χρησιμοποιούμενη ομάδα που αποτελείται από έναν μόνο χειριστήΕΠΙΛΕΓΩ , που προορίζεται για τη δημιουργία ερωτημάτων στη βάση δεδομένων (Πίνακας 19.4).

· TCL (Συναλλαγή Ελεγχος Γλώσσα) – γλώσσα διαχείρισης συναλλαγών (Πίνακας 19.5).

CCL (Cursor Control Language ) – γλώσσα ελέγχου δρομέα (Πίνακας 19.6).

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

Πίνακας 19.1 - Εργαλεία διαχείρισης δεδομένων DCL

Χειριστής

Περιγραφή

ΑΛΛΑΓΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ

Αλλαγή του συνόλου των βασικών αντικειμένων βάσης δεδομένων

ALTER DBAREA

Αλλαγή μιας υπάρχουσας περιοχής αποθήκευσης βάσης δεδομένων

ΑΛΛΑΓΗ ΚΩΔΙΚΟΥ

Αλλάζει τον κωδικό πρόσβασης για ολόκληρη τη βάση δεδομένων

ΔΗΜΙΟΥΡΓΙΑ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ

Δημιουργεί μια νέα βάση δεδομένων και ορίζει τις βασικές παραμέτρους της

ΔΗΜΙΟΥΡΓΗΣΤΕ DBAREA

Δημιουργεί μια περιοχή αποθήκευσης και την καθιστά διαθέσιμη για αποθήκευση δεδομένων

ΑΠΟΣΤΟΛΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ

Διαγράφει τη βάση δεδομένων (αν έχετε δικαιώματα)

ΠΕΣΤΕ DBAREA

Διαγράφει μια περιοχή αποθήκευσης εάν δεν περιέχει ενεργά δεδομένα

ΧΟΡΗΓΗΣΗ

Παρέχει δικαιώματα πρόσβασης σε ενέργειες με αντικείμενα βάσης δεδομένων

ΑΝΑΚΑΛΩ

Στερεί δικαιώματα πρόσβασης σε αντικείμενα βάσης δεδομένων ή σε ενέργειες με αντικείμενα βάσης δεδομένων

Πίνακας 19.2 - Δηλώσεις ορισμού δεδομένων DDL

Χειριστής

Περιγραφή

ΔΗΜΙΟΥΡΓΙΑ ΤΡΑΠΕΖΙΟΥ

Δημιουργεί έναν νέο πίνακα στη βάση δεδομένων

ΠΤΡΑΠΕΖΙ ΠΤΩΣΗΣ

Αφαιρεί έναν υπάρχοντα πίνακα από τη βάση δεδομένων

ALTER TABLE

Αλλάζει τη δομή του πίνακα ή τους περιορισμούς του πίνακα

ΔΗΜΙΟΥΡΓΙΑ ΠΡΟΒΟΛΗ

Δημιουργεί μια προβολή (εικονικός πίνακας) που αντιστοιχεί σε κάποιαΕρώτημα SQL

ΑΠΟΣΤΟΛΗ ΠΡΟΒΟΛΗ

Διαγράφει μια προβολή που δημιουργήθηκε προηγουμένως

ΑΛΛΑΓΗ ΠΡΟΒΟΛΗ

Τροποποιεί μια υπάρχουσα προβολή

ΔΗΜΙΟΥΡΓΙΑ ΕΥΡΕΤΗΡΙΟΥ

Δημιουργεί ένα ευρετήριο σε κάποιον πίνακα

ΔΕΙΚΤΗΣ ΠΤΩΣΗΣ

Καταργεί ένα υπάρχον ευρετήριο

Πίνακας 19.3 - Τελεστές χειρισμού δεδομένων DML

Χειριστής

Περιγραφή

ΔΙΑΓΡΑΦΩ

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

ΕΙΣΑΓΕΤΕ

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

ΕΚΣΥΓΧΡΟΝΙΖΩ

Ενημερώνει τις τιμές ενός ή περισσότερων πεδίων σε μία ή περισσότερες εγγραφές που ταιριάζουν με τα κριτήρια επιλογής

Πίνακας 19.4 - Γλώσσα ερωτήματος δεδομένων DQL

Χειριστής

Περιγραφή

ΕΠΙΛΕΓΩ

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

Πίνακας 19.5- Έλεγχοι συναλλαγών TCL

Χειριστής

Περιγραφή

ΔΙΑΠΡΑΤΤΩ

Ολοκληρώνει μια συναλλαγή (σύνθετη διασυνδεδεμένη επεξεργασία πληροφοριών που συνδυάζεται σε συναλλαγές)

ΑΝΤΙΣΤΡΟΦΗ

Επαναφορά μιας συναλλαγής (αναίρεση αλλαγών που έγιναν κατά τη διάρκεια μιας συναλλαγής)

SAVEPOINT

Αποθηκεύει ένα ενδιάμεσο σημείο (κατάσταση) της βάσης δεδομένων για την υλοποίηση της δυνατότητας επαναφοράς

Πίνακας 19.6 - Στοιχεία ελέγχου δρομέα C C.L.

Χειριστής

Περιγραφή

ΔΗΛΩΝΩ

Καθορίζει τον κέρσορα για το αίτημα

ΑΝΟΙΞΕ

Ανοίγει έναν δρομέα (Δημιουργεί ένα εικονικό ND που αντιστοιχεί στην περιγραφή του δρομέα)

ΦΕΡΩ

Διαβάζει την επόμενη γραμμή από το εικονικό ND ενός ανοιχτού δρομέα

ΚΛΕΙΣΕ

Κλείνει έναν ανοιχτό δρομέα

ΠΡΟΕΤΟΙΜΑΖΩ

Προετοιμάζει μια δήλωση SQL για δυναμική εκτέλεση

ΕΚΤΕΛΕΣΗ

Εκτελεί μια πρόταση SQL που έχει προετοιμαστεί προηγουμένως για δυναμική εκτέλεση

Τύποι δεδομένων γλώσσας SQL

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

Πίνακας 19.7 – τύποι δεδομένων γλώσσας SQL

Τύπος δεδομένων

διαφημίσεις

Συμβολικός

ΧΑΡ | ΒΑΡΧΑΡ

Bitwise

BIT | ΜΕΤΑ ΔΙΑΦΟΡΕΤΑΙ

Ακριβείς αριθμοί

ΑΡΙΘΜΗΤΙΚΟ | ΔΕΚΑΔΙΚΟ | ΑΚΕΡΑΙΟΣ | SMALLINT

Πραγματικοί αριθμοί

FLOT | ΠΡΑΓΜΑΤΙΚΟ | ΔΙΠΛΗ ΑΚΡΙΒΕΙΑ

Ημερομηνία ώρα

ΗΜΕΡΟΜΗΝΙΑ | ΩΡΑ | ΧΡΟΝΟΣΗΜΑ

Διάστημα

ΔΙΑΣΤΗΜΑ

Τύποι χορδών:

§ CHARACTER(n) ή CHAR(n) - συμβολοσειρές χαρακτήρων σταθερού μήκους in n χαρακτήρες. Κατά τον καθορισμό αυτού του τύπου, εκχωρείται πάντα κάθε τιμή n χαρακτήρες και αν η πραγματική τιμή είναι μικρότερη από n χαρακτήρες, τότε το DBMS συμπληρώνει αυτόματα τους χαρακτήρες που λείπουν με κενά.

§ VARCHAR(n) - συμβολοσειρές χαρακτήρων μεταβλητού μήκους.

Τύποι bit:

§ Μέσα σε αυτό (n) - μια σειρά από bits σταθερού μήκους.

§ BIT VARYING(n) - συμβολοσειρά bit μεταβλητού μήκους.

Ακριβείς τύποι:

§ NUMERIC[(n,m)] - ακριβείς αριθμοί, εδώ και - ο συνολικός αριθμός των ψηφίων του αριθμού. le, m - ο αριθμός των ψηφίων στα αριστερά της υποδιαστολής.

§ ΔΕΚΑΔΙΚΟ[(n,m)] - ακριβείς αριθμοί, εδώ n είναι ο συνολικός αριθμός ψηφίων στον αριθμό, m είναι ο αριθμός των ψηφίων στα αριστερά της υποδιαστολής.

§ DEC[(n,m)] - το ίδιο με το DECIMal.[(n,m)].

§ INTEGER ή INT - ακέραιοι αριθμοί.

§ SMALLINT - ακέραιοι μικρότερου εύρους.

Πραγματικοί τύποι:

§ FLOAT[(n)] - αριθμοί υψηλής ακρίβειας αποθηκευμένοι σε μορφή κινητής υποδιαστολής. Εδώ n - ο αριθμός των byte που προορίζονται για την αποθήκευση ενός αριθμού. Το εύρος των αριθμών είναι συγκεκριμένο για την υλοποίηση.

§ Το REAL είναι ένας πραγματικός τύπος αριθμού που αντιστοιχεί σε αριθμούς κινητής υποδιαστολής, λιγότερο ακριβείς από το FLOAT.

§ Η ΔΙΠΛΗ ΑΚΡΙΒΕΙΑ καθορίζει έναν τύπο δεδομένων με ακρίβεια καθορισμένη από την υλοποίηση μεγαλύτερη από την ακρίβεια που ορίζεται από την υλοποίηση για ΠΡΑΓΜΑΤΙΚΟ.

Τύποι ημερομηνίας/ώρας και διάστημα:

§ ΗΜΕΡΟΜΗΝΙΑ - ημερολογιακή ημερομηνία.

§ TIME – μορφή ώρας.

§ ΦΟΡΕΣ TAMR (ακρίβεια) - ημερομηνία και ώρα.

§ INTERVAL - χρονικό διάστημα.

Τα περισσότερα εμπορικά DBMS υποστηρίζουν πρόσθετους τύπους δεδομένων που δεν καθορίζονται στο πρότυπο. Για παράδειγμα, σχεδόν όλα τα DBMS με τη μία ή την άλλη μορφή υποστηρίζουν έναν τύπο δεδομένων για την αναπαράσταση μη δομημένου κειμένου μεγάλου όγκου. Αυτός ο τύπος είναι παρόμοιος με τον τύπο MEMO στα DBMS επιτραπέζιων υπολογιστών. Αυτοί οι τύποι ονομάζονται διαφορετικά, για παράδειγμα, στο ORACLE αυτός ο τύπος ονομάζεται LONG, στο DB2 - LONG VARCHAR, στο SYBASE και στον MS SQL Server - TEXT.

Ερωτήσεις ελέγχου

1. Τι είναι η γλώσσα SQL;

2. Τι κοινό έχουν οι γλώσσες; SQL και σχεσιακή άλγεβρα;

3. Τι μέσα περιλαμβάνει η γλώσσα; SQL;

4. Ποια είδη εντολών διακρίνονται στη γλώσσα; SQL;

5. DML.

6. Ονομάστε τις βασικές εντολές της γλώσσας DDL.

7. Ονομάστε τις βασικές εντολές της γλώσσας DCL.

8. Ονομάστε τις βασικές εντολές της γλώσσας DQL.

9. Ονομάστε τις κύριες εντολές της γλώσσας διαχείρισης συναλλαγών.

10. Ονομάστε τους κύριους τύπους δεδομένων της γλώσσας SQL.

11. Ονομάστε τους τύπους δεδομένων συμβολοσειράς της γλώσσας SQL.

12. Ονομάστε τους τύπους αριθμητικών δεδομένων της γλώσσας SQL.

13. Όνομα τύπους αναπαράστασης ημερομηνίας και ώρας.

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

Τι είναι ένας τύπος δεδομένων;

Σήμερα, υπάρχουν αρκετοί ορισμοί που εξηγούν την ουσία της έννοιας του «τύπου δεδομένων». Κάθε ένα από αυτά έχει ένα γενικό νόημα. Συμβατικά, ένας τύπος δεδομένων μπορεί να οριστεί ως μια ομάδα δεδομένων που χαρακτηρίζεται από τις τιμές τους - αριθμητικές, συμβολικές και ούτω καθεξής - καθώς και από λειτουργίες που μπορούν να εφαρμοστούν στις εν λόγω τιμές. Το εύρος χρήσης διαφόρων τύπων δεδομένων είναι πολύ πολύπλευρο. Τα δεδομένα μπορούν να χρησιμοποιηθούν όχι μόνο για την αποθήκευση πληροφοριών, αλλά και για προγραμματισμό για την επίλυση συγκεκριμένων προβλημάτων. Κατά την ανάπτυξη προγραμμάτων, η πρακτική της χρήσης των δικών σας τύπων δεδομένων με ένα συγκεκριμένο σύνολο λειτουργιών έχει γίνει ευρέως διαδεδομένη. Οι πληροφορίες χρήστη βασίζονται πάντα σε βασικούς τύπους δεδομένων. Το πρότυπο SQL βασίζεται στους πιο συνηθισμένους τύπους πληροφοριών, αλλά με μια σειρά από συγκεκριμένες προσθήκες.

Τύποι δεδομένων: ταξινόμηση

Η ομαδοποίηση δεδομένων ανά τύπο εμφανίστηκε εδώ και πολύ καιρό. Προκλήθηκε από την ανάγκη να δομηθούν όλοι οι όγκοι πληροφοριών για να εξασφαλιστεί η ευκολία επεξεργασίας. Σήμερα, όλοι οι υπάρχοντες τύποι δεδομένων βασίζονται σε δύο βασικούς: χαρακτήρα και αριθμητικό. Με βάση αυτά τα δεδομένα, αναπτύχθηκε μια σύγχρονη ταξινόμηση, η οποία περιλαμβάνει δείκτες, ακέραιους, λογικούς, κινητής υποδιαστολής και τύπους πληροφοριών συμβολοσειρών. Όλα τα παραπάνω καλύπτονται πλήρως από την ταξινόμηση SQL. Ωστόσο, υπάρχουν ειδικά πρόσθετα για σύγχρονα συστήματα διαχείρισης βάσεων δεδομένων. Αυτά περιλαμβάνουν MySQL και Oracle.

Βασικοί τύποι δεδομένων

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

Τύπος δεδομένων συμβολοσειράς

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

— CHAR (μέγεθος) – αυτός ο τύπος χρησιμοποιείται για την αποθήκευση συμβολοσειρών. Η παράμετρος που καθορίζεται σε αγκύλες σάς επιτρέπει να καθορίσετε το μήκος της αποθηκευμένης συμβολοσειράς. Για μια συμβολοσειρά, μπορείτε να ορίσετε το μέγιστο μέγεθος σε byte σε 255.

— VAR CHAR (μέγεθος) — παρόμοιο με τον προηγούμενο τύπο, αυτός ο τύπος σάς επιτρέπει να αποθηκεύετε συμβολοσειρές των οποίων το μήκος δεν υπερβαίνει τους 255 χαρακτήρες. Η κύρια διαφορά μεταξύ αυτού του τύπου και του CHAR είναι ότι εδώ εκχωρείται η απαιτούμενη ποσότητα μνήμης για την αποθήκευση μιας τιμής αυτού του τύπου. Έτσι, για μια συμβολοσειρά που αποτελείται από 5 χαρακτήρες, θα χρειαστούν 6 byte μνήμης. Στην πρώτη περίπτωση, η μνήμη για την αποθήκευση της τιμής θα εκχωρηθεί σύμφωνα με την καθορισμένη παράμετρο.

— TINY TEXT - αυτός ο τύπος χρησιμοποιείται για την αποθήκευση πληροφοριών κειμένου, ο όγκος των οποίων δεν υπερβαίνει τους 65535 χαρακτήρες.

— BLOB – αυτός ο τύπος είναι παρόμοιος με τον τύπο TEXT. Σας επιτρέπει να αποθηκεύετε πληροφορίες κειμένου στη βάση δεδομένων, ο όγκος των οποίων μπορεί να είναι έως 65.535 χαρακτήρες. Ωστόσο, στην πράξη, αυτός ο τύπος μπορεί να χρησιμοποιηθεί για την αποθήκευση σχεδίων, ηχητικών πληροφοριών, ηλεκτρονικών εγγράφων και άλλων πραγμάτων.

— ΜΕΣΑΙΟ ΚΕΙΜΕΝΟ – αυτός ο τύπος αναπτύχθηκε με βάση τον τύπο TEXT. Λόγω του αυξημένου μεγέθους σε 16777215 χαρακτήρες, αυτός ο τύπος σάς επιτρέπει να αποθηκεύετε περισσότερα δεδομένα.

— MEDIU MBLOB – χρησιμοποιείται για την αποθήκευση ηλεκτρονικών εγγράφων στη βάση δεδομένων, το μέγεθος των οποίων δεν υπερβαίνει τους 16777215 χαρακτήρες.

- LONG TEXT - παρόμοια λειτουργικότητα με προηγούμενους τύπους δεδομένων, αλλά έχει χωρητικότητα μνήμης αυξημένη στα 4 GB.

— LONG BLOB – καθιστά δυνατή την τοποθέτηση μεγάλων δεδομένων στη βάση δεδομένων - 4294967295 χαρακτήρες.

- Το ENUM είναι ένας ειδικός τύπος δεδομένων που χρησιμοποιείται για τον καθορισμό μιας λίστας διαφορετικών τιμών. Αυτός ο τύπος σάς επιτρέπει να καθορίσετε 65535 τιμές. Οι συμβολοσειρές αυτού του τύπου μπορούν να λάβουν μόνο μία από όλες τις τιμές που καθορίζονται στο σύνολο. Εάν προστεθούν τιμές που δεν περιλαμβάνονται στη δεδομένη λίστα, οι κενές τιμές θα εγγραφούν στον πίνακα.

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

Πίνακας με κλασματικούς τύπους δεδομένων

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

FLOAT (μέγεθος) – χρησιμοποιείται για την αποθήκευση κλασματικών αριθμών καθορισμένης ακρίβειας – d;

— ΔΙΠΛΟ (μέγεθος) – χρησιμοποιείται για την αποθήκευση κλασμάτων με δυαδική ακρίβεια.

— ΔΕΚΑΔΙΚΟ (μέγεθος, d) – χρησιμοποιείται για την αποθήκευση κλασματικών τιμών με τη μορφή συμβολοσειρών. Χρησιμοποιείται σε τραπεζικούς υπολογισμούς, όπου η ακρίβεια του κλασματικού μέρους μπορεί να φτάσει τα 8 ή 10 ψηφία.

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

Ακέραια δεδομένα

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

  • INT (μέγεθος) – είναι υπεύθυνο για την αποθήκευση ακέραιων δεδομένων στην περιοχή [-231;231-1].
  • TINYINT (μέγεθος) – χρησιμοποιείται για την αποθήκευση αριθμών στην περιοχή από -128 έως 127.
  • SMALLINT (μέγεθος) – χαρακτηρίζεται από ελαφρώς αυξημένο εύρος αποθηκευμένων δεδομένων από -32768 έως 32767.
  • MEDIUMINT (μέγεθος) – χρησιμοποιείται για την αποθήκευση αριθμών με διαστάσεις από -223 έως 223-1.
  • BIGINT (μέγεθος) – καλύπτει το εύρος των ακέραιων τιμών από -263 έως 263-1.

Εάν επιλέξετε τον σωστό τύπο δεδομένων, μπορείτε να εξοικονομήσετε σημαντικά μνήμη και ταυτόχρονα να μειώσετε το κόστος του χρόνου διακομιστή κατά την εκτέλεση των απαραίτητων ερωτημάτων SQL. Οι τύποι δεδομένων και το εύρος τους καθορίζουν την απαιτούμενη ποσότητα αποθήκευσης. Οι προγραμματιστές πρέπει να γνωρίζουν ότι η χρήση μεγάλων περιοχών για χαρακτηριστικά μπορεί να επιφέρει αυξημένο κόστος μνήμης. Θα πρέπει να αναλύσετε με σαφήνεια τα προβλήματα που επιλύονται και να προσδιορίσετε καταστάσεις στις οποίες είναι γνωστό το κατά προσέγγιση εύρος δεδομένων και ορίζεται η προϋπόθεση για τη χρήση προσημειωμένων αριθμών. Εάν το εύρος των ορισμάτων που χρησιμοποιούνται είναι μικρό και όλοι οι αριθμοί είναι θετικοί, τότε θα ήταν πιο σωστό να χρησιμοποιηθεί ένας τύπος χωρίς υπογραφή, για τον οποίο προορίζεται το χαρακτηριστικό UNSIGNED.

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

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

  • ΗΜΕΡΟΜΗΝΙΑ – ο κύριος σκοπός αυτού του τύπου είναι η αποθήκευση της ημερομηνίας σε μορφή «έτος-μήνας-ημέρα». Οι τιμές διαχωρίζονται συνήθως με "-". Ωστόσο, μερικές φορές οποιαδήποτε σύμβολα εκτός από αριθμούς μπορούν να χρησιμοποιηθούν ως οριοθέτες.
  • TIME – σας επιτρέπει να εισάγετε τιμές χρόνου σε ένα κελί πίνακα. Οι τιμές καθορίζονται στη μορφή "ωω:λλ:δδ".
  • ΗΜΕΡΟΜΗΝΙΑ ΩΡΑ – αυτός ο τύπος συνδυάζει τις λειτουργίες των δύο προηγούμενων. Η μορφή αποθήκευσης δεδομένων σε αυτήν την περίπτωση μοιάζει με αυτό: "εεεε-μμ-ηη: ωω:λλ:δδ".
  • TIME STAMP – αυτός ο τύπος αποθηκεύει την ημερομηνία και την ώρα, που υπολογίζονται με τον αριθμό των δευτερολέπτων που έχουν περάσει από τα μεσάνυχτα της 01/01/1970 στην καθορισμένη τιμή.
  • YEAR (M) – χρησιμοποιείται για την αποθήκευση ετήσιων τιμών σε διψήφια ή τετραψήφια μορφή.

Τι άλλο πρέπει να γνωρίζετε; Όλοι οι τύποι δεδομένων που παρουσιάζονται παραπάνω συστηματοποιήθηκαν από τη Microsoft. Επίσης, ανέπτυξε τους τύπους δεδομένων SQL με περισσότερες λεπτομέρειες. Έτσι, για παράδειγμα, η φόρμα περιέγραφε πόση μνήμη εκχωρείται όταν χρησιμοποιείται κάθε τύπος δεδομένων. Αφού μελετήσουν όλες τις διαθέσιμες πληροφορίες, θα είναι ευκολότερο για τους προγραμματιστές να σχεδιάσουν τη δομή της βάσης δεδομένων και των πινάκων με βάση τις δυνατότητες υλικού του διακομιστή.

NULL - ειδικός δείκτης

Σε ορισμένες περιπτώσεις, κατά τη συμπλήρωση μιας βάσης δεδομένων, προκύπτει μια κατάσταση όταν, κατά την προσθήκη μιας εγγραφής σε έναν πίνακα, δεν υπάρχει ανάγκη εισαγωγής πληροφοριών σε όλες τις στήλες. Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε έναν ειδικό κενό δείκτη προορισμού ή NULL. Χρησιμοποιεί τη γλώσσα SQL ως βοηθητικό εργαλείο. Οι τύποι δεδομένων στηλών που είναι προαιρετικοί καθορίζονται με μια ρήτρα άδειας-μηδενισμού κατά τη δημιουργία πινάκων. Επίσης, ο τελεστής NULL, όταν χρησιμοποιείται το πρόσθετο πρόθεμα NOT, μπορεί να χρησιμοποιηθεί για να υποδείξει ότι πρέπει να συμπληρωθούν όλες οι τιμές. Ένας δείκτης NULL δεν έχει τύπο. Απλώς δείχνει σε μια κενή τιμή στους πίνακες της βάσης δεδομένων. Για το λόγο αυτό, μπορεί κάλλιστα να συνδυαστεί με έναν από τους τύπους δεδομένων που παρουσιάζονται παραπάνω.

Τύποι δεδομένων SQLχωρίζονται σε τρεις ομάδες:
σειρά;
κινητής υποδιαστολής (κλασματικοί αριθμοί);
ολόκληροι αριθμοί, ημερομηνίαΚαι χρόνος.

  1. Τύποι δεδομένων SQLσειρά
    Τύποι δεδομένων SQL Περιγραφή
    CHAR(μέγεθος) Συμβολοσειρές σταθερού μήκους (μπορεί να περιέχουν γράμματα, αριθμούς και ειδικούς χαρακτήρες). Το σταθερό μέγεθος υποδεικνύεται σε παρένθεση. Μπορούν να εγγραφούν έως και 255 χαρακτήρες
    VARCHAR(μέγεθος)
    TINYTEXT Μπορεί να αποθηκεύσει έως 255 χαρακτήρες.
    ΚΕΙΜΕΝΟ
    ΑΜΟΡΦΗ ΜΑΖΑ Μπορεί να αποθηκεύσει έως 65.535 χαρακτήρες.
    ΜΕΣΑΙΟ ΚΕΙΜΕΝΟ
    MEDIUMBLOB Μπορεί να αποθηκεύσει έως 16.777.215 χαρακτήρες.
    ΜΑΚΡΥΚΕΙΜΕΝΟ
    LONGBLOB Μπορεί να αποθηκεύσει έως 4.294.967.295 χαρακτήρες.
    ENUM(x, y, z, κ.λπ.) Σας επιτρέπει να εισάγετε μια λίστα με έγκυρες τιμές. Μπορείτε να εισαγάγετε έως και 65535 τιμές Τύπος δεδομένων SQL ENUMλίστα. Εάν, κατά την εισαγωγή, η τιμή δεν θα υπάρχει στη λίστα ΑΡΙΘΜΟΣ, τότε θα λάβουμε μια κενή τιμή.
    Μπορείτε να εισαγάγετε πιθανές τιμές στην ακόλουθη μορφή: ENUM ("X", "Y", "Z")
    ΣΕΙΡΑ SQL Τύπος δεδομένων SETθυμίζει ΑΡΙΘΜΟΣεκτός από ΣΕΙΡΑμπορεί να περιέχει έως και 64 τιμές.
  2. Τύποι δεδομένων SQLκινητή υποδιαστολή (κλασματικοί αριθμοί) και ακέραιοι αριθμοί
    Τύποι δεδομένων SQL Περιγραφή
    TINYINT(μέγεθος) Μπορεί να αποθηκεύσει αριθμούς από -128 έως 127
    SMALLINT(μέγεθος) Εύρος -32.768 έως 32.767
    MEDIUMINT(μέγεθος) Εύρος -8.388.608 έως 8.388.607
    INT(μέγεθος) Εύρος -2.147.483.648 έως 2.147.483.647
    BIGINT(μέγεθος) Εύρος -9.223.372.036.854.775.808 έως 9.223.372.036.854.775.807
    FLOAT(μέγεθος,d) Αριθμός κινητής υποδιαστολής χαμηλής ακρίβειας.
    ΔΙΠΛΟ(μέγεθος,d) Αριθμός κινητής υποδιαστολής διπλής ακρίβειας.
    ΔΕΚΑΔΙΚΟ(μέγεθος,d) Ένας κλασματικός αριθμός που αποθηκεύεται ως συμβολοσειρά.
  3. Τύποι δεδομένων SQL- Ημερομηνία και ώρα

Τύποι δεδομένων MySQL

Τύποι δεδομένων MySQLχωρίζονται στους εξής τύπους:

  • Αριθμητικός τύπους δεδομένων
    Τύποι δεδομένων Ψηφιόλεξη Από Πριν
    TINYINT 1 -128 127
    SMALLINT 2 -32768 32767
    MEDIUMINT 3 -8388608 8388607
    INT 4 -2147483648 2147483647
    ΜΕΓΑΛΗ 8 -9223372036854775808 9223372036854775807
  • Τύποι δεδομένων ημερομηνία και ώρα
  • Χαρακτήρας Τύποι δεδομένων

Τύποι δεδομένων Oracle

Τύποι δεδομένων Oracle

  • ΑΠΑΝΘΡΑΚΩΝΩ– σταθερές συμβολοσειρές κειμένου έως 2000 byte. Τιμή τύπου ΑΠΑΝΘΡΑΚΩΝΩγεμισμένο στο καθορισμένο μήκος με κενά.
  • ΒΑΡΧΑΡ 2— συμβολοσειρές κειμένου μεταβλητού μήκους έως 4000 byte.
  • ΑΡΙΘΜΟΣ— αριθμητικά δεδομένα.
  • ΔΕΚΑΔΙΚΟΣ- αριθμητικά στοιχεία
  • ΗΜΕΡΟΜΗΝΙΑ- χρησιμοποιείται για την αποθήκευση των ημερομηνιών.
  • ΑΚΑΤΕΡΓΑΣΤΟΣ- χρησιμοποιείται για την αποθήκευση δυαδικών δεδομένων έως 2000 byte.
  • ΜΑΚΡΥΣ- χρησιμοποιείται για την αποθήκευση δεδομένων κειμένου μήκους έως 2 GB
  • ΜΑΚΡΥ ΩΜ- χρησιμοποιείται για την αποθήκευση δυαδικών δεδομένων έως 2 GB
  • ROWID- χρησιμοποιείται για την αποθήκευση αναγνωριστικών ROWIDΒάση δεδομένων Μαντείοσε ειδική μορφή (διευθύνσεις σειρών πίνακα).
  • ΑΜΟΡΦΗ ΜΑΖΑ- Αποθηκεύονται έως και 4 GB δυαδικών δεδομένων. Τα δεδομένα αυτού του τύπου αποθηκεύονται εκτός του πίνακα, αλλά στον πίνακα Μαντείουπάρχουν μόνο δείκτες σε αντικείμενα
  • CLOB, NCLOB— αποθηκεύονται έως και 4 GB δεδομένων κειμένου. NCLOBείναι ο τύπος δεδομένων NLSμεγάλο σταθερό μήκος ( NLSπου σημαίνει Εθνικό σύνολο γλωσσών– ένα σετ για εθνικές γλώσσες – και χρησιμοποιείται για εργασία Μαντείοσε άλλες γλώσσες εκτός από τα αγγλικά. Στα Αγγλικά, απαιτείται 1 byte για την αποθήκευση ενός χαρακτήρα και σε ορισμένες γλώσσες του κόσμου με μεγάλα σύνολα χαρακτήρων (Ιαπωνικά, Κινέζικα, Κορεάτικα), γλώσσες όπου το κείμενο διαβάζεται από τα δεξιά προς τα αριστερά (αραβικά, εβραϊκά) απαιτούνται πολλά byte για την αποθήκευση ενός χαρακτήρα). Τα δεδομένα αυτού του τύπου αποθηκεύονται εκτός του πίνακα και ο πίνακας περιέχει μόνο δείκτες σε αντικείμενα.
  • BFILE— αποθηκεύονται έως και 4 GB μη δομημένων δεδομένων και σε αρχεία λειτουργικού συστήματος (εξωτερικά αρχεία).

ANSI SQLτο πρότυπο αναγνωρίζει μόνο κείμενο και αριθμό, ενώ τα περισσότερα εμπορικά προγράμματα χρησιμοποιούν άλλους ειδικούς τύπους όπως π.χ ΗΜΕΡΟΜΗΝΙΑΚαι ΧΡΟΝΟΣ- στην πραγματικότητα, σχεδόν τυπικοί τύποι. Ορισμένα πακέτα υποστηρίζουν επίσης τύπους όπως π.χ ΧΡΗΜΑΤΑΚαι ΔΥΑΔΙΚΟΣ. Τύποι δεδομένων, που αναγνωρίζεται από το ANSI, αποτελείται από σειρές χαρακτήρων και διάφορους τύπους αριθμών, οι οποίοι μπορούν να ταξινομηθούν ως ακριβήςαριθμοί και κατά προσέγγιση αριθμοί.

ΧΑΡΑΚΤΗΡΑΣ (μήκος)ορίζει μια προδιαγραφή συμβολοσειρών χαρακτήρων, όπου μήκοςκαθορίζει το μήκος των συμβολοσειρών ενός δεδομένου τύπου. Οι τιμές αυτού του τύπου πρέπει να περικλείονται σε μονά εισαγωγικά. Οι περισσότερες υλοποιήσεις υποστηρίζουν συμβολοσειρές μεταβλητού μήκους για τύπους δεδομένων ΒΑΡΧΑΡΚαι ΜΑΚΡΥ ΒΑΡΧΑΡ(ή απλά ΜΑΚΡΥΣ).

Ενώ ένα πεδίο όπως ΑΠΑΝΘΡΑΚΩΝΩμπορεί πάντα να εκχωρήσει μνήμη για τον μέγιστο αριθμό χαρακτήρων που μπορούν να αποθηκευτούν σε ένα πεδίο, πεδίο ΒΑΡΧΑΡδεδομένου ότι οποιοσδήποτε αριθμός χαρακτήρων μπορεί να εκχωρήσει μόνο μια συγκεκριμένη ποσότητα μνήμης για την αποθήκευση των πραγματικών περιεχομένων του πεδίου, αν και SQLμπορεί να δημιουργήσει κάποιο πρόσθετο χώρο μνήμης για να παρακολουθείτε το τρέχον μήκος πεδίου. Πεδίο ΒΑΡΧΑΡμπορεί να έχει οποιοδήποτε μήκος, συμπεριλαμβανομένου ενός μέγιστου καθορισμένου από την υλοποίηση. Αυτό το μέγιστο μπορεί να κυμαίνεται από 254 έως 2048 χαρακτήρες για ΒΑΡΧΑΡκαι έως 16.000 χαρακτήρες για ΜΑΚΡΥΣ. ΜΑΚΡΥΣΣυνήθως χρησιμοποιείται για κείμενο επεξηγηματικού χαρακτήρα ή για δεδομένα που δεν μπορούν εύκολα να συμπιεστούν σε απλές τιμές πεδίου. ΒΑΡΧΑΡμπορεί να χρησιμοποιηθεί για οποιαδήποτε συμβολοσειρά κειμένου του οποίου το μήκος μπορεί να ποικίλλει.

Εξαγωγή και τροποποίηση πεδίων ΒΑΡΧΑΡ- πιο περίπλοκη και επομένως πιο αργή διαδικασία από την εξαγωγή και την τροποποίηση πεδίων ΑΠΑΝΘΡΑΚΩΝΩ.Επιπλέον, λίγη μνήμη ΒΑΡΧΑΡπαραμένει πάντα αχρησιμοποίητο για να διασφαλιστεί ότι περιέχεται ολόκληρο το μήκος της συμβολοσειράς. Όταν χρησιμοποιείτε τέτοιους τύπους, θα πρέπει να είναι δυνατός ο συνδυασμός πεδίων με άλλα πεδία.

Ακριβείς αριθμητικοί τύποιείναι αριθμοί, με ή χωρίς υποδιαστολή, που μπορούν να παρασταθούν ως [+|-]<целое без знака>[.<целое без знака>] και να προσδιορίζονται ως:

ΔΕΚΑΔΙΚΟ (ακρίβεια [, κλίμακα])- το όρισμα μεγέθους έχει δύο μέρη: ακρίβεια και κλίμακα. Η κλίμακα δεν μπορεί να υπερβαίνει την ακρίβεια. Η ακρίβεια δείχνει πόσα σημαντικά ψηφία έχει ένας αριθμός. Η κλίμακα καθορίζει τον μέγιστο αριθμό ψηφίων στα δεξιά της υποδιαστολής. Η κλίμακα = μηδέν κάνει το πεδίο ισοδύναμο με έναν ακέραιο.

NUMERIC(ακρίβεια [, κλίμακα])- το ίδιο με ΔΕΚΑΔΙΚΟΣεκτός από το ότι το μέγιστο δεκαδικό δεν μπορεί να υπερβαίνει το όρισμα ακριβείας

ΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣ- αριθμός χωρίς δεκαδικό ψηφίο. Ισοδύναμος ΔΕΚΑΔΙΚΟΣ, αλλά χωρίς τους αριθμούς στα δεξιά της υποδιαστολής, δηλ. με κλίμακα ίση με 0. Το όρισμα μέγεθος δεν χρησιμοποιείται (ορίζεται αυτόματα σε τιμή που εξαρτάται από την υλοποίηση).

SMALLINT- το ίδιο με ΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣ, εκτός από το ότι, ανάλογα με την υλοποίηση, το προεπιλεγμένο μέγεθος μπορεί (ή όχι) να είναι μικρότερο από ΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣ.

Κατά προσέγγιση αριθμητικοί τύποιείναι αριθμοί σε εκθετική (βάση 10) συμβολισμό, που αντιπροσωπεύονται ως <литеральное значение точного числа>μι<целое со знаком> και ορίζεται ως εξής:

FLOAT[(ακρίβεια)]- αριθμός κινητής υποδιαστολής. Το όρισμα μεγέθους αποτελείται από έναν μόνο αριθμό που καθορίζει την ελάχιστη ακρίβεια.

ΠΡΑΓΜΑΤΙΚΟΣ- το ίδιο με ΦΛΟΤΕΡεκτός από το ότι δεν χρησιμοποιείται όρισμα μεγέθους. Η ακρίβεια έχει οριστεί σε εξάρτηση από την υλοποίηση από προεπιλογή.

ΔΙΠΛΗ ΑΚΡΙΒΕΙΑ- το ίδιο με ΠΡΑΓΜΑΤΙΚΟΣ, εκτός από την ακρίβεια που καθορίζεται από την υλοποίηση για ΔΙΠΛΗ ΑΚΡΙΒΕΙΑπρέπει να υπερβαίνει την ακρίβεια που ορίζεται από την υλοποίηση ΠΡΑΓΜΑΤΙΚΟΣ.

Πρόσβαση σε τύπους δεδομένων

Πρόσβαση σε τύπους δεδομένωνχωρίζονται στις εξής ομάδες:

  • Κείμενο– μέγιστο 255 byte.
  • Σημείωση - έως 64000 byte.
  • Αριθμητικός— 1,2,4 ή 8 byte Για έναν αριθμητικό τύπο, το μέγεθος του πεδίου μπορεί να είναι ως εξής:
    • ψηφιόλεξη— ακέραιοι από -0 έως 255, καταλαμβάνει 1 byte όταν αποθηκεύεται
    • ολόκληρος— ακέραιοι από -32768 έως 32767, παίρνει 2 byte
    • μακρύς ακέραιος— ακέραιοι από -2147483648 έως 2147483647, παίρνει 4 byte
    • κινητής υποδιαστολής— αριθμοί με ακρίβεια 6 ψηφίων από –3,4*1038 έως 3,4*1038, χρειάζονται 4 byte
    • κινητής υποδιαστολής— αριθμοί με ακρίβεια από –1,797*10308 έως 1,797*10308, παίρνει 8 byte
  • Ημερομηνία ώρα- 8 byte
  • Νομισματικός- 8 byte, δεδομένα για χρηματικά ποσά, αποθηκευμένα με 4 δεκαδικά ψηφία.
  • Μετρητής- ένας μοναδικός μεγάλος ακέραιος που δημιουργείται από την Access κατά τη δημιουργία κάθε νέας εγγραφής - 4 byte.
  • Λογικός— λογικά δεδομένα 1 bit.
  • Πεδίο αντικειμένου OLE– έως 1 gigabyte, εικόνες, διαγράμματα και άλλα αντικείμενα OLEαπό εφαρμογές Windows. Αντικείμενα OLEμπορεί να είναι συνδεδεμένο ή ενσωματωμένο.
  • Υπερσυνδέσεις— ένα πεδίο στο οποίο αποθηκεύονται οι υπερσύνδεσμοι. Ένας υπερσύνδεσμος μπορεί να είναι οποιουδήποτε τύπου UNC(μια τυπική μορφή για τον καθορισμό μιας διαδρομής συμπεριλαμβανομένου ενός διακομιστή αρχείων δικτύου) ή URL (η διεύθυνση ενός αντικειμένου, εγγράφου, σελίδας ή άλλου τύπου αντικειμένου στο Διαδίκτυο ή στο Intranet. Η διεύθυνση URL ορίζει το πρωτόκολλο πρόσβασης και την τελική διεύθυνση ).
  • Οδηγός αντικατάστασης— ένα πεδίο που σας επιτρέπει να επιλέξετε μια τιμή από έναν άλλο πίνακα Προσβάσειςή από μια λίστα τιμών χρησιμοποιώντας ένα σύνθετο πλαίσιο. Συχνά χρησιμοποιείται για βασικά πεδία. Έχει το ίδιο μέγεθος με το πρωτεύον κλειδί, το οποίο είναι επίσης πεδίο αναζήτησης, συνήθως 4 byte. ( Πρωτεύων κλειδί– ένα ή περισσότερα πεδία, ο συνδυασμός τιμών των οποίων προσδιορίζει μοναδικά κάθε εγγραφή στον πίνακα Προσβάσεις. Δεν επιτρέπει undefined.Null. Οι τιμές πρέπει να έχουν πάντα ένα μοναδικό ευρετήριο. Χρησιμεύει για τη σύνδεση ενός πίνακα με δευτερεύοντα κλειδιά άλλων πινάκων).

Τύποι δεδομένων SQL Server

Microsoft SQL Server SQL 2003. Επίσης SQL Serverυποστηρίζει επιπλέον τύπους δεδομένων, που χρησιμοποιείται για τον μοναδικό προσδιορισμό σειρών δεδομένων σε έναν πίνακα και σε πολλούς διακομιστές, όπως το UNIQUEIDENTIFIER, το οποίο αντιστοιχεί στη φιλοσοφία υλικού της Microsoft για "αύξηση σε πλάτος" (δηλαδή, εφαρμογή βάσης σε πολλούς διακομιστές σε πλατφόρμες Intel), αντί για "αύξηση σε ύψος" (δηλαδή υλοποίηση σε έναν τεράστιο ισχυρό διακομιστή UNIX ή διακομιστή δεδομένων του Windows Data Center).

Τύποι δεδομένωνπου χρησιμοποιείται στον SQL Server:

  • ΜΕΓΑΛΗ ( Τύπος δεδομένων SQL2003: B1GINT)
    Αποθηκεύει υπογεγραμμένους και ανυπόγραφους ακέραιους αριθμούς στην περιοχή -9.223.372.036.854.775.808 έως 9.223.372.036.854.775.807. Δείτε τον τύπο INT για κανόνες ιδιότητας IDENTITY που ισχύουν επίσης για τον τύπο BIGINT.
  • ΔΥΑΔΙΚΟ[(n)] ( Τύπος δεδομένων SQL2003: BLOB)
    Αποθηκεύει μια δυαδική τιμή σταθερού μήκους από 1 έως 8000 byte. Μια ΔΥΑΔΙΚΗ τιμή καταλαμβάνει n + 4 byte.
  • BIT ( Τύπος δεδομένων SQL2003: BOOLEAN)
    Αποθηκεύει τις τιμές 1, 0 ή NULL, που σημαίνει "άγνωστο". Ένα byte μπορεί να αποθηκεύσει έως και 8 τιμές από στήλες του τύπου πίνακα BIT. Ένα ακόμη byte μπορεί να φιλοξενήσει επιπλέον 8 τιμές BIT.
  • CHAR[(n)] , CHARACTER[(n)] ( Τύπος δεδομένων SQL2003: ΧΑΡΑΚΤΗΡΑΣ[(n)])
    Αποθηκεύει δεδομένα χαρακτήρων σταθερού μήκους από 1 έως 8000 χαρακτήρες. Κάθε αχρησιμοποίητος χώρος γεμίζεται με κενά από προεπιλογή. (Η αυτόματη συμπλήρωση μπορεί να απενεργοποιηθεί.) Ο τύπος καταλαμβάνει n byte.
  • ΔΡΟΜΕΑΣ ( Τύπος δεδομένων SQL2003: λείπει)
    Ένας ειδικός τύπος δεδομένων που χρησιμοποιείται για την περιγραφή ενός δρομέα με τη μορφή μεταβλητής ή αποθηκευμένης παραμέτρου διαδικασίας OUTPUT. Ο τύπος δεν μπορεί να χρησιμοποιηθεί σε μια δήλωση CREATE TABLE. Ο τύπος CURSOR μπορεί να είναι NULL.
  • DATETIME (τύπος δεδομένων SQL2003: TIMESTAMP)
    Αποθηκεύει μια τιμή ημερομηνίας και ώρας στο εύρος από 01-01-1753 00:00:00 έως 31-12-9999 23:59:59. Η αποθήκευση απαιτεί 8 byte.
  • ΔΕΚΑΔΙΚΟ (σελ. s) , ΔΕΚΕΜΒΡΙΟ (σ. s) , ΑΡΙΘΜΗΤΙΚΟ (ρ, s) ( Τύπος δεδομένων SQL2003: ΔΕΚΑΔΙΚΟ (p, s) , NUMERIC (σελ. s))
    Αποθηκεύει δεκαδικά ψηφία έως 38 ψηφία. Οι τιμές p και s καθορίζουν την ακρίβεια και την κλίμακα, αντίστοιχα. Η προεπιλεγμένη κλίμακα είναι 0. Ο χώρος που καταλαμβάνει η τιμή καθορίζεται από την ακρίβεια που χρησιμοποιείται.
    Για ακρίβεια 1-9, χρησιμοποιούνται 5 byte.
    Για ακρίβεια 10-19, χρησιμοποιούνται 9 byte.
    Με ακρίβεια 20-28, χρησιμοποιούνται 13 byte.
    Με ακρίβεια 29-39, χρησιμοποιούνται 17 byte.
    Δείτε τον τύπο INT για κανόνες ιδιότητας IDENTITY που ισχύουν επίσης για τον τύπο ΔΕΚΑΔΙΚΟΥ.
  • ΔΙΠΛΗ ΑΚΡΙΒΕΙΑ ( Τύπος δεδομένων SQL2003: λείπει)
    Συνώνυμο του όρου FLOAT(53) .
  • FLOAT[(n)] ( Τύπος δεδομένων SQL2003: FLOAT, FLOAT(n))
    Αποθηκεύει τιμές κινητής υποδιαστολής στην περιοχή -1,79E + 308 έως 1,79E + 308. Η ακρίβεια, που καθορίζεται από την παράμετρο και, μπορεί να κυμαίνεται από 1 έως 53. Για την αποθήκευση 7 ψηφίων (n - από 1 έως 24) απαιτούνται 4 byte. Τιμές μεγαλύτερες από 7 ψηφία καταλαμβάνουν 8 byte.
  • ΕΙΚΟΝΑ ( Τύπος δεδομένων SQL2003: BLOB)
    Αποθηκεύει μια δυαδική τιμή μεταβλητού μήκους έως 2.147.483.647 byte. Αυτός ο τύπος δεδομένων χρησιμοποιείται συχνά για την αποθήκευση γραφικών, ήχου και αρχείων όπως έγγραφα MS Word και υπολογιστικά φύλλα MS Excel. Οι τιμές του τύπου IMAGE δεν μπορούν να χειριστούν ελεύθερα. Οι στήλες ΕΙΚΟΝΑ και ΚΕΙΜΕΝΟ έχουν πολλούς περιορισμούς σχετικά με τον τρόπο χρήσης τους. Δείτε την περιγραφή του τύπου TEXT για μια λίστα εντολών και συναρτήσεων που ισχύουν επίσης για τον τύπο IMAGE.
  • INT (Τύπος δεδομένων SQL2003: ΑΚΕΡΑΙΟΣ)
    Αποθηκεύει υπογεγραμμένους ή ανυπόγραφους ακέραιους αριθμούς στην περιοχή -2.147.483.648 έως 2.147.483.647 Καταλαμβάνει 4 byte. Όλοι οι τύποι δεδομένων ακέραιων αριθμών, καθώς και οι τύποι που αποθηκεύουν δεκαδικά κλάσματα, υποστηρίζουν την ιδιότητα IDENTITY είναι ένα αναγνωριστικό σειράς που αυξάνεται αυτόματα. Ανατρέξτε στην ενότητα «ΔΗΜΙΟΥΡΓΙΑ/ΑΛΛΟΓΗ ΔΗΛΩΣΗΣ ΠΙΝΑΚΑ» στο Κεφάλαιο 3.
  • ΧΡΗΜΑΤΑ (Τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει τις τιμές νομισμάτων στην περιοχή -922337203685477.5808 έως 922337203685477.5807. Η τιμή παίρνει 8 byte.
  • NCHAR(n) , NATIONAL CHAR(n) , National Character(n) ( Τύπος δεδομένων SQL2003: ΕΘΝΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ(n))
    Αποθηκεύει δεδομένα UNICODE σταθερού μήκους έως 4000 χαρακτήρες. Η αποθήκευση απαιτεί n*2 byte.
  • ΚΕΙΜΕΝΟ, ΕΘΝΙΚΟ ΚΕΙΜΕΝΟ ( Τύπος δεδομένων SQL2003:NCLOB)
    Αποθηκεύει θραύσματα κειμένου σε μορφή UNICODE μήκους έως 1.073.741.823 χαρακτήρων. Δείτε την περιγραφή του τύπου TEXT για μια λίστα εντολών και συναρτήσεων που ισχύουν επίσης για τον τύπο NTEXT.
  • NUMERIC(p, s) ( Τύπος δεδομένων SQL2003: ΔΕΚΑΔΙΚΟ (p, s))
    Συνώνυμο του τύπου DECIMAL. Δείτε την περιγραφή του τύπου INT για κανόνες που σχετίζονται με την ιδιότητα IDENTITY.
  • NVARCHAR(n) , NATIONAL CHAR VARYING(n) , NATIONAL CHARACTER VARYING(n) ( Τύπος δεδομένων SQL2003: ΕΘΝΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ ΠΟΥ ΔΙΑΦΟΡΕΤΑΙ(n))
    Αποθηκεύει δεδομένα UNICODE μεταβλητού μήκους έως 4000 χαρακτήρες.
    Ο χώρος που καταλαμβάνεται υπολογίζεται ως το διπλάσιο του μήκους όλων των χαρακτήρων που έχουν εισαχθεί στο πεδίο (αριθμός χαρακτήρων * 2).
    Στον SQL Server, η επιλογή συστήματος SET ANSI_PADDINGX για τα πεδία NCHAR και NVARCHAR είναι πάντα ενεργοποιημένη.
  • REAL , FLOAT(24) ( Τύπος δεδομένων SQL2003: ΠΡΑΓΜΑΤΙΚΟ)
    Αποθηκεύει τιμές κινητής υποδιαστολής στην περιοχή -3,40E+38 έως 3,40E+38. Καταλαμβάνει 4 byte. Ο τύπος REAL είναι λειτουργικά ισοδύναμος με τον τύπο FLOAT(24).
  • ΑΝΑΒΟΛΗ ΣΥΓΚΡΟΤΗΜΑΤΟΣ ( Τύπος δεδομένων SQL2003: λείπει)
    Ένας μοναδικός αριθμός αποθηκευμένος στη βάση δεδομένων που ενημερώνεται κάθε φορά που ενημερώνεται μια σειρά, που ονομάζεται TIMESTAMP σε προηγούμενες εκδόσεις.
  • SMALLDATETIME( Τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει την ημερομηνία και την ώρα στην περιοχή από '01-01-1900 00:00' έως '06-06-2079 23:59' με ακρίβεια λεπτών. (Τα λεπτά στρογγυλοποιούνται προς τα κάτω εάν η τιμή των δευτερολέπτων είναι 29,998 ή μικρότερη, διαφορετικά στρογγυλοποιούνται προς τα πάνω.) Η τιμή καταλαμβάνει 4 byte.
  • ΜΙΚΡΟ ( Τύπος δεδομένων SQL2003: SMALLINT)
    Αποθηκεύει υπογεγραμμένους ή ανυπόγραφους ακέραιους αριθμούς στην περιοχή -32.768 έως 32.767 Καταλαμβάνει 2 byte. Δείτε την περιγραφή του τύπου INT για κανόνες που σχετίζονται με την ιδιότητα IDENTITY που ισχύουν και για αυτόν τον τύπο.
  • SMALLMONEY ( Τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει τις τιμές νομισμάτων στην περιοχή από 214748,3648 έως -214748,3647. Οι τιμές καταλαμβάνουν 4 byte.
  • SQLVARIANT( Τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει τιμές που σχετίζονται με άλλους τύπους δεδομένων που υποστηρίζονται από τον SQL Server, εξαιρουμένων των τιμών TEXT, NTEXT, ROWVERSION και άλλων τιμών SQL VARIANT. Μπορεί να αποθηκεύσει έως και 8016 byte δεδομένων, υποστηρίζονται τιμές NULL και DEFAULT. Ο τύπος SQL VARIANT χρησιμοποιείται σε στήλες, παραμέτρους, μεταβλητές και τιμές επιστροφής συναρτήσεων και αποθηκευμένων διαδικασιών.
  • ΠΙΝΑΚΑΣ ( Τύπος δεδομένων SQL2003: λείπει)
    Ένας ειδικός τύπος που αποθηκεύει το σύνολο δεδομένων που προκύπτει ως αποτέλεσμα της τελευταίας διαδικασίας. Χρησιμοποιείται αποκλειστικά για διαδικαστική επεξεργασία και δεν μπορεί να χρησιμοποιηθεί σε δηλώσεις CREATE TABLE. Αυτός ο τύπος δεδομένων μειώνει την ανάγκη δημιουργίας προσωρινών πινάκων σε πολλές εφαρμογές. Μπορεί να μειώσει την ανάγκη για εκ νέου μεταγλώττιση διαδικασιών, επιταχύνοντας έτσι την εκτέλεση των αποθηκευμένων διαδικασιών και των λειτουργιών που καθορίζονται από το χρήστη.
  • ΚΕΙΜΕΝΟ( Τύπος δεδομένων SQL2003: CLOB)
    Αποθηκεύει πολύ μεγάλα κομμάτια κειμένου μήκους έως 2.147.483.647 χαρακτήρων. Οι τιμές TECHNIC IMAGE είναι συχνά πολύ πιο δύσκολο να χειριστούν από ό,τι, για παράδειγμα, οι τιμές VARCHAR. Για παράδειγμα, δεν μπορείτε να δημιουργήσετε ένα ευρετήριο σε μια στήλη τύπου TEXT ή IMAGE. Οι τιμές ΚΕΙΜΕΝΟΥ μπορούν να τροποποιηθούν χρησιμοποιώντας τις συναρτήσεις DATALENGTH, PATINDEX, SUBSTRING, TEXTPTR και TEXTVALID, καθώς και τις εντολές READTEXT, SET TEXTSIZE, UPDATETEXT και WRITETEXT.
  • TIMESTAMP ( Τύπος δεδομένων SQL2003: TIMESTAMP)
    Αποθηκεύει έναν δυαδικό αριθμό που δημιουργείται αυτόματα, ο οποίος είναι μοναδικός στην τρέχουσα βάση δεδομένων και επομένως διαφέρει από τον τύπο δεδομένων ANSI TIMESTAMP. Ο τύπος TIMESTAMP καταλαμβάνει 8 byte. Επί του παρόντος, αντί για TIMESTAMP, είναι καλύτερο να χρησιμοποιείτε τιμές ROWVERSION για να προσδιορίζετε μοναδικά τις σειρές.
  • TINYINT
    Αποθηκεύει ανυπόγραφους ακέραιους αριθμούς στην περιοχή από 0 έως 255 και καταλαμβάνει 1 byte. Δείτε την περιγραφή του τύπου INT για κανόνες που σχετίζονται με την ιδιότητα IDENTITY που ισχύουν και για αυτόν τον τύπο.
  • ΜΟΝΑΔΙΚΟ ΑΝΑΓΝΩΡΙΣΤΙΚΟ ( Τύπος δεδομένων SQL2003: λείπει)
    Αντιπροσωπεύει μια τιμή που είναι μοναδική σε όλες τις βάσεις δεδομένων και όλους τους διακομιστές. Αντιπροσωπεύεται ως xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx, στην οποία κάθε "x" αντιπροσωπεύει έναν δεκαεξαδικό αριθμό στην περιοχή 0-9 ή a - f. Οι μόνες λειτουργίες που μπορούν να εκτελεστούν σε τιμές αυτού του τύπου είναι η σύγκριση και η δοκιμή για NULL. Οι στήλες αυτού του τύπου μπορούν να χρησιμοποιούν περιορισμούς και ιδιότητες, με εξαίρεση την ιδιότητα IDENTITY.
  • VARBINARY[(n)] ( Τύπος δεδομένων SQL2003: BLOB)
    Αντιπροσωπεύει μια δυαδική τιμή μεταβλητού μήκους, έως 8000 byte. Ο χώρος που καταλαμβάνεται είναι το μέγεθος των δεδομένων που έχουν εισαχθεί συν 4 byte.
  • VARCHARf(n)] , CHAR VARYING [(n)] , CHARACTER VARYING [(n)] ( Τύπος δεδομένων SQL2003: ΧΑΡΑΚΤΗΡΑΣ ΠΟΥ ΔΙΑΦΟΡΕΤΑΙ (n))
    Αποθηκεύει δεδομένα χαρακτήρων σταθερού μήκους που κυμαίνονται σε μέγεθος από 1 έως 8000 χαρακτήρες. Ο χώρος που καταλαμβάνεται είναι το πραγματικό μέγεθος της εισαγόμενης τιμής σε byte, όχι η τιμή n.

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

Βάση δεδομένων PostgreSQLυποστηρίζει τους περισσότερους τύπους δεδομένων SQL2003συν ένα τεράστιο σύνολο τύπων για την αποθήκευση χωρικών και γεωμετρικών δεδομένων. PostgreSQLδιαθέτει ένα πλούσιο σύνολο τελεστών και λειτουργιών ειδικά σχεδιασμένων για γεωμετρικούς τύπους δεδομένων. Αυτό περιλαμβάνει χαρακτηριστικά όπως η περιστροφή, η ανίχνευση τομών και η κλιμάκωση. ΣΕ PostgreSQLΥπάρχει επίσης υποστήριξη για πρόσθετες εκδόσεις υπαρχόντων τύπων δεδομένων, οι οποίοι τείνουν να καταλαμβάνουν λιγότερο χώρο στο δίσκο από τις αντίστοιχες αρχικές εκδόσεις. Για παράδειγμα, σε PostgreSQLΑρκετές παραλλαγές του τύπου INTEGER προσφέρονται για την αποθήκευση μεγάλων και μικρών αριθμών, που καταλαμβάνουν αντίστοιχα περισσότερο ή λιγότερο χώρο.

  • BJGSERJAL
  • BIT ( Τύπος δεδομένων SQL2003: BIT)
    Συμβολοσειρά bit σταθερού μήκους.
  • BIT VARYING(n) varbit(n) ( Τύπος δεδομένων SQL2003: BIT VARYING)
    Δηλώνει μια συμβολοσειρά bit μεταβλητού μήκους n bit.
  • ΜΠΟΥΛ, ΜΠΟΥΛ ( Τύπος δεδομένων SQL2003: BOOLEAN)
    Αποθηκεύει μια τιμή Boolean (true/false/άγνωστη). Οι προτεινόμενες τιμές είναι οι λέξεις-κλειδιά TRUE και FALSE, αν και PostgreSQLεπιτρέπει πολλαπλές κυριολεκτικές τιμές για το "true": TRUE, t, true, y, ναι και 1. Οι έγκυρες τιμές για το "false" είναι: FALSE, f, false, n, no, και 0.
  • BOX ((xl, y I), (x2, y2)) ( Τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει τιμές που ορίζουν μια ορθογώνια περιοχή σε ένα επίπεδο. Οι τιμές καταλαμβάνουν 32 byte και παρουσιάζονται με τη μορφή ((xl, yl), (x2, y2)), που αντιστοιχεί στις απέναντι γωνίες του ορθογωνίου (πάνω δεξιά και κάτω αριστερά, αντίστοιχα). Οι εξωτερικές παρενθέσεις είναι προαιρετικές.
  • BYTEA ( Τύπος δεδομένων SQL2003: ΔΥΑΔΙΚΟ ΜΕΓΑΛΟ ΑΝΤΙΚΕΙΜΕΝΟ)
    Ακατέργαστα, δυαδικά δεδομένα που χρησιμοποιούνται, για παράδειγμα, για την αποθήκευση γραφικών, ήχου και εγγράφων. Αυτός ο τύπος αποθήκευσης απαιτεί 4 byte συν το πραγματικό μέγεθος της συμβολοσειράς bit.
  • CHAR(n) , CHARA CTER(n) ( Τύπος δεδομένων SQL2003: CHARACTER(n))
    Περιέχει μια συμβολοσειρά χαρακτήρων σταθερού μήκους με κενά έως μήκους n. Η προσπάθεια εισαγωγής τιμής μεγαλύτερης από n οδηγεί σε σφάλμα (εκτός εάν οι επιπλέον χαρακτήρες είναι κενά, οπότε περικόπτονται ώστε να έχουν μήκος n χαρακτήρες).
  • CIDR(x.x.x.xZy) ( Τύπος δεδομένων SQL2003: λείπει)
    Περιγράφει μια διεύθυνση δικτύου ή κεντρικού υπολογιστή σε μορφή πρωτοκόλλου IP έκδοσης 4 Η διεύθυνση καταλαμβάνει 12 byte. Οι έγκυρες τιμές είναι τυχόν διευθύνσεις δικτύου που επιτρέπονται από το πρωτόκολλο IPv4. Στον τύπο CIDR, τα δεδομένα αντιπροσωπεύονται με τη μορφή x.x.x.x/y, όπου x.x.x.x είναι η διεύθυνση IP και y είναι ο αριθμός των bit της μάσκας δικτύου. Το CIDR δεν επιτρέπει μη μηδενικά bit στα δεξιά του μηδενικού bit της μάσκας δικτύου.
  • CIRCLE x, y, r (τύπος δεδομένων SQL2003: λείπει)
    Περιγράφει έναν κύκλο σε ένα επίπεδο. Οι τιμές καταλαμβάνουν!» 24 byte και παρουσιάζονται με τη μορφή x, y, r. Οι τιμές * και y αντιπροσωπεύουν τις συντεταγμένες του κέντρου του κύκλου και r είναι το μήκος της ακτίνας του. Οι τιμές για τα x, y και r μπορούν να οριοθετηθούν με παρενθέσεις ή σγουρές αγκύλες, εάν το επιθυμείτε.
  • DATE (τύπος δεδομένων SQL2003: DATE)
    Αποθηκεύει μια ημερολογιακή ημερομηνία (έτος, ημέρα και μήνα) χωρίς ώρα της ημέρας. Καταλαμβάνει 4 byte. Οι ημερομηνίες πρέπει να είναι της τάξης του 4713 π.Χ. έως 32767 και. μι. Το όριο ανάλυσης για τον τύπο DATE είναι, φυσικά, μία ημέρα.
  • DATETIME (τύπος δεδομένων SQL2003: T1MESTAMP)
    Αποθηκεύει μια ημερολογιακή ημερομηνία που υποδεικνύει την ώρα της ημέρας.
  • ΔΕΚΑΔΙΚΟ [(p, s)], NUMERIC [(p. s)] (τύπος δεδομένων SQL2003: ΔΕΚΑΔΙΚΟΣ (ΚΛΙΜΑΚΑ ΑΚΡΙΒΕΙΑΣ), ΑΡΙΘΜΗΣ (x, p))
    Αποθηκεύει ακριβείς αριθμητικές τιμές με ακρίβεια (p) 9 και κλίμακα (s) μηδέν, χωρίς ανώτατο όριο.
  • FLOAT4, REAL (τύπος δεδομένων SQL2003: FLOAT(p))
    Αποθηκεύει τιμές κινητής υποδιαστολής με ακρίβεια 8 ή μικρότερη και 6 δεκαδικά ψηφία.
  • FLOAT8, DOUBLE PRECISION (τύπος δεδομένων SQL2003: FLOAT(p), 7
  • INET (x.x.x.x/y)
    Αποθηκεύει μια διεύθυνση δικτύου ή κεντρικού υπολογιστή σε μορφή πρωτοκόλλου IP έκδοσης 4. Η διεύθυνση παίρνει 12 byte. Έγκυρες τιμές είναι τυχόν διευθύνσεις δικτύου που επιτρέπονται από το πρωτόκολλο IPv4, x.x.x.x είναι η διεύθυνση IP, y είναι ο αριθμός των bit μάσκας δικτύου. Η προεπιλεγμένη μάσκα δικτύου είναι 32. Σε αντίθεση με το CIDR, το INET επιτρέπει μη μηδενικά bits στα δεξιά της μάσκας δικτύου.
  • SMALLINT (τύπος δεδομένων SQL2003: SMALLINT)
    Αποθηκεύει υπογεγραμμένους και ανυπόγραφους ακέραιους αριθμούς δύο byte στην περιοχή -32.768 έως 32.767 Συνώνυμο: INT72.
  • INTEGER (τύπος δεδομένων SQL2003: INTEGER)
    Αποθηκεύει υπογεγραμμένους ή ανυπόγραφους ακέραιους αριθμούς 4 byte στην περιοχή -2.147.483.648 έως 2.147.483.647 Συνώνυμο: 1NT4.
  • INT8 (τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει υπογεγραμμένους ή ανυπόγραφους ακέραιους αριθμούς 8 byte στην περιοχή -9,223,372,036,854,775,808 έως 9,223,372,036,854,775,807.
  • INTERVAL(p) (τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει τις συνήθως χρησιμοποιούμενες τιμές χρονικού διαστήματος στην περιοχή -178.000.000 έως 178.000.000 χρόνια. Καταλαμβάνει 12 byte. Η χαμηλότερη ανάλυση του τύπου INTERVAL είναι μικροδευτερόλεπτο. Αυτός ο τύπος αποθήκευσης ημερομηνίας διαφέρει από το πρότυπο ANSI, το οποίο απαιτεί έναν προσδιοριστή διαστήματος, όπως INTERVAL YEAR TO MONTH.
  • LINE ((xl, y I), (x2, y2)) (τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει πληροφορίες σχετικά με μια ευθεία γραμμή σε ένα επίπεδο, χωρίς τελικά σημεία. Οι τιμές καταλαμβάνουν 32 byte και αντιπροσωπεύονται με τη μορφή ((xl, yl), (x2, y2)), η οποία υποδεικνύει το σημείο έναρξης και λήξης της γραμμής. Οι παρενθέσεις στη σύνταξη τύπου LINE είναι προαιρετικές.
  • LSEG ((xl, yl), (x2, y2)) (τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει ένα τμήμα γραμμής (LSEG) σε ένα επίπεδο, με τελικά σημεία. Οι τιμές καταλαμβάνουν 32 byte και αντιπροσωπεύονται με τη μορφή ((xl, yl), (x2, y2)). Οι παρενθέσεις στη σύνταξη τύπου LSEG είναι προαιρετικές. Για όσους ενδιαφέρονται, ένα "τμήμα" είναι αυτό που οι περισσότεροι άνθρωποι αποκαλούν συνήθως μια γραμμή. Για παράδειγμα, οι γραμμές στον αγωνιστικό χώρο είναι στην πραγματικότητα τμήματα.
  • MACADDR (τύπος δεδομένων SQL2003: λείπει)
    Μπορεί να αποθηκεύσει την τιμή της διεύθυνσης MAC της κάρτας δικτύου του υπολογιστή. Καταλαμβάνει 6 byte.
    Ο τύπος MACADDR επιτρέπει διάφορες μορφές διεύθυνσης που αντιστοιχούν σε βιομηχανική
    πρότυπα, για παράδειγμα:
    08002В:010203
    08002В-010203
    0800.2В01.0203
    08-00-2В-01-02-03
    08:00:2B:01:02:03
  • MONEY, DECIMAL(9,2) (τύπος δεδομένων SQL2003: κανένα)
    Αποθηκεύει τις τιμές νομισμάτων σε μορφή ΗΠΑ στην περιοχή -21474836,48 έως 21474836,47.
  • NUMERIC [(p, s)], DECIMAL[(p, s)] (τύπος δεδομένων SQL2003: κανένας)
    Αποθηκεύει ακριβή αριθμητικά δεδομένα με ακρίβεια (p) και κλίμακα (s).
  • OID (τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει μοναδικά αναγνωριστικά αντικειμένων.
  • PATH ((xl, y), ... n), Διαδρομή ((xl, yl), ... n) (τύπος δεδομένων SQL2003: λείπει)
    Περιγράφει ένα ανοιχτό ή κλειστό γεωμετρικό περίγραμμα σε ένα επίπεδο. Οι τιμές παρουσιάζονται με τη μορφή ((xl, yl), ... n) και καταλαμβάνουν 4 + 32 byte. Κάθε ζεύγος τιμών (x, y) αντιστοιχεί σε ένα σημείο περιγράμματος. Τα περιγράμματα είναι είτε ανοιχτά, όταν το πρώτο και το τελευταίο σημείο δεν συμπίπτουν, είτε κλειστά, όταν το πρώτο και το τελευταίο σημείο είναι το ίδιο. Για να υποδείξετε κλειστά περιγράμματα, η έκφραση περικλείεται σε παρένθεση και για να υποδείξει ανοιχτά περιγράμματα, περικλείεται σε αγκύλες.
  • POINT(x,y) (τύπος δεδομένων SQL2003: κανένα)
    Αποθηκεύει μια τιμή που περιγράφει ένα γεωμετρικό σημείο σε ένα επίπεδο. Καταλαμβάνει 16 byte. Οι τιμές παρουσιάζονται ως (x, y). Το Point είναι η βάση άλλων δισδιάστατων τύπων χωρικών δεδομένων που υποστηρίζονται στο PostgreSQL. Οι παρενθέσεις σε αυτόν τον τύπο σύνταξης είναι προαιρετικές.
  • POLYGONE ((x1,y1), ... n) (τύπος δεδομένων SQL2003: κανένας)
    Αποθηκεύει μια τιμή που περιγράφει ένα κλειστό γεωμετρικό περίγραμμα σε ένα επίπεδο. Καταλαμβάνει 4 + 32n byte. Οι τιμές παρουσιάζονται με τη μορφή ((xl, yl), ... n). Ο τύπος POLYGONE είναι ουσιαστικά ισοδύναμος με τον τύπο που χρησιμοποιείται για την αποθήκευση μιας κλειστής διαδρομής.
  • SERIAL, SER1AL4 (τύπος δεδομένων SQL2003: κανένας)
    Αποθηκεύει μια αυτόματα αυξανόμενη, μοναδική τιμή αναγνωριστικού ακέραιου αριθμού που χρησιμοποιείται για ευρετηρίαση και διασταύρωση. Αυτός ο τύπος αποθηκεύει έως και 4 byte δεδομένων (εύρος αριθμού 1 έως 2.147.483.647). Οι πίνακες που ορίζονται με αυτόν τον τύπο δεδομένων δεν μπορούν να διαγραφούν απευθείας. Πρώτα πρέπει να εκδώσετε την εντολή DROP SEQUENCE και μόνο μετά από αυτήν την εντολή DROP TABLE.
  • SER1AL8, BIGSERIAL (τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει μια αυτόματα αυξανόμενη, μοναδική τιμή αναγνωριστικού ακέραιου αριθμού που χρησιμοποιείται για ευρετηρίαση και διασταύρωση. Αυτός ο τύπος αποθηκεύει έως και 8 byte δεδομένων (εύρος αριθμού από 1 έως 9.223.372.036.854.775.807). Οι πίνακες που ορίζονται με αυτόν τον τύπο δεδομένων δεν μπορούν να διαγραφούν απευθείας. Πρώτα πρέπει να εκδώσετε την εντολή DROP SEQUENCE και μόνο μετά από αυτήν την εντολή DROP TABLE.
  • TEXT (τύπος δεδομένων SQL2003: CLOB)
    Αποθηκεύει μια μεγάλη σειρά από συμβολοσειρές χαρακτήρων μεταβλητού μήκους έως 1 gigabyte. PostgreSQLσυμπιέζει αυτόματα τις συμβολοσειρές TEXT, έτσι ο χώρος στο δίσκο μπορεί να είναι μικρότερος από το μέγεθος των συμβολοσειρών.
  • TIME [(p)] (τύπος δεδομένων SQL2003: TIME) Αποθηκεύει την ώρα της ημέρας είτε χωρίς ζώνη ώρας (χρησιμοποιεί 8 byte) είτε με τη ζώνη ώρας στην οποία βρίσκεται ο διακομιστής της βάσης δεδομένων (χρησιμοποιεί 12 byte). Έγκυρο εύρος τιμών: 00:00:00.00 - 23:59:59.99. Η μικρότερη τιμή είναι 1 μικροδευτερόλεπτο. Σημειώστε ότι στα περισσότερα συστήματα UNIX, οι πληροφορίες ζώνης ώρας είναι διαθέσιμες μόνο για ημερομηνίες από το 1902 έως το 2038.
  • TIMESPAN (τύπος δεδομένων SQL2003: λείπει)
    Αποθηκεύει μια τιμή που αντιπροσωπεύει μια συγκεκριμένη χρονική περίοδο. Ο πιο παρόμοιος τύπος με το TIMESPAN στο πρότυπο ANSI είναι ο τύπος INTERVAL.
  • TIMESTAMP [(p)] ( Τύπος δεδομένων SQL2003: TIMESTAMP)
    Αποθηκευμένη ημερομηνία και ώρα με και χωρίς τη ζώνη ώρας του διακομιστή βάσης δεδομένων. Το αποδεκτό εύρος τιμών είναι από το 4713 π.Χ. μι. έως N1.465.001 μι. Μία τιμή TIMESTAMP παίρνει 8 byte. Η μικρότερη τιμή είναι 1 μικροδευτερόλεπτο. Σημειώστε ότι στα περισσότερα συστήματα UNIX, οι πληροφορίες ζώνης ώρας είναι διαθέσιμες μόνο για ημερομηνίες από το 1902 έως το 2038.
  • TIMETZ ( Τύπος δεδομένων SQL2003: TIME WITH TIMEZONE)
    Αποθηκεύει την τιμή της ώρας της ημέρας, λαμβάνοντας υπόψη τη ζώνη ώρας.
  • VARCHAR(n) , ΧΑΡΑΚΤΗΡΑΣ VARYLNG(n) ( Τύπος δεδομένων SQL2003: ΧΑΡΑΚΤΗΡΑΣ ΠΟΙΚΙΛΕΙ(n))
    Αποθηκεύει συμβολοσειρές χαρακτήρων μεταβλητού μήκους έως n Τα κενά μετάδοσης δεν αποθηκεύονται.