Verschil tussen Char en Varchar

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.

Wat is Char?

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.

Wat is Varchar?

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.

Verschil tussen Char en Varchar

  1. Data type

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

  1. Opslag grootte

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.

  1. Gegevensinvoer

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.

  1. Geheugentoewijzing

Char gebruikt statische geheugentoewijzing terwijl varchar dynamische geheugentoewijzing gebruikt

  1. Lengte

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.

  1. Toepassing

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.

Char vs. Varchar

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.

Samenvatting

  • Zowel 'Char' als 'Varchar' zijn gegevenstypen in programmeertalen en databasesystemen die enkele gemeenschappelijke kenmerken delen op het gebied van functionaliteit en technische details. Ze verschillen echter aanzienlijk, zoals de manier waarop ze worden opgeslagen en opgehaald.
  • Terwijl char eigenlijk naar character verwijst, verwijst varchar naar een variabel karakter. Zoals de naam al doet vermoeden, is char een gegevenstype met een vaste lengte, terwijl varchar een datatype met variabele lengte is.
  • Char neemt tot 1 byte per teken op, terwijl varchar ook tot 1 byte per teken plus extra 1 of 2 bytes voor het opslaan van lengte-informatie. Voor char varieert de lengte van 0 tot 255 en voor varchar kan dit variëren van 0 tot 65.535.
  • Aangezien char van vaste lengte is, is alle resterende ruimte in het veld opgevuld met lege plekken. Varchar is daarentegen van variabele lengte, dus het bevat alleen de tekens die u eraan toewijst.
  • Resterende karakters zijn opgevuld met witte spaties wanneer de waarden zijn opgeslagen in 'char'-velden, terwijl' varchar 'geen extra spaties toevoegt wanneer u de minder gegevens dan opgegeven lengte levert.