GeeksforGeeks

Ahora que estamos familiarizados con el concepto de tipos de datos de caracteres CHAR, VARCHAR y TEXT respectivamente en PostgreSQL, este artículo se centrará en resaltar la diferencia clave entre ellos.

¿Qué es el tipo de datos CHAR?
Este tipo de datos se utiliza para almacenar caracteres de longitud limitada. Se representa como char(n) o character(n) en PostgreSQL, donde n representa el límite de la longitud de los personajes.Si no se especifica n, el valor predeterminado es char(1) o character(1).

¿Qué es el tipo de datos VARCHAR?
Este tipo de datos se utiliza para almacenar caracteres de longitud limitada. Se representa como varchar(n) en PostgreSQL, donde n representa el límite de la longitud de los caracteres. Si no se especifica n, el valor predeterminado es varchar , que tiene una longitud ilimitada.

¿Qué es el tipo de datos de TEXTO?
Este tipo de datos se utiliza para almacenar caracteres de longitud ilimitada. Se representa como text en PostgreSQL. El rendimiento del varchar (sin n) y el texto son los mismos.

La siguiente tabla proporciona la diferencia principal entre CHAR, VARCHAR y TEXTO:

Comparison CHAR VARCHAR TEXT
Syntax CHAR(n) VARCHAR(n) TEXT
Representation char(n) or character(n) varchar(n) text
Length of characters Limited Limited Unlimited
Spaces and padding Gets truncado Se trunca Se mantiene intacto
Si n no se especifica n = 1 n = infinito El concepto de n no existe
Ciclo de consulta Ciclo extra para comprobar la longitud Ciclo extra para comprobar la longitud length

Ejemplo:
Vamos a crear una nueva tabla(por ejemplo, pruebas de caracteres) para la demostración utilizando los siguientes comandos:

CREATE TABLE character_tests ( id serial PRIMARY KEY, x CHAR (1), y VARCHAR (10), z TEXT);

Ahora insertemos una nueva fila en la tabla char_test usando el siguiente comando:

INSERT INTO character_tests (x, y, z)VALUES ( 'Geeks', 'This is a test for varchar', 'This is a very long text for the PostgreSQL text column' );

En esta etapa PostgreSQL generará un error ya que el tipo de datos de la columna x es char(1) e intentamos insertar una cadena con tres caracteres en esta columna como se muestra a continuación:

ERROR: value too long for type character(1)

Así que, ahora vamos a arreglarlo.

INSERT INTO character_tests (x, y, z)VALUES ( 'G', 'This is a test for varchar', 'This is a very long text for the PostgreSQL text column' );

Ahora, vamos a obtener el mismo error de la y de columna como el número de caracteres especificado es mayor que 10, como se muestra a continuación:

ERROR: value too long for type character(10)

Vamos a solucionarlo también.

INSERT INTO character_tests (x, y, z)VALUES ( 'Y', 'varchar(n)', 'This is a very long text for the PostgreSQL text column' );

Ahora que hemos logrado asignar correctamente los valores al tipo de datos de carácter, compruébelo ejecutando el siguiente comando:

SELECT * FROM character_tests;

Salida:

Article Tags :

Deja una respuesta

Tu dirección de correo electrónico no será publicada.