Διαφορά μεταξύ Char και Varchar Διαφορά μεταξύ

Anonim

Και οι δύο είναι τύποι δεδομένων σε πολλές γλώσσες προγραμματισμού και συστήματα βάσεων δεδομένων όπου το 'char' αναφέρεται στο χαρακτήρα και το 'varchar' αναφέρεται σε μεταβλητό χαρακτήρα. Το Char στον C αντιπροσωπεύει τον τύπο χαρακτήρων που χρησιμοποιείται για την αποθήκευση τιμών συμβολοσειράς, κυρίως κωδικοποιημένων χαρακτήρων UTF-8 και ακέραιων αριθμών. Ο Varchar, από την άλλη πλευρά, είναι ένας τύπος δεδομένων που μπορεί να περιέχει δεδομένα οποιουδήποτε τύπου απροσδιόριστου μήκους. Ο Varchar αναφέρεται σε έναν τύπο δεδομένων ενός πεδίου σε ένα σύστημα διαχείρισης βάσεων δεδομένων. Ενώ και οι δύο μπορούν να αποθηκεύσουν τιμές στοιχειοσειράς μέχρι ένα μέγιστο μήκος 8, 000 χαρακτήρων, το char απαιτεί περισσότερο χώρο αποθήκευσης από το varchar. Από τεχνική άποψη, και οι δύο χρησιμοποιούνται για την αποθήκευση ίδιων τύπων δεδομένων, αλλά διαφέρουν στον τρόπο με τον οποίο αποθηκεύονται και ανακτώνται. Ας ρίξουμε μια ματιά στις διαφορές τους με λεπτομέρειες.

Τι είναι το Char;

Το Char είναι ένας τύπος δεδομένων σταθερού μήκους που χρησιμοποιείται για την αποθήκευση χαρακτήρων που δεν είναι Unicode, εξ ου και το όνομα (κοντό για τον χαρακτήρα). Καταλαμβάνει ένα byte χώρου για κάθε χαρακτήρα που κωδικοποιούνται ως αριθμοί - αυτοί από την κωδικοποίηση ASCII. Ο τύπος char μπορεί επίσης να χρησιμοποιηθεί για να δηλώσει μικρούς ακεραίους. Για να δηλώσει μια μεταβλητή χαρακτήρων, χρησιμοποιείται η λέξη-κλειδί 'char', που σημαίνει ότι ένας μόνος χαρακτήρας αποθηκεύεται σε ένα byte.

Όπως και οι ακέραιοι τύποι, ο char μπορεί να υπογραφεί ή να μην υπογραφεί. Μπορεί να διατηρήσει τιμές υπογεγραμμένων χαρακτήρων που κυμαίνονται από -128 έως 127 και ανάλογα με το αρχιτεκτονικό μέγεθος, μπορεί επίσης να μην έχει υπογραφή, διατηρώντας τιμές που κυμαίνονται από 0 έως 255. Όταν οι τιμές char αποθηκεύονται, είναι σωστά τοποθετημένες με κενά στο καθορισμένο μήκος. Οι χώροι απόληξης αφαιρούνται όταν ανακτηθούν.

Για παράδειγμα - εάν δηλώσετε μια μεταβλητή τύπου char (7), τότε θα λαμβάνει πάντα 7 bytes δεδομένων ανεξάρτητα από το εάν αποθηκεύετε 1 ή 7 χαρακτήρες, πράγμα που σημαίνει ότι μπορείτε να αποθηκεύσετε έως και 7 χαρακτήρες στήλη.

Τι είναι το Varchar;

Το Varchar, όπως υποδηλώνει το όνομα, είναι ένας τύπος δεδομένων μεταβλητού μήκους ο οποίος μπορεί να περιέχει οποιοδήποτε τύπο δεδομένων με μήκος που κυμαίνεται από 0 έως 65, 535. Το πεδίο Varchar μπορεί να αποθηκεύσει τιμές οποιουδήποτε μεγέθους μέχρι ένα ορισμένο όριο, στη βάση δεδομένων. Μπορεί να οριστεί είτε σε γλώσσες προγραμματισμού είτε σε επίπεδο βάσης δεδομένων. Το μέγεθος του πεδίου varchar μπορεί να είναι οτιδήποτε από το μηδέν μέχρι το μέγιστο δηλωμένο μήκος πεδίου.

Για να δηλώσετε έναν μεταβλητό χαρακτήρα, χρησιμοποιείται η λέξη κλειδί 'varchar'. Ο Varchar παίρνει ένα μεταβλητό χώρο, που σημαίνει ότι θα χρησιμοποιεί μόνο τον αριθμό των bytes ίσο με τον αριθμό των χαρακτήρων. Βοηθά στην αποφυγή της σπατάλης του χώρου, καθώς χρησιμοποιεί μόνο το χώρο που απαιτείται για το μέγεθος της συμβολοσειράς. Σε ορισμένες γλώσσες προγραμματισμού και συστήματα βάσεων δεδομένων, οποιοσδήποτε επιπλέον χώρος αφαιρείται αυτόματα από τη βάση δεδομένων.

Για παράδειγμα - αν δηλώσετε μια μεταβλητή του varchar (10), θα χρησιμοποιήσει τον αριθμό των bytes ίσο με τον αριθμό των χαρακτήρων.Έτσι, αν αποθηκεύετε μόνο ένα χαρακτήρα, τότε θα χρειαστεί μόνο ένα byte και αν αποθηκεύετε 10 χαρακτήρες, θα χρειαστούν 10 byte, αποφεύγοντας έτσι τη σπατάλη χώρου βάσης δεδομένων.

Διαφορά μεταξύ Char και Varchar

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

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

  1. Μέγεθος αποθήκευσης

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

  1. Καταχωρίσεις δεδομένων

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

  1. Κατανομή μνήμης

Το Char χρησιμοποιεί κατανομή στατικής μνήμης ενώ το varchar χρησιμοποιεί δυναμική κατανομή μνήμης

  1. Μήκος

Το μήκος μιας μεταβλητής char μπορεί να έχει οποιαδήποτε τιμή από 0 έως 255, ενώ το μήκος της μεταβλητής varchar κυμαίνεται από 0 έως 65, 535.

  1. Εφαρμογή

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

Char vs Varchar

Char Varchar
Χρησιμοποιείται για την αποθήκευση τιμής συμβολοσειράς χαρακτήρων σταθερού μήκους. Χρησιμοποιείται για την αποθήκευση αλφαριθμητικών δεδομένων μεταβλητού μήκους.
Το μήκος κυμαίνεται από 0 έως 255. Το μήκος κυμαίνεται από 0 έως 65, 535.
Λαμβάνει 1 byte ανά χαρακτήρα για αποθήκευση. Λαμβάνει 1 byte ανά χαρακτήρα συν 1 ή 2 επιπλέον bytes για την αποθήκευση πληροφοριών μήκους.
Το μέγεθος αποθήκευσης του char είναι το ίδιο με αυτό που δηλώθηκε. Το μέγεθος αποθήκευσης του varchar εξαρτάται από το συγκεκριμένο αποθηκευμένο string.
Χρησιμοποιεί κατανομή στατικής μνήμης. Χρησιμοποιεί δυναμική κατανομή μνήμης.
Το Char πρέπει να χρησιμοποιείται όταν το μήκος της μεταβλητής είναι γνωστό. Το Varchar θα πρέπει να χρησιμοποιείται μόνο όταν το μήκος της μεταβλητής δεν είναι γνωστό.
Αποδέχεται μόνο χαρακτήρες. Αποδέχεται και χαρακτήρες και αριθμούς.
Είναι 50 τοις εκατό ταχύτερα από το Varchar. Είναι πιο αργή από την Char.
Το μέγεθος αποθήκευσης της τιμής char είναι ίσο με το μέγιστο μέγεθος της στήλης. Το μέγεθος αποθήκευσης της τιμής varchar είναι ίσο με το πραγματικό μήκος των εισερχόμενων δεδομένων, όχι το μέγιστο μέγεθος της στήλης.

Περίληψη

  • Τόσο το «Char» όσο και το «Varchar» είναι τύποι δεδομένων σε γλώσσες προγραμματισμού και συστήματα βάσεων δεδομένων που μοιράζονται μερικά κοινά χαρακτηριστικά από άποψη λειτουργικότητας και τεχνικής φύσης. Ωστόσο, διαφέρουν σημαντικά όπως ο τρόπος αποθήκευσης και ανάκτησης.
  • Ενώ ο χαρακτήρας char αναφέρεται πραγματικά στον χαρακτήρα, το varchar αναφέρεται σε μεταβλητό χαρακτήρα. Όπως υποδηλώνει το όνομα, ο char είναι ένας τύπος δεδομένων σταθερού μήκους, ενώ ο varchar είναι ένας τύπος δεδομένων μεταβλητού μήκους.
  • Το Char παίρνει έως και 1 byte ανά χαρακτήρα, ενώ το varchar διαρκεί μέχρι και 1 byte ανά χαρακτήρα και επιπλέον 1 ή 2 bytes για να αποθηκεύει πληροφορίες σχετικά με το μήκος.Για char, το μήκος κυμαίνεται από 0 έως 255 και για το varchar, μπορεί να είναι οτιδήποτε μεταξύ 0 και 65, 535.
  • Καθώς το char είναι σταθερό μήκος, οποιοσδήποτε εναπομείνατος χώρος στο πεδίο είναι γεμισμένος με κενά. Ο Varchar, από την άλλη πλευρά, είναι μεταβλητού μήκους, οπότε κρατάει μόνο τους χαρακτήρες που του αποδίδετε.
  • Οι υπόλοιποι χαρακτήρες είναι γεμισμένοι με λευκούς χώρους όταν οι τιμές αποθηκεύονται σε πεδία «char», ενώ το 'varchar' δεν προσθέτει επιπλέον κενά όταν δίνετε τα λιγότερα δεδομένα από το καθορισμένο μήκος.