Τύποι δεδομένων διακομιστή SQL: Varchar, Numeric, Date Time (T-SQL Παραδείγματα)

Πίνακας περιεχομένων:

Anonim

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

Ο τύπος δεδομένων ορίζεται ως ο τύπος δεδομένων που μπορεί να αποθηκεύσει οποιαδήποτε στήλη ή μεταβλητή στον MS SQL Server.

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

Τρόπος χρήσης του τύπου δεδομένων MS SQL

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

Σε αυτό το σεμινάριο, θα μάθετε:

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

Γιατί να χρησιμοποιήσετε τους τύπους δεδομένων;

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

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

  • Το "Όνομα / Επώνυμο" θα είναι πάντα αλφαβητικό .
  • Η "επαφή" θα είναι πάντα αριθμητική .

  • Από την παραπάνω εικόνα αξίζει να ορίσετε "Όνομα / Επώνυμο" ως χαρακτήρα και " Επικοινωνία" ως ακέραιο .

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

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

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

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

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

Ακριβής αριθμητικός

Ο ακριβής αριθμητικός έχει εννέα τύπους τύπων υπο-δεδομένων. Ακριβείς τύποι αριθμητικών δεδομένων

Τύπος δεδομένων Περιγραφή Κατώτερο όριο Ανώτερο όριο Μνήμη
bigint Αποθηκεύει ολόκληρους αριθμούς στη δεδομένη περιοχή −2 63 (,29.223.372, 036.854.775.808) 2 63−1 (,29.223.372, 036.854.775.807) 8 byte
int Αποθηκεύει ολόκληρους αριθμούς στη δεδομένη περιοχή −2 31 (−2.147, 483.648) 2 31−1 (−2.147, 483.647) 4 byte
μικρός Αποθηκεύει ολόκληρους αριθμούς στη δεδομένη περιοχή −2 15 (−32.767) 2 15 (−32.768) 2 byte
μικροσκοπικό Αποθηκεύει ολόκληρους αριθμούς στη δεδομένη περιοχή 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
χρήματα Χρησιμοποιημένα νομισματικά δεδομένα 22922.337, 203, 685.477.5808 +922.337, 203, 685.477.5807 8 byte
μικρά χρήματα Χρησιμοποιημένα νομισματικά δεδομένα 14214,478,3648 +214.478.3647 4 byte

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

Ερώτηση:

DECLARE @Datatype_Int INT = 2PRINT @Datatype_Int

Έξοδος: 2

Σύνταξη: Δεκαδικό (P, S)

Εδώ,

  • Το P είναι ακρίβεια
  • Το S είναι κλίμακα

Ερώτηση:

DECLARE @Datatype_Decimal DECIMAL (3,2) = 2.31PRINT @Datatype_Decimal

Έξοδος: 2.31

Αριθμητικός κατά προσέγγιση

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

Τύπος δεδομένων Περιγραφή Κατώτερο όριο Ανώτερο όριο Μνήμη Ακρίβεια
επιπλέουν (ν) Χρησιμοποιείται για κυμαινόμενο αριθμό ακρίβειας −1.79E + 308 1.79E + 308 Εξαρτάται από την τιμή του n 7 ψηφία
πραγματικός Χρησιμοποιείται για κυμαινόμενο αριθμό ακρίβειας −3.40E + 38 3.40Ε + 38 4 byte 15 ψηφία
Syntax: FLOAT [(n)] 

Εδώ, n είναι ο αριθμός των bit που χρησιμοποιούνται για την αποθήκευση της μάντισσας του αριθμού float σε επιστημονική σημειογραφία. Από προεπιλογή, η τιμή του 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.1234PRINT @Datatype_Float

Έξοδος: 22.1234

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

Αποθηκεύει δεδομένα τύπου Ημερομηνία και ώρα. Τύπος δεδομένων ημερομηνίας και ώρας

Τύπος δεδομένων Περιγραφή Μέγεθος αποθήκευσης Ακρίβεια Κάτω εύρος Άνω εμβέλεια
Ημερομηνία ώρα Χρησιμοποιείται για τον καθορισμό ημερομηνίας και ώρας από την 1η Ιανουαρίου 1753 έως τις 31 Δεκεμβρίου 9999. Έχει ακρίβεια 3,33 χιλιοστά του δευτερολέπτου. 8 byte Στρογγυλοποιήθηκε σε προσαυξήσεις των .000, .003, .007 1753-01-01 9999-12-31
μικρή ώρα Χρησιμοποιήθηκε για τον καθορισμό ημερομηνίας και ώρας από 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 byte 100 νανοδευτερόλεπτα 00: 00: 00.0000000 23: 59: 59,9999999
χρονοδιάγραμμα Παρόμοια με την ώρα δεδομένων αλλά έχει μετατόπιση ζώνης ώρας 10 byte 100 νανοδευτερόλεπτα 0001-01-01 9999-12-31
ώρα χρόνου2 Χρησιμοποιήθηκε για τον καθορισμό ημερομηνίας και ώρας από 1 Ιανουαρίου 0001 έως 31 Δεκεμβρίου 9999 6 byte 100 νανοδευτερόλεπτα 0001-01-01 9999-12-31

Παράδειγμα ερωτήματος:

DECLARE @Datatype_Date DATE = '2030-01-01'PRINT @Datatype_Date

Έξοδος: "2030-01-01"

Συμβολοσειρές χαρακτήρων

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

Τύπος δεδομένων Περιγραφή Κατώτερο όριο Ανώτερο όριο Μνήμη
απανθρακώνω Είναι μια συμβολοσειρά χαρακτήρων με σταθερό πλάτος. Αποθηκεύει έως και 8.000 χαρακτήρες. 0 χαρακτήρες 8000 χαρακτήρες n bytes
βαρτσάρ Αυτή είναι μια συμβολοσειρά χαρακτήρων με μεταβλητό πλάτος 0 χαρακτήρες 8000 χαρακτήρες n bytes + 2 byte
varchar (μέγ.) Αυτή είναι μια συμβολοσειρά χαρακτήρων με μεταβλητό πλάτος. Αποθηκεύει έως 1.073.741.824 χαρακτήρες. 0 χαρακτήρες 2 31 χαρακτήρες n bytes + 2 byte
κείμενο Αυτή είναι μια συμβολοσειρά χαρακτήρων με μεταβλητό πλάτος. Αποθηκεύει έως 2 GB δεδομένων κειμένου. 0 χαρακτήρες 2.147.483.647 χαρακτήρες n bytes + 4 byte

Παράδειγμα ερωτήματος:

DECLARE @Datatype_Char VARCHAR(30) = 'This is Character Datatype'PRINT @Datatype_Char

Έξοδος: Αυτός είναι ο τύπος δεδομένων χαρακτήρων

Συμβολοσειρές χαρακτήρων Unicode

Αυτή η κατηγορία αποθηκεύει την πλήρη γκάμα χαρακτήρων Unicode που χρησιμοποιεί την κωδικοποίηση χαρακτήρων UTF-16. Τύποι δεδομένων συμβολοσειράς χαρακτήρων Unicode

Τύπος δεδομένων Περιγραφή Κατώτερο όριο Ανώτερο όριο Μνήμη
nchar Είναι μια συμβολοσειρά Unicode σταθερού πλάτους 0 χαρακτήρες 4000 χαρακτήρες 2 φορές n byte
nvarchar Είναι μια συμβολοσειρά unicode μεταβλητού πλάτους 0 χαρακτήρες 4000 χαρακτήρες 2 φορές n bytes + 2 byte
ntext Είναι μια συμβολοσειρά unicode μεταβλητού πλάτους 0 χαρακτήρες 1.073.741.823 char 2 φορές το μήκος της χορδής

Παράδειγμα ερωτήματος:

DECLARE @Datatype_nChar VARCHAR(30) = 'This is nCharacter Datatype'PRINT @Datatype_nChar

Έξοδος: Αυτός είναι ο τύπος δεδομένων nCharacter

Δυαδική συμβολοσειρά

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

Τύπος δεδομένων Περιγραφή Κατώτερο όριο Ανώτερο όριο Μνήμη
δυάδικος Είναι μια δυαδική συμβολοσειρά σταθερού πλάτους. Αποθηκεύει έως και 8.000 bytes. 0 byte 8000 byte n bytes
σπονδυλική στήλη Αυτή είναι μια δυαδική συμβολοσειρά μεταβλητού πλάτους. Αποθηκεύει έως και 8.000 byte 0 byte 8000 byte Το πραγματικό μήκος των δεδομένων που εισήχθησαν + 2 byte
εικόνα Αυτή είναι μια δυαδική συμβολοσειρά μεταβλητού πλάτους. Αποθηκεύει έως 2 GB. 0 byte 2.147.483.647 byte

Παράδειγμα ερωτήματος:

DECLARE @Datatype_Binary BINARY(2) = 12;PRINT @Datatype_Binary

Έξοδος: 0x000C

Άλλοι τύποι δεδομένων

Αυτοί είναι άλλοι διαφορετικοί τύποι δεδομένων με την παρακάτω περιγραφή-

Τύπος δεδομένων Περιγραφή
Δρομέας Το αποτέλεσμα είναι μια στήλη sp_cursor_list και sp_describe_cursor. Επιστρέφει το όνομα της μεταβλητής του δρομέα.
Έκδοση σειράς Η έκδοση σφραγίζει τις σειρές του πίνακα.
Ιεραρχία Αυτός ο τύπος δεδομένων αντιπροσωπεύει μια θέση στην ιεραρχία
Μοναδικό αναγνωριστικό Μετατροπή από μια έκφραση χαρακτήρα.
Sql_variant Αποθηκεύει τιμές των τύπων δεδομένων που υποστηρίζονται από διακομιστή SQL.
XML Αποθηκεύει δεδομένα XML σε μια στήλη.
Τύπος χωρικής γεωμετρίας Αντιπροσωπεύει δεδομένα σε ένα επίπεδο επίπεδο συντεταγμένων.
Τύπος χωρικής γεωγραφίας Αντιπροσωπεύει δεδομένα στο σύστημα συντεταγμένων στρογγυλής γης.
τραπέζι Αποθηκεύει ένα σύνολο αποτελεσμάτων για μεταγενέστερη επεξεργασία.

Ενδιαφέροντα γεγονότα!

  • Ο τύπος δεδομένων CHAR είναι πιο γρήγορος από το VARCHAR κατά την ανάκτηση δεδομένων.

Περίληψη:

  • Κάθε στήλη σε πίνακες καθορίζει τον τύπο δεδομένων κατά τη δημιουργία του πίνακα.
  • Υπάρχουν έξι κύριες κατηγορίες και μία άλλη κατηγορία. Άλλα διάφορα διαθέτουν εννέα υποκατηγορίες τύπων δεδομένων.