Τύποι δεδομένων SQL Server με παραδείγματα
Τι είναι ο τύπος δεδομένων;
A Τύπος δεδομένων στον διακομιστή SQL ορίζεται ως ο τύπος δεδομένων που μπορεί να αποθηκεύσει οποιαδήποτε στήλη ή μεταβλητή. Είναι ένας τύπος δεδομένων που διατηρεί ένα αντικείμενο όπως ακέραιος, χαρακτήρας, συμβολοσειρά κ.λπ. Κατά τη δημιουργία οποιουδήποτε πίνακα ή μεταβλητής, εκτός από τον καθορισμό του ονόματος, ορίζετε επίσης τον Τύπο των δεδομένων που θα αποθηκεύσει.
Πώς να χρησιμοποιήσετε τον τύπο δεδομένων MS SQL
- Πρέπει να ορίσετε εκ των προτέρων τον τύπο δεδομένων που μπορεί να αποθηκεύσει μια στήλη ή μια μεταβλητή. Ο προσδιορισμός του τύπου δεδομένων περιορίζει επίσης τον χρήστη από την εισαγωγή τυχόν απροσδόκητων ή μη έγκυρων δεδομένων.
- Μπορείτε να κάνετε αποτελεσματική χρήση της μνήμης εκχωρώντας έναν κατάλληλο τύπο δεδομένων σε μεταβλητή ή στήλη που θα εκχωρεί μόνο την απαιτούμενη ποσότητα μνήμης συστήματος για τα δεδομένα της αντίστοιχης στήλης.
- Το MS SQL προσφέρει μια ευρεία κατηγορία βασικών τύπων δεδομένων στην SQL σύμφωνα με τις ανάγκες του χρήστη όπως Ημερομηνία, δυαδικές εικόνες κ.λπ.
Γιατί να χρησιμοποιήσετε DataTypes;
Ας πάρουμε ένα δείγμα απλού Σελίδα εγγραφής της εφαρμογής ιστότοπου.Τρία πεδία εισαγωγής είναι Όνομα, Επώνυμο & Αριθμός Επικοινωνίας.
Εδώ πρέπει να σημειώσουμε ότι σε πραγματικό χρόνο:
- «Όνομα/Επώνυμο» θα είναι πάντα αλφαβητικός.
- "Επικοινωνία" θα είναι πάντα αριθμητικός.
- Από την παραπάνω εικόνα αξίζει να τον ορίσουμε «Όνομα/Επώνυμο» ως χαρακτήρας και "Επικοινωνία" ως ακέραιος αριθμός.
Είναι προφανές ότι σε οποιαδήποτε εφαρμογή, όλα τα πεδία έχουν τον ένα ή τον άλλο τύπο δεδομένων. Π.χ., αριθμητική, αλφαβητική, ημερομηνία και πολλά άλλα.
Επίσης, σημειώστε ότι διαφορετικοί τύποι δεδομένων έχουν διαφορετικές απαιτήσεις μνήμης. Επομένως, είναι πιο λογικό να ορίσουμε τη στήλη ή μεταβλητή με τον τύπο δεδομένων που θα κρατήσει για αποτελεσματική χρήση της μνήμης.
Τύπος δεδομένων διαθέσιμος στον MS SQL Server
Ακολουθεί η λίστα τύπων δεδομένων διακομιστή MS SQL:
Διακομιστής MS SQL υποστηρίζει τις ακόλουθες κατηγορίες τύπων δεδομένων:
- Ακριβές αριθμητικό
- Αριθμητικό κατά προσέγγιση
- Ημερομηνία και ώρα
- Χορδές χαρακτήρων
- Συμβολοσειρές χαρακτήρων Unicode
- Δυαδικές χορδές
- Άλλοι τύποι δεδομένων
Ακριβείς αριθμητικοί τύποι δεδομένων σε SQL
Το ακριβές αριθμητικό έχει εννέα τύπους δευτερευόντων τύπων δεδομένων στον διακομιστή SQL.
Ακριβείς αριθμητικοί τύποι δεδομένων
Τύπος δεδομένων | Τεχνικές Περιγραφές | Κατώτερο όριο | Ανώτερο όριο | Μνήμη |
---|---|---|---|---|
bigint | Αποθηκεύει ακέραιους αριθμούς στο εύρος που δίνεται | −2^63 (−9,223,372, 036,854,775,808) | 2^63−1 (−9,223,372, 036,854,775,807) | 8 bytes |
int | Αποθηκεύει ακέραιους αριθμούς στο εύρος που δίνεται | −2^31 (−2,147, 483,648) | 2^31−1 (−2,147, 483,647) | 4 bytes |
ψιλόλιθος | Αποθηκεύει ακέραιους αριθμούς στο εύρος που δίνεται | −2^15 (−32,767) | 2^15 (−32,768) | 2 bytes |
μικροσκοπικός | Αποθηκεύει ακέραιους αριθμούς στο εύρος που δίνεται | 0 | 255 | 1 byte |
κομμάτι | Μπορεί να πάρει τιμές 0, 1 ή NULL. | 0 | 1 | Στήλη 1 byte/8bit |
δεκαδικός | Χρησιμοποιείται για κλίμακα και σταθερούς αριθμούς ακριβείας | −10^38+1 | 10^381−1 | 5 έως 17 byte |
αριθμητικός | Χρησιμοποιείται για κλίμακα και σταθερούς αριθμούς ακριβείας | −10^38+1 | 10^381−1 | 5 έως 17 byte |
χρήματα | Χρησιμοποιημένα νομισματικά δεδομένα | -922,337, 203, 685,477.5808 | +922,337, 203, 685,477.5807 | 8 bytes |
μικρά χρήματα | Χρησιμοποιημένα νομισματικά δεδομένα | -214,478.3648 | + 214,478.3647 | 4 bytes |
Ακριβείς αριθμητικοί τύποι δεδομένων σε Διακομιστής SQL με Παραδείγματα:
Ερώτηση:
DECLARE @Datatype_Int INT = 2 PRINT @Datatype_Int
Παραγωγή
2
Σύνταξη
Δεκαδικό (P,S)
Εδώ,
- Το P είναι η ακρίβεια
- Το S είναι κλίμακα
Ερώτηση:
DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31 PRINT @Datatype_Decimal
Παραγωγή
2.31
Κατά προσέγγιση τύποι αριθμητικών δεδομένων σε SQL
SQL Η κατά προσέγγιση Αριθμητική κατηγορία περιλαμβάνει τιμές κινητής υποδιαστολής και πραγματικές τιμές. Αυτοί οι τύποι δεδομένων στην SQL χρησιμοποιούνται κυρίως σε επιστημονικούς υπολογισμούς.
Κατά προσέγγιση τύπος αριθμητικών δεδομένων
Τύπος δεδομένων | Τεχνικές Περιγραφές | Κατώτερο όριο | Ανώτερο όριο | Μνήμη | Ακρίβεια |
---|---|---|---|---|---|
float(n) | Χρησιμοποιείται για κυμαινόμενο αριθμό ακριβείας | −1.79E+308 | 1.79 308 + | Εξαρτάται από την τιμή του n | 7 Digit |
πραγματικός | Χρησιμοποιείται για κυμαινόμενο αριθμό ακριβείας | −3.40E+38 | 3.40 38 + | 4 bytes | 15 Digit |
Syntax: FLOAT [(n)]
Εδώ, n είναι ο αριθμός των bit που χρησιμοποιούνται για την αποθήκευση της μάντισσας του φλοτέρ αριθμός σε επιστημονική σημείωση. Από προεπιλογή, η τιμή του n είναι 53.
Όταν ο χρήστης ορίζει έναν τύπο δεδομένων όπως το float, n θα πρέπει να είναι μια τιμή μεταξύ 1 και 53.
Περιποιήσεις SQL Server n ως μία από τις δύο πιθανές τιμές. Αν 1<=n<=24, το n αντιμετωπίζεται ως 24. Αν 25<=n<=53, το n αντιμετωπίζεται ως 53.
Παράδειγμα ερωτήματος:
DECLARE @Datatype_Float FLOAT(24) = 22.1234 PRINT @Datatype_Float
Παραγωγή
22.1234
Ημερομηνία και ώρα Τύποι δεδομένων σε SQL
Αποθηκεύει δεδομένα τύπου Ημερομηνία και ώρα.
Ημερομηνία και ώρα Τύπος δεδομένων
Τύπος δεδομένων | Τεχνικές Περιγραφές | Μέγεθος αποθήκευσης | Ακρίβεια | Κάτω Εύρος | Άνω Εύρος |
---|---|---|---|---|---|
Ημερομηνία ώρα | Χρησιμοποιείται για τον καθορισμό ημερομηνίας και ώρας από την 1η Ιανουαρίου 1753 έως τις 31 Δεκεμβρίου 9999. Έχει ακρίβεια 3.33 χιλιοστά του δευτερολέπτου. | 8 bytes | Στρογγυλοποιημένο σε προσαυξήσεις των 000, ,003, ,007 | 1753-01-01 | 9999-12-31 |
smalldatetime | Χρησιμοποιείται για τον καθορισμό ημερομηνίας και ώρας από την 1η Ιανουαρίου 0001 έως την 31η Δεκεμβρίου 9999. Έχει ακρίβεια 100 νανοδευτερόλεπτα | 4 byte, διορθωμένα | 1 λεπτά | 1900-01-01 | 2079-06-06 |
Ραντεβού | Χρησιμοποιείται για αποθήκευση μόνο ημερομηνίας από 1 Ιανουαρίου 0001 έως 31 Δεκεμβρίου 9999 | 3 byte, διορθωμένα | 1 ημέρες | 0001-01-01 | 9999-12-31 |
ώρα | Χρησιμοποιείται για την αποθήκευση μόνο χρονικών τιμών με ακρίβεια 100 νανοδευτερόλεπτων. | 5 bytes | 100 νανοδευτερόλεπτα | 00:00:00.0000000 | 23:59:59.9999999 |
μετατόπιση ημερομηνίας | Παρόμοιο με τον χρόνο δεδομένων αλλά έχει μετατόπιση ζώνης ώρας | 10 bytes | 100 νανοδευτερόλεπτα | 0001-01-01 | 9999-12-31 |
ώρα χρόνου2 | Χρησιμοποιείται για τον καθορισμό ημερομηνίας και ώρας από την 1η Ιανουαρίου 0001 έως την 31η Δεκεμβρίου 9999 | 6 bytes | 100 νανοδευτερόλεπτα | 0001-01-01 | 9999-12-31 |
Παράδειγμα ερωτήματος:
DECLARE @Datatype_Date DATE = '2030-01-01' PRINT @Datatype_Date
Παραγωγή
'2030-01-01'
Τύποι δεδομένων συμβολοσειρών χαρακτήρων σε SQL
Αυτή η κατηγορία σχετίζεται με έναν τύπο χαρακτήρα. Επιτρέπει στον χρήστη να ορίσει τον τύπο δεδομένων του χαρακτήρα που μπορεί να είναι σταθερού και μεταβλητού μήκους. Έχει τέσσερα είδη τύπων δεδομένων. Ακολουθούν οι τύποι δεδομένων διακομιστή SQL συμβολοσειράς χαρακτήρων με παραδείγματα.
Τύποι δεδομένων συμβολοσειρών χαρακτήρων
Τύπος δεδομένων | Τεχνικές Περιγραφές | Κατώτερο όριο | Ανώτερο όριο | Μνήμη |
---|---|---|---|---|
δεξαμενή | Είναι μια συμβολοσειρά χαρακτήρων με σταθερό πλάτος. Αποθηκεύει το πολύ 8,000 χαρακτήρες. | 0 χαρακτήρες | 8000 χαρακτήρες | n byte |
βαρτσάρ | Αυτή είναι μια συμβολοσειρά χαρακτήρων με μεταβλητό πλάτος | 0 χαρακτήρες | 8000 χαρακτήρες | n byte + 2 byte |
varchar (μέγιστο) | Αυτή είναι μια συμβολοσειρά χαρακτήρων με μεταβλητό πλάτος. Αποθηκεύει έως και 1,073,741,824 χαρακτήρες. | 0 χαρακτήρες | 2^31 χαρακτήρες | n byte + 2 byte |
κείμενο | Αυτή είναι μια συμβολοσειρά χαρακτήρων με μεταβλητό πλάτος. Αποθηκεύει έως 2 GB δεδομένων κειμένου. | 0 χαρακτήρες | 2,147,483,647 χαρακτήρες | n byte + 4 byte |
Παράδειγμα ερωτήματος:
DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype' PRINT @Datatype_Char
Παραγωγή
Αυτός είναι ο τύπος δεδομένων χαρακτήρων
Τύποι δεδομένων συμβολοσειρών χαρακτήρων Unicode σε SQL
Αυτή η κατηγορία αποθηκεύει το πλήρες φάσμα των χαρακτήρων Unicode που χρησιμοποιεί την κωδικοποίηση χαρακτήρων UTF-16.
Τύποι δεδομένων συμβολοσειράς χαρακτήρων Unicode
Τύπος δεδομένων | Τεχνικές Περιγραφές | Κατώτερο όριο | Ανώτερο όριο | Μνήμη |
---|---|---|---|---|
nchar | Είναι μια συμβολοσειρά Unicode σταθερού πλάτους | 0 χαρακτήρες | 4000 χαρακτήρες | 2 φορές n byte |
nvarchar | Είναι μια συμβολοσειρά unicode μεταβλητού πλάτους | 0 χαρακτήρες | 4000 χαρακτήρες | 2 φορές n byte + 2 byte |
ntext | Είναι μια συμβολοσειρά unicode μεταβλητού πλάτους | 0 χαρακτήρες | 1,073,741,823 χαρακ | 2 φορές το μήκος της χορδής |
Παράδειγμα ερωτήματος:
DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype' PRINT @Datatype_nChar
Παραγωγή
Αυτός είναι nCharacter Datatype
Τύποι δεδομένων δυαδικών συμβολοσειρών σε SQL
Αυτή η κατηγορία περιέχει μια δυαδική συμβολοσειρά σταθερού και μεταβλητού μήκους.
Τύποι δεδομένων δυαδικής συμβολοσειράς
Τύπος δεδομένων | Τεχνικές Περιγραφές | Κατώτερο όριο | Ανώτερο όριο | Μνήμη |
---|---|---|---|---|
δυαδικό | Είναι μια δυαδική συμβολοσειρά σταθερού πλάτους. Αποθηκεύει το πολύ 8,000 byte. | 0 bytes | 8000 bytes | n byte |
βαρβινικός | Αυτή είναι μια δυαδική συμβολοσειρά μεταβλητού πλάτους. Αποθηκεύει το πολύ 8,000 byte | 0 bytes | 8000 bytes | Το πραγματικό μήκος των δεδομένων που εισάγονται + 2 byte |
εικόνα | Αυτή είναι μια δυαδική συμβολοσειρά μεταβλητού πλάτους. Αποθηκεύει το πολύ 2 GB. | 0 bytes | 2,147,483,647 bytes |
Παράδειγμα ερωτήματος:
DECLARE @Datatype_Binary BINARY(2) = 12; PRINT @Datatype_Binary
Παραγωγή
0x000C
Άλλοι τύποι δεδομένων σε SQL
Αυτοί είναι άλλοι διαφορετικοί τύποι δεδομένων διακομιστή SQL με την παρακάτω περιγραφή-
Τύπος δεδομένων | Τεχνικές Περιγραφές |
---|---|
Δρομέας | Η έξοδος του είναι μια στήλη από sp_cursor_list και sp_describe_cursor. Επιστρέφει το όνομα της μεταβλητής του δρομέα. |
Έκδοση σειράς | Η έκδοση σφραγίζει σειρές πίνακα. |
Ιεραρχία | Αυτός ο τύπος δεδομένων αντιπροσωπεύει μια θέση στην ιεραρχία |
Μοναδικό αναγνωριστικό | Μετατροπή από έκφραση χαρακτήρα. |
Sql_variant | Αποθηκεύει τις τιμές των τύπων δεδομένων που υποστηρίζονται από διακομιστή SQL. |
XML | Αποθηκεύει δεδομένα XML σε μια στήλη. |
Τύπος Χωρικής Γεωμετρίας | Αντιπροσωπεύει δεδομένα σε ένα επίπεδο σύστημα συντεταγμένων. |
Τύπος Χωρικής Γεωγραφίας | Αντιπροσωπεύει δεδομένα στο σύστημα συντεταγμένων γύρω από τη γη. |
τραπέζι | Αποθηκεύει ένα σύνολο αποτελεσμάτων για μεταγενέστερη επεξεργασία. |
Ενδιαφέροντα γεγονότα!
- Τύπος δεδομένων CHAR είναι ταχύτερο από τον τύπο δεδομένων SQL VARCHAR κατά την ανάκτηση δεδομένων.
Περίληψη
- Κάθε στήλη σε πίνακες ορίζει με τον τύπο δεδομένων της κατά τη δημιουργία πίνακα.
- Υπάρχουν έξι κύριες κατηγορίες και μία άλλη διάφορη κατηγορία. Άλλα διάφορα έχουν εννέα υποκατηγορίες του Διακομιστής SQL διαθέσιμοι τύποι και μεγέθη δεδομένων.