Beide zijn gegevenstypen in veel programmeertalen en databasesystemen waarbij 'char' verwijst naar karakter en 'varchar' verwijst naar een variabel karakter. Char in C staat voor het karaktertype dat wordt gebruikt om stringwaarden op te slaan, meestal UTF-8-gecodeerde tekens en gehele getallen. Varchar, aan de andere kant, is een gegevenstype dat gegevens van elk type onbepaalde lengte kan bevatten. Varchar verwijst naar een gegevenstype van een veld in een databasebeheersysteem. Hoewel beiden stringwaarden kunnen opslaan met een maximale lengte van 8.000 tekens, vereist char meer opslagruimte dan varchar. Technisch gezien worden ze beide gebruikt om dezelfde soorten gegevens op te slaan, maar ze verschillen in de manier waarop ze worden opgeslagen en opgehaald. Laten we eens kijken naar hun verschillen in detail.
Char is een gegevenstype met een vaste lengte dat wordt gebruikt om niet-Unicode-tekens op te slaan, vandaar de naam (afkorting voor karakter). Het neemt één byte ruimte in beslag voor elk teken dat gecodeerd is als getallen - die van de ASCII-codering. Het char-type kan ook worden gebruikt om kleine gehele getallen te declareren. Om een tekenvariabele te declareren, wordt het sleutelwoord 'char' gebruikt, wat betekent dat één teken in één byte wordt opgeslagen.
Net als de integer-typen kan char worden ondertekend of niet-ondertekend. Het kan ondertekende char-waarden bevatten variërend van -128 tot 127 en afhankelijk van de architecturale grootte kan het ook niet-ondertekend zijn, met waarden variërend van 0 tot 255. Wanneer char-waarden worden opgeslagen, zijn ze rechts opgevuld met spaties tot de opgegeven lengte . De volgspaties worden verwijderd wanneer ze worden opgehaald.
Bijvoorbeeld - als u een gegevenstype variabele van tekenreeks (7) declareert, dan zijn er altijd 7 bytes aan gegevens nodig, ongeacht of u 1 teken of 7 tekens opslaat, wat betekent dat u maximaal 7 tekens in de kolom kunt opslaan.
Varchar is, zoals de naam al doet vermoeden, een gegevenstype met variabele lengte dat elk type gegevens kan bevatten met een lengte variërend van 0 tot 65.535. In het Varchar-veld kunnen waarden van elke grootte tot een bepaalde limiet worden opgeslagen, afhankelijk van de database. Het kan worden gedefinieerd in programmeertalen of op databaseniveau. De grootte van het varchar-veld kan van nul tot de maximale veldlengte van het veld zijn.
Om een variabel karakter te declareren, wordt het sleutelwoord 'varchar' gebruikt. Varchar neemt een variabele spatie in, wat betekent dat het alleen het aantal bytes gebruikt dat gelijk is aan het aantal tekens. Het helpt bij het voorkomen van verspilling van ruimte omdat het alleen de ruimte gebruikt die nodig is voor de maat van de snaar. In sommige programmeertalen en databasesystemen wordt elke extra spatie automatisch uit de database verwijderd.
Bijvoorbeeld - als u een variabele van varchar (10) declareert, gebruikt deze het aantal bytes dat gelijk is aan het aantal tekens. Dus, als je slechts één karakter opslaat, dan zal het maar één byte kosten en als je 10 karakters opslaat, zal het 10 bytes duren, waardoor verspilling van database ruimte wordt voorkomen.
'Char' is een gegevenstype met een vaste lengte die wordt gebruikt om de tekenreekswaarde met een vaste lengte op te slaan, terwijl 'Varchar' een gegevenstype met een variabele lengte is dat wordt gebruikt voor het opslaan van alfanumerieke gegevens van variabele lengte.
De opslaggrootte van de tekenwaarde is gelijk aan de maximale grootte van deze kolom die u aangeeft tijdens het maken van de tabel. Aan de andere kant is de opslaggrootte van de varchar-waarde de werkelijke lengte van de ingevoerde gegevens, niet de maximale grootte voor deze kolom.
U kunt char gebruiken wanneer de gegevens in een kolom naar verwachting dezelfde grootte hebben, terwijl daarentegen varchar kan worden gebruikt wanneer de gegevensinvoer in een kolom naar verwachting in grootte zal variëren.
Char gebruikt statische geheugentoewijzing terwijl varchar dynamische geheugentoewijzing gebruikt
De lengte van een char-variabele kan elke waarde hebben van 0 tot 255, terwijl de lengte van de varchar-variabele varieert van 0 tot 65.535.
Gegevensitems zijn consistent in tekens die worden gebruikt voor het opslaan van gegevens zoals telefoonnummers, terwijl varchar wordt gebruikt voor het opslaan van verschillende gegevens zoals adressen.
verkolen | Varchar |
Gebruikt om tekenreekswaarde van vaste lengte op te slaan. | Gebruikt om alfanumerieke gegevens van variabele lengte op te slaan. |
De lengte varieert van 0 tot 255. | De lengte varieert van 0 tot 65.535. |
Neemt 1 byte per karakter voor opslag. | Neemt 1 byte per teken plus 1 of 2 extra bytes voor het opslaan van lengte-informatie. |
De opslaggrootte van char is hetzelfde als gedeclareerd. | De opslaggrootte van varchar is afhankelijk van de opgeslagen specifieke reeks. |
Gebruikt toewijzing van statisch geheugen. | Gebruikt dynamische geheugentoewijzing. |
Char moet worden gebruikt als de lengte van de variabele bekend is. | Varchar mag alleen worden gebruikt als de lengte van de variabele niet bekend is. |
Het accepteert alleen karakters. | Het accepteert zowel karakters als cijfers. |
Het is 50 procent sneller dan Varchar. | Het is langzamer dan Char. |
De opslaggrootte van de char-waarde is gelijk aan de maximale grootte voor de kolom. | De opslaggrootte van de varchar-waarde is gelijk aan de werkelijke lengte van de ingevoerde gegevens, niet de maximale grootte voor de kolom. |