Tipurile char si varchar - HTML, CSS, JavaScript, Perl, PHP, MySQL

Tipurile char si VARCHAR sunt similare, dar diferă în modul în care acestea stoca și prelua.
lungimea coloanei CHAR este fixă ​​și este egală cu lungimea specificată la crearea unui tabel. Acesta poate avea orice valoare 0-255 (la versiunea MySQL lungime 3.23 CHAR ar putea fi 1-255). La depozitarea CHAR valoarea nivelate prin adăugarea lacune la dreapta lungimea coloanei menționat. Atunci când valoarea Char este recuperat, spațiile rămase în urmă sunt eliminate.
Valorile stocate în coloane VARCHAR, sunt șiruri de lungime variabilă. Puteți declara o coloană VARCHAR cu o lungime de la 0 la 255, la fel ca CHAR (înainte de MySQL 3.23, lungimea VARCHAR poate fi între 1 și 255). Cu toate acestea, în contrast cu o CHAR, coloana VARCHAR este stocată ca caractere în funcție de necesități, plus un octet pentru a înregistra lungimea. Valoarea nu este căptușit, dimpotrivă, spațiile rămase în urmă sunt îndepărtate păstrând în același timp. Acest comportament diferă de specificațiile standard SQL.

La salvarea și regăsirea nici un caz de conversie nu este efectuată.
Dacă atribuiți o CHAR sau VARCHAR valoare a coloanei este mai mare decât lungimea sa, este trunchiat.
Dacă aveți nevoie de o coloană care nu înlătură spații din urmă, ia în considerare utilizarea unui tip de BLOB sau TEXT. Dacă doriți să stocați valori binare, cum ar fi rezultatele returnate de caracteristici de compresie sau de criptare, care pot conține octeți arbitrare, utilizează o coloană BLOB în loc de CHAR sau VARCHAR, pentru a evita eventualele probleme cu eliminarea spațiilor, schimbarea datelor.
Următorul tabel. reprezentată de diferențele dintre cele două tipuri de coloane, un exemplu rezultat al valorilor șir de conservare în coloanele CHAR (4) și VARCHAR (4).
Valorile recuperate din coloanele CHAR (4) și VARCHAR (4) va fi aceeași, în orice caz, deoarece semifabricatele trailing sunt îndepărtate în timpul citirii.
Deoarece versiunea MySQL 4.1.0, CHAR și valorile coloanei VARCHAR sunt comparate și sortate în funcție de ordinea de potrivire setul de caractere server. Puteți declara o coloană cu atributul BINARY, pentru a face caz de sortare și comparare insensibil, folosind coduri de caractere stocate în loc de ordine lexicografica. Atributul BINARY nu afectează modul în care coloana este stocat sau recuperate.

Stocarea valorilor din coloanele Tabelul CHAR (4) și VARCHAR (4)