Diferența dintre Char și Varchar

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.

Ce este Char?

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ă.

Ce este Varchar?

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.

Diferența dintre Char și Varchar

  1. Tipul 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ă.

  1. Dimensiunea de stocare

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ă.

  1. Intrări de date

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.

  1. Alocare de memorie

Char utilizează alocarea de memorie statică în timp ce varchar folosește alocarea dinamică a memoriei

  1. Lungime

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.

  1. cerere

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.

Char vs Varchar

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.

rezumat

  • Ambele "Char" și "Varchar" sunt tipuri de date în limbi de programare și sisteme de baze de date care împărtășesc câteva trăsături comune în termeni de funcționalitate și tehnicitate. Cu toate acestea, acestea diferă considerabil ca modul în care sunt stocate și preluate.
  • În timp ce char se referă de fapt la caracter, varchar se referă la caracterul variabil. După cum sugerează și numele, char este un tip de date cu lungime fixă, în timp ce varchar este un tip de date cu lungime variabilă.
  • Char ocupă până la 1 byte pe caracter, în timp ce varchar ocupă de asemenea până la 1 octet per caracter, plus 1 sau 2 octeți suplimentari pentru a stoca informații despre lungime. Pentru char, lungimea variază de la 0 la 255 și pentru varchar, poate fi orice între 0 și 65.535.
  • Deoarece char este lungimea fixă, orice spațiu rămas în câmp este căptușit cu spații goale. Varchar, pe de altă parte, are o lungime variabilă, astfel încât să dețină numai caracterele pe care le-ai atribuit.
  • Caracterele rămase sunt pline cu spații albe când valorile sunt stocate în câmpurile "char", în timp ce "varchar" nu adaugă spații suplimentare atunci când furnizați mai puține date decât lungimea specificată.