Samenvatting: in deze tutorial leert u over de PostgreSQL karakter datatypes waaronder CHAR
, VARCHAR
, en TEXT
, en leert u hoe u de juiste karakter types voor uw tabellen selecteert.
Inleiding tot de PostgreSQL karakter types
PostgreSQL biedt drie primaire karakter types: CHARACTER(n)
of CHAR(n)
, CHARACTER VARYINGING(n)
of VARCHAR(n)
, en TEXT
, waarbij n
een positief geheel getal is.
De volgende tabel geeft een illstratie van de karakter types in PostgreSQL:
Character Types | Description |
CHARACTER VARYING(n) , VARCHAR(n) |
variable-length with length limit |
CHARACTER(n) , CHAR(n) |
|
TEXT , VARCHAR |
variabele onbeperkte lengte |
Zowel CHAR(n)
als VARCHAR(n)
kunnen maximaal n
tekens opslaan. Als u probeert een string op te slaan die meer dan n
tekens bevat, zal PostgreSQL een foutmelding geven.
Een uitzondering is echter dat als de overtollige tekens allemaal spaties zijn, PostgreSQL de spaties afkapt tot de maximale lengte (n
) en de tekens opslaat.
Als een string expliciet wordt gecast naar een CHAR(n)
of VARCHAR(n)
, zal PostgreSQL de string trunceren tot n
tekens voordat deze in de tabel wordt ingevoegd.
Het TEXT
datatype kan een string met onbeperkte lengte opslaan.
Als u het n-getal niet opgeeft voor het VARCHAR
datatype, gedraagt het zich als het TEXT
datatype. De prestaties van de VARCHAR
(zonder de grootte n
) en TEXT
zijn hetzelfde.
Het enige voordeel van het specificeren van de lengte voor het VARCHAR
data type is dat PostgreSQL een fout zal geven als u probeert een string in te voegen die meer dan n
karakters heeft in de VARCHAR(n)
kolom.
In tegenstelling tot VARCHAR
, is de CHARACTER
of CHAR
zonder de lengte specificatie (n
) hetzelfde als de CHARACTER(1)
of CHAR(1)
.
In tegenstelling tot andere database systemen, is er in PostgreSQL geen verschil in prestatie tussen de drie karakter types.
In de meeste gevallen, zou u TEXT
of VARCHAR
moeten gebruiken. En u gebruikt de VARCHAR(n)
wanneer u wilt dat PostgreSQL de lengte controleert.
PostgreSQL karakter type voorbeelden
Laten we eens kijken naar een voorbeeld om te zien hoe de CHAR
, VARCHAR
, en TEXT
datatypes werken.
Maak eerst een nieuwe tabel aan met de naam character_tests:
Code language: SQL (Structured Query Language) (sql)
Voeg vervolgens een nieuwe rij in in de tabel character_tests
.
Code language: SQL (Structured Query Language) (sql)
PostgreSQL geeft een foutmelding:
Code language: SQL (Structured Query Language) (sql)
Dit komt omdat het datatype van de kolom x
char(1)
is en we hebben geprobeerd een string met drie tekens in deze kolom in te voegen. Laten we het oplossen:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL geeft een andere foutmelding:
Code language: Shell Session (shell)
Dit komt omdat we geprobeerd hebben een string met meer dan 10 tekens in te voegen in de kolom y
die het datatype varchar(10)
heeft.
Het volgende statement voegt met succes een nieuwe rij in de character_tests
tabel in.
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Code language: Shell Session (shell)
Samenvatting
- PostgreSQL ondersteunt
CHAR
,VARCHAR
, enTEXT
datatypes. DeCHAR
is een karakter type met een vaste lengte, terwijl deVARCHAR
enTEXT
karakter types zijn met een variabele lengte. - Gebruik
VARCHAR(n)
als u de lengte van de string (n
) wilt valideren voor het invoegen in of bijwerken naar een kolom. -
VARCHAR
(zonder de lengte-specier) enTEXT
zijn gelijkwaardig.
- Was deze handleiding nuttig ?
- JaNee