Resumen: en este tutorial, usted aprenderá sobre los tipos de datos de caracteres de PostgreSQL incluyendo CHAR
, VARCHAR
, y TEXT
, y aprenderá a seleccionar los tipos de caracteres correctos para sus tablas.
Introducción a los tipos de caracteres de PostgreSQL
PostgreSQL proporciona tres tipos de caracteres primarios: CHARACTER(n)
o CHAR(n)
, CHARACTER VARYINGING(n)
o VARCHAR(n)
, y TEXT
, donde n
es un entero positivo.
La siguiente tabla illstrate los tipos de caracteres en PostgreSQL:
Tipos de caracteres | Descripción |
CHARACTER VARYING(n) , VARCHAR(n) |
longitud variable con límite de longitud |
CHARACTER(n) , CHAR(n) |
longitud fija, con relleno en blanco |
TEXT , VARCHAR |
variable de longitud ilimitada |
Tanto CHAR(n)
como VARCHAR(n)
pueden almacenar hasta n
caracteres. Si intenta almacenar una cadena que tenga más de n
caracteres, PostgreSQL emitirá un error.
Sin embargo, una excepción es que si los caracteres excesivos son todos espacios, PostgreSQL trunca los espacios hasta la longitud máxima (n
) y almacena los caracteres.
Si una cadena se convierte explícitamente en CHAR(n)
o VARCHAR(n)
, PostgreSQL truncará la cadena a n
caracteres antes de insertarla en la tabla.
El tipo de datos TEXT
puede almacenar una cadena con longitud ilimitada.
Si no se especifica el número entero n para el tipo de datos VARCHAR
, se comporta como el tipo de datos TEXT
. El rendimiento de la VARCHAR
(sin el tamaño n
) y TEXT
es el mismo.
La única ventaja de especificar el especificador de longitud para el tipo de datos VARCHAR
es que PostgreSQL emitirá un error si se intenta insertar una cadena que tenga más de n
caracteres en la columna VARCHAR(n)
.
A diferencia de VARCHAR
, El CHARACTER
o CHAR
sin el especificador de longitud (n
) es el mismo que el CHARACTER(1)
o CHAR(1)
.
A diferencia de otros sistemas de bases de datos, en PostgreSQL, no hay diferencia de rendimiento entre tres tipos de caracteres.
En la mayoría de los casos, debe utilizar TEXT
o VARCHAR
. Y se utiliza el VARCHAR(n)
cuando se quiere que PostgreSQL compruebe la longitud.
Ejemplos de tipos de caracteres de PostgreSQL
Veamos un ejemplo para ver cómo funcionan los tipos de datos CHAR
, VARCHAR
y TEXT
.
Primero, cree una nueva tabla llamada character_tests:
Code language: SQL (Structured Query Language) (sql)
Luego, inserte una nueva fila en la tabla character_tests
.
Code language: SQL (Structured Query Language) (sql)
PostgreSQL emitió un error:
Code language: SQL (Structured Query Language) (sql)
Esto se debe a que el tipo de datos de la columna x
es char(1)
e intentamos insertar una cadena con tres caracteres en esta columna. Vamos a solucionarlo:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL emite un error diferente:
Code language: Shell Session (shell)
Esto se debe a que intentamos insertar una cadena con más de 10 caracteres en la columna y
que tiene el tipo de dato varchar(10)
.
La siguiente sentencia inserta una nueva fila en la tabla character_tests
con éxito.
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Code language: Shell Session (shell)
Resumen
- PostgreSQL soporta los tipos de datos
CHAR
,VARCHAR
yTEXT
. ElCHAR
es un tipo de carácter de longitud fija mientras que elVARCHAR
y elTEXT
son tipos de carácter de longitud variable. - Use
VARCHAR(n)
si desea validar la longitud de la cadena (n
) antes de insertar o actualizar en una columna. -
VARCHAR
(sin el especificador de longitud) yTEXT
son equivalentes.
- ¿Ha sido útil este tutorial?
- SíNo