Τύποι δεδομένων SQL Server με παραδείγματα

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

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

Πώς να χρησιμοποιήσετε τον τύπο δεδομένων MS SQL

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

Γιατί να χρησιμοποιήσετε DataTypes;

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

Εδώ πρέπει να σημειώσουμε ότι σε πραγματικό χρόνο:

  • «Όνομα/Επώνυμο» θα είναι πάντα αλφαβητικός.
  • "Επικοινωνία" θα είναι πάντα αριθμητικός.
Τύποι δεδομένων SQL Server
Παράδειγμα τύπων δεδομένων σε MS SQL
  • Από την παραπάνω εικόνα αξίζει να τον ορίσουμε «Όνομα/Επώνυμο» ως χαρακτήρας και "Επικοινωνία" ως ακέραιος αριθμός.

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

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

Τύπος δεδομένων διαθέσιμος στον MS SQL Server

Ακολουθεί η λίστα τύπων δεδομένων διακομιστή MS SQL:

Διακομιστής MS SQL υποστηρίζει τις ακόλουθες κατηγορίες τύπων δεδομένων:

  • Ακριβές αριθμητικό
  • Αριθμητικό κατά προσέγγιση
  • Ημερομηνία και ώρα
  • Χορδές χαρακτήρων
  • Συμβολοσειρές χαρακτήρων Unicode
  • Δυαδικές χορδές
  • Άλλοι τύποι δεδομένων
Τύπος δεδομένων διαθέσιμος στον MS SQL Server

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

Ακριβείς αριθμητικοί τύποι δεδομένων σε 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 διαθέσιμοι τύποι και μεγέθη δεδομένων.