I det här avsnittet kommer vi att förstå hur PostgreSQL varchar-datatyper fungerar, vilket gör det möjligt för oss att lagra tecken av obegränsad längd. Och vi ser också exempel på datatypen Varchar och mellanslag.

Vad är PostgreSQL Varchar datatyp?

I PostgreSQL används datatypen Varchar för att lagra tecknet av oändlig längd. Och den kan hålla en sträng med en maximal längd på 65 535 bytes.

Med andra ord kan vi säga att PostgreSQL Varchar-datatypen använder tecken-datatypen, som betecknas som VARCHAR.

  • Mestadels bör vi använda datatyperna Varchar och Text. Om vi vill att PostgreSQL ska kontrollera längden använder vi VARCHAR(n).
  • I PostgreSQL illustreras varchar som Varchar (n), där n används för att beteckna gränsen för teckenets längd. Om n inte beskrivs är standardvärdet Varchar som har oändlig längd.
  • Om vi försöker få en längre sträng i kolumnen som anges med Varchar(n), uppstår ett fel i PostgreSQL:s utdata.
  • Sedan har vi ett undantag om de extra tecknen är alla mellanslag, då kommer PostgreSQL att trimma mellanslagen till den maximala längden (n) och lagra strängen.
  • PostgreSQL kontrollerar och ger upphov till ett fel om vi definierar längdspecifikationen för datatypen Varchar eller om vi försöker infoga mer än n tecken i kolumnen Varchar(n).

Anmärkning: En varchar-datatyp är en sträng med variabel längd som kan innehålla specialtecken, siffror och bokstäver. Och n lagrar text vars längd kan ha maximalt 0 till 65535 tecken.

Syntax för PostgreSQL Varchar-datatypen

Syntaxen för PostgreSQL Varchar-datatypen är följande:

Exempel på PostgreSQL Varchar-datatypen

Låtsas vi se olika exempel för att förstå hur PostgreSQL Varchar-datatypen fungerar.

För detta kommer vi att skapa en ny tabell med namnet Varchar_demo table med hjälp av kommandot CREATE och infoga några värden med hjälp av kommandot INSERT.

Vi kommer att skapa tabeller av typen Varchar_demo i databasen Organization med hjälp av kommandot CREATE:

Output

När kommandot ovan har utförts har tabellen Varchar_demo skapats, vilket visas i nedanstående bild:

När tabellen Varchar_demo har skapats kommer vi att infoga några värden i den med kommandot INSERT.

Output

När vi genomfört ovanstående kommando får vi följande utdata, PostgreSQL kommer att utfärda ett felmeddelande om att ”the value is too long for type character varying (1)”.

Det innebär att datatypen för kolumnen P är VARCHAR (1), och där vi försöker infoga en sträng med tre tecken i en viss kolumn som vi kan observera i skärmbilden nedan:

För att lösa ovanstående fel använder vi följande kommando:

Output

När vi utför ovanstående kommando ger PostgreSQL ett liknande fel för Q-kolumnen, vilket innebär att Q-kolumnens datatyp är VARCHAR (10). Däremot är antalet inmatade tecken mer än 10, vilket vi kan observera i nedanstående skärmdump:

För att lösa båda ovanstående felen kommer vi därför att använda nedanstående kommando:

Output

Efter att ha exekverat ovanstående kommando kommer vi att få följande resultat: Värdet har lagts in framgångsrikt i tabellen Varchar_demo.

Som vi kan se i skärmdumpen ovan har vi lyckats infoga kolumnernas P- och Q-värden.

Efter att ha skapat och infogat värdena i tabellen Varchar_demo kommer vi att använda kommandot SELECT för att returnera alla rader i tabellen Varchar_demo:

Output

Efter att ha genomfört kommandot ovan kommer vi att få följande resultat där vi kan se att både värdena i kolumnen P och kolumnen Q har infogats framgångsrikt i tabellen Varchar_demo.

Exempel 2

Låt oss se ytterligare ett exempel för att lära oss datatypen Varchar i detalj. Vi skapar en ny tabell som Varchar_demo2 med hjälp av kommandot CREATE och lägger in några värden med kommandot INSERT.

Vi kommer att skapa Varchar_demo2 i en liknande databas som ovan som är Organization med hjälp av kommandot CREATE:

Output

Tabellen Varchar_demo2 har skapats med framgång efter att ha utfört kommandot ovan, vilket visas i nedanstående skärmdump:

När tabellen Varchar_demo2 har skapats kan vi infoga några värden i den med kommandot INSERT.

Output

Efter att ha implementerat ovanstående kommando. PostgreSQL ger felmeddelandet ”the value is too long for type Character (1)”. Utmatningen förklarar det tydligare.

Exempel på PostgreSQL VARCHAR och Spaces

PostgreSQL utökar inte utrymmet för varchar-värden när de lagras, och PostgreSQL tar också de avslutande mellanslagen när de lagrar eller återskapar Varchar-värden.

För detta kommer vi att se nedanstående exempel för att förstå det där kommandot Insert, och vi lägger till värden i kolumnen Name i tabellen Varchar_demo2, som vi skapade i exemplet ovan:

Output

Efter att ha exekverat kommandot ovan kommer vi att få följande resultat: Värdet har lagts in framgångsrikt i tabellen Varchar_demo2.

Efter att ha skapat och infogat värdena i tabellen Varchar_demo2 kommer vi att använda kommandot SELECT för att hämta värdena från tabellen Varchar_demo2:

Output

Efter att ha genomfört ovanstående kommando får vi följande resultat där PostgreSQL innehåller det avslutande mellanslaget i räkningen av längden eftersom det inte ökar kolonnens längd.

Om vi försöker infoga ett Varchar värde med efterföljande mellanslag som överstiger kolumnlängden och PostgreSQL kommer att avbryta de efterföljande mellanslagen. PostgreSQL ger också en varning. Som vi har visat i nedanstående exempel:

Output

När vi utför ovanstående kommando får vi nedanstående resultat:

I ovanstående kommando är det infogade värdet längd sex i kolumnen Name. Och värdet är fortfarande infogat i kolumnen. PostgreSQL skär dock av det avslutande mellanslaget innan värdet läggs till.

Vi kan kontrollera det med hjälp av följande kommando, där Insert-kommandot läggs till framgångsrikt.

Output

Efter att ha implementerat ovanstående kommando får vi nedanstående utdata, fortfarande med en varning som är: Data truncated for column ’Name’ at row 1:

Skillnaden mellan PostgreSQL CHAR och PostgreSQL VARCHAR-datatypen

PostgreSQL CHAR och VARCHAR-datatyperna följer båda ASCII-tecken. De är praktiskt taget likadana men skiljer sig åt när det gäller att lagra och hämta data från databasen.

Nedanstående tabell belyser de väsentliga skillnaderna mellan datatyperna CHAR och VARCHAR:

PostgreSQL CHAR-datatatyp PostgreSQL VARCHAR-datatyp
PostgreSQL har stöd för statisk minnesallokering för datatypen Char. PostgreSQL stöder dynamisk minnesallokering för datatypen Varchar.
Datatypen Char är också känd som Character. Datatypen Varchar kallas också Variable Character.
Datatypen Char kan inte rymma mer än 255 tecken. Datatypen Varchar kan rymma upp till 65535 tecken.
Datatypen Char lagrar värdena i fast längd, som vi representerar när vi skapar en tabell. Datatypen Varchar lagrar värdena i en sträng med variabel längd med ett prefix på en eller två byte.
Den kan fyllas med efterföljande mellanslag för att innehålla den angivna längden. Den kan inte fyllas med något tecken, med mellanslag, när de lagras.

Översikt

I avsnittet PostgreSQL Varchar-datatyp har vi lärt oss följande ämnen:

  • Varchar-datatypen använder för teckentyper med varierande längd.
  • Om vi vill kontrollera längden på strängen (n) innan vi infogar eller uppdaterar den i kolumnen kan vi använda datatypen Varchar(n).
  • Vi använder PostgreSQLs datatyp Varchar och mellanslag.

Lämna ett svar

Din e-postadress kommer inte publiceras.