Varchar vs Texto en PostgreSQL
-
el tipo de datos
TEXTO
en PostgreSQL -
el tipo de datos
VARCHAR
en PostgreSQL -
VARCHAR
vsTEXT
en PostgreSQL
Existen múltiples tipos de datos en PostgreSQL para almacenar diferentes tipos de datos como números enteros, fechas, cadenas, etc. Sin embargo, el tipo de datos cadena
tiene tres tipos principales en PostgreSQL: CHAR
, VARCHAR
y TEXT
.
En este artículo, discutiremos el VARCHAR
y el TEXT
en detalle y compararemos sus diferencias.
el tipo de datos TEXTO
en PostgreSQL
El tipo de datos no tiene límite en la cantidad de texto
que puede almacenar. Por lo tanto, puede insertar el texto
de cualquier tipo en el campo con este tipo de datos, y no mostrará ningún error.
Se utiliza una palabra clave simple TEXT
con el nombre de la variable que precede a la palabra clave para declarar un campo de este tipo de datos. A continuación se explica en detalle utilizando algunos ejemplos.
CREATE TABLE text_example (
id int PRIMARY KEY,
data TEXT NOT NULL
);
Esta tabla tiene INT
y TEXT
como dos tipos de datos para almacenar datos. Ahora vamos a insertar algunos datos.
INSERT INTO text_example
VALUES
(1,' This text has no size limit because stored in TEXT datatype');
SELECT * FROM text_example;
El siguiente resultado muestra que se almacenó con éxito en la variable, razón por la cual se usa el tipo de datos TEXT
en la mayoría de los casos.
el tipo de datos VARCHAR
en PostgreSQL
Este tipo de datos tiene dos variantes. VARCHAR
, también llamado variación de caracteres (n
), y VARCHAR(n)
. VARCHAR
básicamente funciona como el tipo de datos TEXT
con un nombre diferente si no se define un especificador de longitud.
Como no se define ningún límite, puede almacenar texto
ilimitado en él. Podemos demostrarlo fácilmente usando el ejemplo anterior y cambiando el tipo de datos TEXT
a VARCHAR
.
CREATE TABLE varchar_example (
id int PRIMARY KEY,
data VARCHAR NOT NULL
);
Esta tabla tiene INT
y VARCHAR
como dos tipos de datos para almacenar datos. Ahora vamos a insertar algunos datos.
INSERT INTO varchar_example
VALUES
(1,' This text has no size limit because stored in VARCHAR datatype');
SELECT * FROM varchar_example;
El siguiente resultado muestra que se almacenó con éxito en la variable:
Como podemos ver, los datos se insertan correctamente, al igual que el tipo de datos TEXT
.
Ahora, llegando a VARCHAR(n)
, las cosas se ponen un poco interesantes ya que ahora puede limitar la cantidad de caracteres insertados en VARCHAR(n)
el tipo de datos. Se mostrará un error si intenta almacenar más de n
caracteres en un tipo de datos VARCHAR(n)
.
Sin embargo, si los caracteres insertados (que exceden el límite) son todos espacios, entonces no habrá error, y esos espacios se truncarán con la cadena
. Se puede demostrar a través de ejemplos de código y sus resultados de la siguiente manera:
CREATE TABLE Nvarchar_example (
id int PRIMARY KEY,
data VARCHAR(15) NOT NULL
);
Esta tabla tiene INT
y VARCHAR(n)
como dos tipos de datos para almacenar datos. Ahora vamos a insertar algunos datos.
INSERT INTO Nvarchar_example VALUES (1, 'Size is fifteen');
SELECT * FROM Nvarchar_example;
El siguiente resultado muestra que se almacenó con éxito en la variable:
Como puede ver, no excedimos el límite especificado en este caso. Por lo tanto, almacenamos con éxito la cadena
. Sin embargo, el siguiente ejemplo demostrará lo que sucederá si esa no es la situación.
CREATE TABLE Nvarchar_example2 (
id int PRIMARY KEY,
data VARCHAR(10) NOT NULL
);
Ahora vamos a insertar algunos datos.
INSERT INTO Nvarchar_example2 VALUES (1, 'Size is fifteen');
La salida, como puede ver, muestra un error con respecto al tamaño del tipo de datos:
Una razón importante para usar VARCHAR
es que le permite restringir la cantidad de caracteres en un tipo de datos. Es útil cuando necesita restringir la inserción de una cadena
.
PostgreSQL arrojará un error que impide agregar más caracteres que el límite definido por el especificador de longitud.
VARCHAR
vs TEXT
en PostgreSQL
Ahora, después de describir sus características arriba, creemos que podrá juzgar más claramente cuándo y cuándo no usar cualquiera de estos tipos de datos. Finalmente, discutiremos algunos escenarios comunes para fortalecer su comprensión.
En otras bases de datos, hay un gran impacto en el rendimiento cuando se usa cualquiera de estos tipos de datos, pero en PostgreSQL, no hay ninguna diferencia de rendimiento notable entre los dos tipos.
Puede haber algo de espacio de almacenamiento aumentado o algunos ciclos de CPU
adicionales involucrados para validar el límite del especificador de longitud antes de insertar, pero eso es insignificante.
Como no hay un beneficio de rendimiento real que involucre a los dos tipos de datos, el único punto fundamental y esencial es si desea limitar el tamaño de los caracteres que se insertan o no.
El VARCHAR(n)
proporciona validación y PostgreSQL mostrará un mensaje de error si cruza el límite definido.
Aparte de eso, no se recomienda usar VARCHAR
normal sobre TEXT
, ya que ambos brindan funcionalidades equivalentes, y TEXT
tiene un nombre diferente que es fácil de recordar y está asociado con una longitud de cadena ilimitada.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub