In dit gedeelte gaan we de werking van PostgreSQL varchar datatypes begrijpen, die ons toestaat om het karakter van onbeperkte lengte op te slaan. En we zien ook voorbeelden van het Varchar datatype en spaties.

Wat is PostgreSQL Varchar datatype?

In PostgreSQL, wordt het Varchar datatype gebruikt om het karakter van oneindige lengte te bewaren. En het kan een string bevatten met een maximale lengte van 65.535 bytes.

Met andere woorden, we kunnen zeggen dat het PostgreSQL Varchar datatype gebruik maakt van het karakter datatype, dat wordt aangeduid als VARCHAR.

  • Het meest moeten we gebruik maken van de Varchar en Text datatypes. Als we willen dat PostgreSQL controleert op de lengte, dan gebruiken we de VARCHAR(n).
  • In PostgreSQL wordt de varchar geïllustreerd als Varchar (n), waarbij n wordt gebruikt om de limiet van de karakterlengte aan te geven. Als n niet wordt beschreven, is de standaardinstelling Varchar dat oneindige lengte heeft.
  • Als we proberen om een langere string in de kolom gespecificeerd met Varchar(n), de PostgreSQL treedt een fout in de output.
  • Still, we hebben een uitzondering als de extra tekens zijn allemaal spaties, dan is de PostgreSQL zal trimmen de spaties tot de maximale lengte (n) en sla de string.
  • PostgreSQL zal controleren en een foutmelding geven als we de lengte specificatie voor het Varchar datatype definiëren of als we proberen meer dan n tekens in de Varchar(n) kolom in te voegen.

Note: Een varchar datatype is een variabele-lengte string die speciale tekens, cijfers, en letters kan bevatten. En n slaat tekst op waarvan de lengte maximaal 0 tot 65535 tekens kan hebben.

Syntax van PostgreSQL Varchar datatype

De syntax van het PostgreSQL Varchar datatype is als volgt:

Voorbeelden van PostgreSQL Varchar datatype

Laten we verschillende voorbeelden zien om te begrijpen hoe het PostgreSQL Varchar datatype werkt.

Daartoe maken we een nieuwe tabel met de naam Varchar_demo tabel met behulp van het CREATE commando en voegen we enkele waarden in met behulp van het INSERT commando.

We gaan Varchar_demo-tabellen maken in de Organization-database met behulp van de opdracht CREATE:

Output

Na succesvolle uitvoering van het bovenstaande commando is de tabel Varchar_demo aangemaakt, zoals te zien is in onderstaande afbeelding:

Nadat de tabel Varchar_demo is aangemaakt, gaan we er enkele waarden in invoegen met behulp van de opdracht INSERT.

Output

Na het uitvoeren van het bovenstaande commando krijgen we de volgende uitvoer, PostgreSQL geeft een foutmelding dat “de waarde te lang is voor het type karakter variërend (1)”.

Dit betekent dat het gegevenstype van de P-kolom VARCHAR (1) is, en dat we proberen een tekenreeks van drie tekens in een bepaalde kolom in te voegen, zoals we in de onderstaande schermafbeelding kunnen zien:

Om de bovenstaande fout op te lossen, gebruiken we het volgende commando:

Output

Bij het uitvoeren van het bovenstaande commando geeft PostgreSQL opnieuw een soortgelijke fout voor de Q-kolom, wat betekent dat het gegevenstype van de Q-kolom VARCHAR (10) is. Het aantal ingevoerde tekens is echter meer dan 10, zoals we kunnen zien in de onderstaande schermafbeelding:

Om beide bovenstaande fouten op te lossen, gebruiken we dus het onderstaande commando:

Output

Na uitvoering van het bovenstaande commando krijgen we het volgende resultaat: de waarde is met succes ingevoegd in de tabel Varchar_demo.

Zoals we in de bovenstaande schermafbeelding kunnen zien, hebben we de waarden van de kolommen P en Q met succes ingevoegd.

Nadat we de waarden van de Varchar_demo-tabel hebben gemaakt en ingevoerd, gebruiken we het SELECT-commando om alle rijen van de Varchar_demo-tabel terug te geven:

Uitvoer

Nadat we het bovenstaande commando hebben uitgevoerd, krijgen we het volgende resultaat, waarin we kunnen zien dat zowel de waarden van kolom P als die van kolom Q met succes in de Varchar_demo-tabel zijn ingevoerd.

Voorbeeld 2

Laten we nog een voorbeeld bekijken om het Varchar gegevenstype in detail te leren kennen. We maken een nieuwe tabel aan als Varchar_demo2 met behulp van het CREATE commando en voegen enkele waarden in met het INSERT commando.

Wij gaan Varchar_demo2 maken in een soortgelijke database als hierboven die is georganiseerd met behulp van de opdracht CREATE:

Uitvoer

De tabel Varchar_demo2 is met succes gemaakt na het uitvoeren van de bovenstaande opdracht, zoals te zien is in de onderstaande schermafbeelding:

Als de tabel Varchar_demo2 eenmaal is gegenereerd, kunnen we er enkele waarden in invoegen met behulp van de opdracht INSERT.

Uitvoer

Na uitvoering van bovenstaand commando. PostgreSQL geeft de foutmelding “de waarde is te lang voor het type Character (1)”. De uitvoer legt het duidelijker uit.

Voorbeeld van PostgreSQL VARCHAR en Spaties

PostgreSQL breidt de ruimte voor varchar-waarden niet uit wanneer ze worden opgeslagen, en PostgreSQL neemt ook de achterliggende spaties mee wanneer ze Varchar-waarden opslaat of herstelt.

Om dit te begrijpen, zullen we het onderstaande voorbeeld bekijken waarin het Insert commando wordt gebruikt, en we voegen waarden toe in de kolom Name in de tabel Varchar_demo2, die we in het bovenstaande voorbeeld hebben gemaakt:

Output

Na het uitvoeren van het bovenstaande commando, krijgen we het volgende resultaat: de waarde is met succes ingevoegd in de tabel Varchar_demo2.

Nadat we de waarden in de tabel Varchar_demo2 hebben gecreëerd en ingevoegd, gebruiken we het SELECT-commando om de waarden uit de tabel Varchar_demo2 op te halen:

Uitvoer

Nadat we het bovenstaande commando hebben uitgevoerd, krijgen we het volgende resultaat waarbij PostgreSQL de nalopende spatie bij het tellen van de lengte meerekent omdat de kolomlengte hierdoor niet toeneemt.

Als we proberen een Varchar-waarde in te voegen met spaties die de kolomlengte overschrijden, dan zal PostgreSQL de spaties afkappen. Ook zal PostgreSQL een waarschuwing geven. Zoals we in het onderstaande voorbeeld hebben gezien:

Output

Bij het uitvoeren van het bovenstaande commando krijgen we het volgende resultaat:

In het bovenstaande commando is de ingevoegde waardelengte zes in de kolom Name. En de waarde wordt nog steeds in de kolom ingevoegd. PostgreSQL knipt echter de spatie weg voordat de waarde wordt toegevoegd.

We kunnen dit controleren met de hulp van het volgende commando, waarbij de opdracht Insert met succes wordt toegevoegd.

Uitvoer

Nadat we het bovenstaande commando hebben uitgevoerd, krijgen we de onderstaande uitvoer met nog steeds een waarschuwing die luidt: Data truncated for column ‘Name’ at row 1:

Verschil tussen PostgreSQL CHAR en PostgreSQL VARCHAR Data Type

De PostgreSQL CHAR en VARCHAR data types volgen beide ASCII karakter. Ze zijn praktisch gelijk maar verschillend in het opslaan en verkrijgen van de gegevens uit de database.

De volgende tabel laat de essentiële verschillen zien tussen CHAR en VARCHAR data type:

PostgreSQL CHAR data type PostgreSQL VARCHAR data type
PostgreSQL ondersteunt statische geheugentoewijzing voor het Char data type. PostgreSQL ondersteunt dynamische geheugentoewijzing voor het gegevenstype Varchar.
Het gegevenstype Char is ook bekend als Character. Het gegevenstype Varchar wordt ook wel Variable Character genoemd.
Het gegevenstype char kan niet meer dan 255 tekens bevatten. Het gegevenstype Varchar kan maximaal 65535 tekens bevatten.
Het gegevenstype Char slaat de waarden op in een vaste lengte, die we weergeven bij het maken van een tabel. Het gegevenstype Varchar slaat de waarden op in een tekenreeks met variabele lengte met een of twee-byte lengte prefix.
Het kan worden opgevuld met een spatie achteraan om de opgegeven lengte te bevatten. Het kan niet worden opgevuld met een teken, met spatie, wanneer ze worden opgeslagen.

Overzicht

In de PostgreSQL Varchar datatype sectie, hebben we geleerd de volgende onderwerpen:

  • De Varchar datatype gebruikt voor verschillende lengte karakter typen.
  • Als we de lengte van de string (n) willen controleren voordat we deze in de kolom invoegen of bijwerken, kunnen we het Varchar(n) datatype gebruiken.
  • We gebruiken het PostgreSQL Varchar datatype en spaties.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.