Kluczowa różnica: W systemach baz danych, takich jak SQL Server, Char i Varchar są typami danych, gdzie char faktycznie odnosi się do postaci, a Varchar odnosi się do zmiennej postaci. Oba są używane do przechowywania wartości typu łańcucha o maksymalnej długości 8 000 znaków. Rozmiar przestrzeni ładunkowej jest taki sam jak zadeklarowany, natomiast etap szósty Varchar zależy od bajtów wprowadzonych danych rzeczywistych.
Weźmy przykład - jeśli dane Char są zadeklarowane w pewien sposób: zadeklaruj test Char (20) i test = "testing", wtedy test zajmie pierwsze 7 bajtów, a reszta zostanie wypełniona pustymi danymi. Z drugiej strony, jeśli dane Varchar są zadeklarowane w pewien sposób: zadeklaruj test Varchar (20), a test = "testing", to zajmie to tylko 7 + 2 bajty.
Char powinna być używana, gdy długość zmiennej jest znana, podczas gdy Varchar powinien być używany tylko wtedy, gdy długość jest nieznana. Char jest szybszy niż Varchar, ponieważ system Varchar poświęca trochę czasu na wykrycie czasu na znalezienie końca struny. Z drugiej strony ten czas nie jest zmarnowany w Char.
Porównanie Char i Varchar:
Zwęglać | Varchar | |
Pełna forma | Postać | Zmienna litera (w kontekście znaku o zmiennej długości) |
Znaczenie | Służy do przechowywania danych ciągów znaków Un-Unicode o stałej długości | Służy do przechowywania danych ciągów znaków Un-Unicode o zmiennej długości |
Bajty używane do przechowywania | 1 bajt na znak | 1 bajt na znak i 1 lub 2 bajty dodatkowe dla informacji o długości trzymania |
Podanie | Służy do przechowywania danych takich jak numer telefonu itp. (Wpisy danych są spójne). | Służy do przechowywania danych takich jak adres (dane są bardzo różne) |
Warunek: łańcuch wejściowy mniejszy niż zadeklarowane bajty | Przestrzeń bez znaku będzie wypełniona znakami spacji | Przestrzeń bez żadnej postaci nie zostanie uzupełniona żadną postacią |
Warunek: ciąg wejściowy większy niż zadeklarowane bajty | Łańcuch zostanie obcięty do zadeklarowanych bajtów | Łańcuch zostanie obcięty do zadeklarowanych bajtów. |