Varchar εναντίον Nvarchar
Η διαφορά μεταξύ varchar και nvarchar υποδεικνύει πώς αποθηκεύονται τα δεδομένα σε μια βάση δεδομένων. Ένα σύστημα βάσης δεδομένων αποτελείται από δεδομένα και τα δεδομένα ορίζονται από τύπους δεδομένων. Ένας τύπος δεδομένων λέει ότι τι είδους τιμή μπορεί να περιέχει μια στήλη. Κάθε στήλη σε έναν πίνακα βάσης δεδομένων πρέπει να έχει ένα όνομα και έναν τύπο δεδομένων. Σήμερα, υπάρχουν πολλοί τύποι δεδομένων που είναι διαθέσιμοι στο σχεδιασμό βάσεων δεδομένων. Από αυτούς τους τύπους δεδομένων, τα varchar και nvarchar χρησιμοποιούνται για την αποθήκευση χαρακτήρων συμβολοσειράς. Το Varchar και το Nvarchar φαίνεται να είναι εναλλάξιμα. Αλλά αυτοί οι δύο τύποι έχουν διαφορετικά πλεονεκτήματα και χρησιμοποιούνται για διαφορετικούς σκοπούς.
Τι είναι το Varchar;
Όπως υποδηλώνει το όνομα, το varchar είναι ένας μεταβαλλόμενος χαρακτήρας ή διαφορετικός χαρακτήρας. Η σύνταξη του varchar είναι VARCHAR [(n|max)]. Το Varchar αποθηκεύει δεδομένα ASCII που δεν είναι δεδομένα Unicode και είναι ο τύπος δεδομένων που χρησιμοποιούνται στην κανονική χρήση. Το Varchar χρησιμοποιεί ένα byte ανά χαρακτήρα. Αποθηκεύει επίσης το μήκος κάθε συμβολοσειράς στη βάση δεδομένων. Το Varchar έχει μεταβλητό μήκος δεδομένων και μπορεί να αποθηκεύσει έως 8000 χαρακτήρες που δεν είναι Unicode. Αυτός ο τύπος δεδομένων είναι πολύ ευέλικτος και δέχεται τα περισσότερα διαφορετικά είδη δεδομένων. Το Varchar δεν σας επιτρέπει να αποθηκεύετε κενούς χαρακτήρες για τα αχρησιμοποίητα μέρη της συμβολοσειράς. Το μέγιστο μέγεθος αποθήκευσης του varchar είναι 2 GB και το πραγματικό μέγεθος αποθήκευσης των δεδομένων είναι το πραγματικό μήκος των δεδομένων συν δύο byte. Αν και το varchar είναι πιο αργό από το char, χρησιμοποιεί δυναμική εκχώρηση μνήμης. Όχι μόνο συμβολοσειρές, αλλά και τύποι μη συμβολοσειρών, όπως τύποι ημερομηνίας, "14 Φεβρουαρίου", "2014-11-12" μπορούν επίσης να αποθηκευτούν στον τύπο δεδομένων varchar.
Τι είναι το Nvarchar;
Το Nvarchar προτείνει έναν εθνικό μεταβλητό χαρακτήρα ή έναν εθνικό μεταβλητό χαρακτήρα. Η σύνταξη του nvarchar είναι NVARCHAR [(n|max)]. Το Nvarchar μπορεί να αποθηκεύσει διαφορετικούς τύπους δεδομένων με διαφορετικό μήκος. Είναι δεδομένα Unicode και πολύγλωσσα δεδομένα και γλώσσες με χαρακτήρες διπλού byte στα κινέζικα. Το Nvarchar χρησιμοποιεί 2 byte ανά χαρακτήρα και μπορεί να αποθηκεύσει μέγιστο όριο 4000 χαρακτήρων και μέγιστο μήκος 2 GB. Ο Nvarchar αντιμετωπίζει το " " ως κενή συμβολοσειρά και μηδενικό μήκος χαρακτήρων. Το μέγεθος αποθήκευσης είναι διπλάσιο από τον αριθμό των χαρακτήρων συν δύο byte. Στο nvarchar, τα τελικά κενά δεν αφαιρούνται όταν η τιμή αποθηκεύεται και λαμβάνεται.
Ποια είναι η διαφορά μεταξύ Varchar και Nvarchar;
Η βασική διαφορά μεταξύ varchar και nvarchar υποδεικνύει πώς αποθηκεύονται τα δεδομένα σε μια βάση δεδομένων.
• Το Varchar αποθηκεύει τιμές ASCII και το nvarchar αποθηκεύει χαρακτήρες Unicode.
• Το Varchar χρησιμοποιεί ένα byte ανά χαρακτήρα ενώ το nvarchar χρησιμοποιεί δύο byte ανά χαρακτήρα.
• Το Varchar [(n)] αποθηκεύει χαρακτήρες που δεν είναι Unicode με μεταβλητό μήκος και το Nvarchar [(n)] αποθηκεύει χαρακτήρες Unicode με μεταβλητό μήκος.
• Το Varchar μπορεί να αποθηκεύσει έως 8000 χαρακτήρες που δεν είναι Unicode και το nvarchar αποθηκεύει έως 4000 χαρακτήρες Unicode ή μη Unicode.
• Το Varchar είναι καλύτερο να χρησιμοποιείται σε μέρη όπου υπάρχουν μεταβλητές με χαρακτήρες εκτός Unicode. Το Nvarchar χρησιμοποιείται σε μέρη όπου υπάρχουν μεταβλητές με χαρακτήρες Unicode.
• Το μέγεθος αποθήκευσης του varchar είναι ο αριθμός των byte ίσος με τον αριθμό των χαρακτήρων συν δύο byte που έχουν δεσμευτεί για μετατόπιση. Το Nvarchar χρησιμοποιεί αριθμό byte ίσο με το διπλάσιο του αριθμού των χαρακτήρων συν δύο byte που έχει δεσμευτεί για μετατόπιση.
• Όλα τα σύγχρονα λειτουργικά συστήματα και οι πλατφόρμες ανάπτυξης χρησιμοποιούν εσωτερικά το Unicode. Επομένως, το nvarchar χρησιμοποιείται σε μεγάλο βαθμό αντί του varchar προκειμένου να αποφευχθεί η μετατροπή τύπων δεδομένων.
Σύνοψη:
Nvarchar εναντίον Varchar
Varchar και nvarchar είναι τύποι δεδομένων μεταβλητού μήκους που χρησιμοποιούμε για την αποθήκευση διαφορετικών τύπων συμβολοσειρών. Αυτοί οι τύποι δεδομένων είναι χρήσιμοι στα σύγχρονα λειτουργικά συστήματα. Αυτές οι ποικιλίες τύπων δεδομένων αποφεύγουν τη μετατροπή δεδομένων από έναν τύπο σε άλλο σύμφωνα με τα λειτουργικά συστήματα. Επομένως, το varchar και το nvarchar βοηθούν τον προγραμματιστή να αναγνωρίσει τις συμβολοσειρές Unicode και μη Unicode χωρίς μεγάλη δυσκολία. Αυτοί οι δύο τύποι δεδομένων είναι πολύ χρήσιμοι στον προγραμματισμό.