Ambele sunt tipuri de date în multe limbi de programare și sisteme de baze de date unde 'char' se referă la caracter și 'varchar' se referă la caracterul variabil. Char în C reprezintă tipul de caractere care se utilizează pentru a stoca valorile șirului, majoritatea caracterelor codate UTF-8 și numere întregi. Varchar, pe de altă parte, este un tip de date care poate conține date de orice tip de lungime nedeterminată. Varchar se referă la un tip de date dintr-un câmp într-un sistem de gestionare a bazelor de date. În timp ce ambele pot stoca valori de șir până la o lungime maximă de 8.000 de caractere, char necesită mai mult spațiu de stocare decât varchar. Din punct de vedere tehnic, ambele sunt utilizate pentru a stoca aceleași tipuri de date, dar ele diferă în modul în care sunt stocate și preluate. Să aruncăm o privire la diferențele dintre ele în detaliu.
Char este un tip de date cu lungime fixă care este folosit pentru a stoca caractere non-Unicode, de unde și numele (scurt pentru caracter). Acesta ocupă un octet de spațiu pentru fiecare caracter care sunt codificate ca numere - cele din codarea ASCII. Tipul de caractere poate fi de asemenea utilizat pentru a declara numere întregi mici. Pentru a declara o variabilă de caractere, este folosit cuvântul cheie "char", ceea ce înseamnă că un singur caracter este stocat într-un octet.
Ca și tipurile întregi, char poate fi semnat sau nesemnat. Poate deține valori semnate ale caracterelor cuprinse între -128 și 127 și, în funcție de mărimea arhitecturii, poate fi și nesemnată, menținând valori cuprinse între 0 și 255. Când sunt stocate valori char, ele sunt poziționate în dreapta cu spații la lungimea specificată . Spațiile înclinate sunt îndepărtate atunci când sunt recuperate.
De exemplu, dacă declarați o variabilă a tipului de date char (7), atunci va dura întotdeauna 7 octeți de date, indiferent dacă stocați 1 caractere sau 7 caractere, ceea ce înseamnă că puteți stoca maxim 7 caractere în coloană.
Varchar, după cum sugerează și numele, este un tip de date cu lungime variabilă care poate conține orice tip de date cu lungimea variind între 0 și 65 535. Câmpul Varchar poate stoca valori de orice dimensiune până la o anumită limită, în funcție de baza de date. Acesta poate fi definit fie în limbile de programare, fie la nivelul bazei de date. Dimensiunea câmpului varchar poate fi orice de la zero până la lungimea câmpului maximă declarată.
Pentru a declara un caracter variabil, se folosește cuvântul cheie "varchar". Varchar are un spațiu variabil, ceea ce înseamnă că va folosi doar numărul de octeți egal cu numărul de caractere. Ajută la evitarea pierderii de spațiu, deoarece utilizează doar spațiul necesar pentru dimensiunea șirului. În unele limbi de programare și sisteme de baze de date, orice spațiu suplimentar este eliminat automat din baza de date.
De exemplu - dacă declarați o variabilă a varchar (10), va folosi numărul de octeți egal cu numărul de caractere. Deci, dacă stocați un singur caracter, atunci va dura doar un octet și dacă stocați 10 caractere, va dura 10 octeți, evitând astfel pierderea spațiului bazei de date.
"Char" este un tip de date cu lungime fixă care este utilizat pentru a stoca valoarea șirului de caractere a lungimii fixe, în timp ce "Varchar" este un tip de date cu lungime variabilă care este utilizat pentru a stoca date alfanumerice cu lungime variabilă.
Dimensiunea de stocare a valorii caracterului este egală cu dimensiunea maximă a acestei coloane pe care o declarați în timpul creării tabelului. Pe de altă parte, dimensiunea stocării valorii varchar este lungimea reală a datelor introduse, nu dimensiunea maximă pentru această coloană.
Puteți utiliza caracterul char atunci când intrările de date dintr-o coloană sunt de așteptat să aibă aceeași dimensiune, în timp ce, dimpotrivă, varchar poate fi utilizat atunci când intrările de date dintr-o coloană sunt de așteptat să difere în mărime.
Char utilizează alocarea de memorie statică în timp ce varchar folosește alocarea dinamică a memoriei
Lungimea unei variabile de caractere poate fi de orice valoare de la 0 la 255, în timp ce lungimea variabilei varchar variază de la 0 la 65 535.
Intrările de date sunt consecvente în caractere care sunt utilizate pentru stocarea datelor ca numere de telefon, în timp ce varchar este utilizat pentru stocarea unor date variate precum adresele.
Carboniza | varchar |
Folosit pentru stocarea valorii șirului de caractere cu lungimea fixă. | Folosit pentru a stoca date alfanumerice de lungime variabila. |
Lungimea variază între 0 și 255. | Lungimea variază de la 0 la 65.535. |
Are un octet per caracter pentru stocare. | Are un octet per caracter plus 1 sau 2 octeți suplimentari pentru stocarea informațiilor despre lungime. |
Dimensiunea de stocare a char este aceeași cu cea declarată. | Dimensiunea de stocare a varchar depinde de șirul specific stocat. |
Utilizează alocarea statică a memoriei. | Utilizează alocarea dinamică a memoriei. |
Char ar trebui să fie utilizat atunci când lungimea variabilei este cunoscută. | Varchar trebuie utilizat numai atunci când lungimea variabilei nu este cunoscută. |
Acceptă doar caractere. | Acceptă atât caractere, cât și numere. |
E cu 50% mai rapid decât Varchar. | E mai lent decât Char. |
Dimensiunea de stocare a valorii char este egală cu dimensiunea maximă pentru coloană. | Dimensiunea de stocare a valorii varchar este egală cu lungimea reală a datelor introduse, nu cu dimensiunea maximă a coloanei. |