Summary: I denne tutorial lærer du om PostgreSQL-tegndatatyperne, herunder CHAR, VARCHAR og TEXT, og lærer hvordan du vælger de rigtige tegntyper til dine tabeller.

Introduktion til PostgreSQL-tegntyperne

PostgreSQL tilbyder tre primære tegntyper: CHARACTER(n) eller CHAR(n), CHARACTER VARYINGING(n) eller VARCHAR(n) og TEXT, hvor n er et positivt heltal.

Den følgende tabel illstrate tegntyperne i PostgreSQL:

Karaktertyper Beskrivelse
CHARACTER VARYING(n), VARCHAR(n) variabel-længde med længdebegrænsning
CHARACTER(n), CHAR(n) fast længde, blankpolstret
TEXT, VARCHAR variabel ubegrænset længde

Både CHAR(n) og VARCHAR(n) kan lagre op til n tegn. Hvis du forsøger at gemme en streng, der har mere end n tegn, vil PostgreSQL udstede en fejl.

En undtagelse er dog, at hvis de overskydende tegn alle er mellemrum, afkorter PostgreSQL mellemrummene til den maksimale længde (n) og gemmer tegnene.

Hvis en streng eksplicit castes til en CHAR(n) eller VARCHAR(n), afkorter PostgreSQL strengen til n tegn, før den indsættes i tabellen.

Datatypen TEXT kan gemme en streng med ubegrænset længde.

Hvis du ikke angiver n heltal for datatypen VARCHAR, opfører den sig som datatypen TEXT. Ydelsen af VARCHAR (uden størrelsen n) og TEXT er den samme.

Den eneste fordel ved at angive længdeangivelsen for datatypen VARCHAR er, at PostgreSQL vil udstede en fejl, hvis du forsøger at indsætte en streng, der har mere end n tegn, i kolonnen VARCHAR(n).

I modsætning til VARCHAR er CHARACTER eller CHAR uden længdeangivelsen (n) det samme som CHARACTER(1) eller CHAR(1).

I modsætning til andre databasesystemer er der i PostgreSQL ingen ydelsesforskel mellem de tre tegentyper.

I de fleste tilfælde bør du bruge TEXTeller VARCHAR. Og du bruger VARCHAR(n), når du vil have PostgreSQL til at kontrollere længden.

PostgreSQL-tegntypeeksempler

Lad os tage et kig på et eksempel for at se, hvordan datatyperne CHAR , VARCHAR og TEXT fungerer.

Opret først en ny tabel kaldet character_tests:

Code language: SQL (Structured Query Language) (sql)

Indsæt derefter en ny række i tabellen character_tests.

Code language: SQL (Structured Query Language) (sql)

PostgreSQL udstedte en fejl:

Code language: SQL (Structured Query Language) (sql)

Dette skyldes, at datatypen for kolonnen x er char(1), og vi forsøgte at indsætte en streng med tre tegn i denne kolonne. Lad os rette den:

Code language: SQL (Structured Query Language) (sql)

PostgreSQL udsender en anden fejl:

Code language: Shell Session (shell)

Dette skyldes, at vi forsøgte at indsætte en streng med mere end 10 tegn i kolonnen y, der har datatypen varchar(10).

Den følgende anvisning indsætter en ny række i tabellen character_tests med succes.

Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Code language: Shell Session (shell)

Summary

  • PostgreSQL understøtter CHAR, VARCHAR og TEXT datatyperne CHAR, VARCHAR og TEXT. CHAR er en karaktertype med fast længde, mens VARCHAR og TEXT er karaktertyper med varierende længde.
  • Brug VARCHAR(n), hvis du vil validere strengenes længde (n), før du indsætter i eller opdaterer til en kolonne.
  • VARCHAR (uden længdeangivelsen) og TEXT er ækvivalente.
  • Var denne vejledning nyttig?
  • JaNej

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.