Char vs. Varar

Char vs. Varar
Los tipos de datos de Char y Varchar en SQL son los más prominentes, ya que nos permiten almacenar datos de cadenas.

Este tutorial repasará cada tipo de datos y describirá la diferencia.

El tipo de char SQL

El tipo de char se refiere a un tipo de datos utilizado para almacenar cadenas de caracteres de una longitud fija.

El tipo de char le permite especificar un tamaño específico para los datos que inserta en esa fila.

Aunque la implementación del tipo de char puede variar ligeramente de acuerdo con el motor de la base de datos, en SQL estándar, el tipo de char puede mantener hasta un máximo de 8000 caracteres no unicodos.

Para definir una longitud de un tipo de char, puede usar la sintaxis:

char (n)

Donde n se refiere al número (longitud) de los caracteres que puede almacenar.

Dado que el tipo de char es de longitud fija, si inserta una cadena con menos caracteres que el tamaño especificado, la cadena está acolchada con espacios adicionales para que coincidan con la cadena establecida.

Del mismo modo, si inserta una cadena de mayor longitud que el tamaño establecido, la cadena se trunca al tamaño de establecimiento.

Para ilustrar, comience creando una base de datos de muestra:

Tenga en cuenta que en este ejemplo, usamos PostgreSQL, pero puede elegir cualquier sabor SQL.

$ PSQL -U Postgres

Cree una base de datos de muestra:

Postgres =# Crear base de datos sample_db;

Conectarse a la base de datos.

Postgres =# \ c sample_db

Crear una mesa con dos filas. El primero debe ser una identificación con auto-incremento (serie) y el otro del tipo de char.

Crear tabla char_v_varchar (ID serial, full_name char (15))

Tenga en cuenta que la longitud máxima de la columna Full_Name es 15.

Permítanos agregar ahora algunos datos de muestra.

insertar en Char_v_varchar (Full_Name) valores ('Aaron Wise'); - 10 caracteres
insertar en Char_v_varchar (Full_Name) valores ('Aaron Wise Jack'); - 15 caracteres
Insertar en Char_v_varchar (Full_Name) valores ('Aaron Wise Otro nombre bla'); - Más de 15 caracteres

Presta atención a las tres declaraciones de inserto. El primero inserta un valor de 10 caracteres, el segundo agrega un valor de exactamente 15 caracteres y el otro agrega un valor de caracteres mayores de 15.

El primer valor se acolchará con 5 caracteres más espaciales para maximizar la longitud establecida si ejecutamos el código anterior.

El segundo encajará perfectamente, y el tercero será truncado.

Agregar un valor mayor que la longitud del conjunto está prohibido en algunos motores de base de datos. Por ejemplo, en PostgreSQL, la segunda declaración de inserción fallará con un error:

Error: valor demasiado largo para el tipo de personaje (15)
Estado de SQL: 22001

Para verificar la longitud de los registros, podemos ejecutar la consulta:

Seleccione Longitud (Full_Name) de char_v_varchar;

El código anterior debe devolver la longitud de cada fila en la tabla:

longitud
--------
15
15
(2 filas)

Tenga en cuenta que en algunos motores de base de datos puede permitirle agregar un valor de menor longitud sin relleno con espacios adicionales.

Es bueno recordar que el tipo de char usa 1 byte para un carácter insertado.

El tipo SQL Varchar

A diferencia del tipo de caracteres Char, Varchar o variable, almacena cadenas de caracteres de diferentes longitudes.

Esto significa que puede definir el tamaño de la columna Varchar. Sin embargo, puede agregar valores de tamaño mayores o menos que la longitud del conjunto.

Tomemos un ejemplo a continuación:

crear tabla char_v_varchar (id de serial, full_name varchar);

En este caso, definimos una tabla con la columna de Varchar. Dado que el tamaño de Varchar puede variar, no necesitamos establecer una longitud.

Luego podemos insertar tres valores de tamaño variable como:

insertar en Char_v_varchar (Full_Name) valores ('Aaron Wise'); - 10 caracteres
insertar en Char_v_varchar (Full_Name) valores ('Aaron Wise Jack'); - 15 caracteres
Insertar en Char_v_varchar (Full_Name) valores ('Aaron Wise Otro nombre bla'); - Más de 15 caracteres
Seleccione Longitud (Full_Name) de char_v_varchar;

El código anterior debe insertar tres registros y devolver el tamaño de cada.

Pensamientos finales

Esto entonces está en la diferencia entre un tipo Char y Varchar. Un Char contiene cadenas de caracteres de tamaño fijo, mientras que un Varchar contiene una cadena de caracteres de longitudes variables.

Aunque el VARCHAR puede parecer aplicable para la mayoría de las situaciones, puede incurrir en éxitos de rendimiento significativos si se usa de manera irrazonable. Por lo tanto, si el rendimiento es un factor crítico para su base de datos, considere usar un char, a menos que sea necesario.