Diferența dintre Char și Varchar Diferența dintre

Anonim

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 este utilizat 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 utilizat 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 la 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 caracter sau 7 caractere, ceea ce înseamnă că puteți stoca maxim 7 caractere în coloana.

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 de la 0 la 65, 535. Câmpul Varchar poate stoca valori de orice dimensiune până la o anumită limită, pe 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 fi nevoie de 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 o lungime fixă ​​care este utilizat pentru a stoca valoarea șirului de caractere a lungimii fixe, în timp ce "Varchar" 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. Înregistră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 datele introduse într-o coloană sunt de așteptat să aibă o mărime diferită.

  1. Alocarea memoriei

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

  1. Lungime

Lungimea unei variabile de caractere poate avea orice valoare de la 0 la 255, în timp ce lungimea variabilei varchar variază de la 0 până la 65, 535.

  1. Aplicație

Înregistră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 diferite precum adrese.

Char vs Varchar

Char Varchar
Folosit pentru a stoca valoarea șirului de caractere cu lungimea fixă. Folosit pentru a stoca date alfanumerice de lungime variabila.
Lungimea variază de la 0 la 255. Lungimea variază de la 0 la 65, 535.
Are nevoie de un octet pentru fiecare caracter pentru stocare. Are un singur octet per caracter plus 1 sau 2 octeți suplimentari pentru stocarea informațiilor despre lungime.
Dimensiunea stocării char este aceeași cu cea declarată. Dimensiunea de stocare a varchar depinde de șirul specific stocat.
Utilizează alocarea de memorie statică. Utilizează alocarea dinamică a memoriei.
Char trebuie folosit atunci când lungimea variabilei este cunoscută. Varchar ar trebui utilizat doar atunci când lungimea variabilei nu este cunoscută.
Acceptă numai caractere. Acceptă atât caractere, cât și numere.
Este 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ă pentru coloană.

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 un octet pe caracter, în timp ce varchar ocupă de asemenea până la 1 octet per caracter plus plus 1 sau 2 octeți pentru a stoca informații despre lungime.Pentru char, lungimea variază de la 0 la 255, iar pentru varchar, poate fi orice între 0 și 65, 535.
  • Ca 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 oferiți mai puține date decât lungimea specificată.