SQL

Tipos de datos CHAR de SQL Server

Estrada Web Group
Estrada Web Group
Tipos de datos CHAR de SQL Server

Resumen: en este tutorial, aprenderás a usar el tipo de datos CHAR de SQL Server para almacenar cadenas de caracteres no Unicode de longitud fija en la base de datos.

Introducción al tipo de datos CHAR de SQL Server

Si deseas almacenar datos de cadena no Unicode de longitud fija, se recomienda usar el tipo de datos CHAR de SQL Server:

CHAR(n)

En la sintaxis anterior, n especifica la longitud de la cadena que va de 1 a 8000.

Debido a que n es opcional, si no lo especificas en una declaración de definición de datos o declaración de variable, su valor predeterminado es 1.

Debes usar el tipo de datos CHAR solo cuando los tamaños de los valores en la columna son fijos.

Cuando insertas un valor de cadena en una columna CHAR, si la longitud del valor de la cadena es menor que la longitud especificada en la columna, SQL Server agregará espacios al final de la columna. Sin embargo, cuando seleccionas este valor de cadena, SQL Server elimina los espacios finales antes de devolverlo.

Por otro lado, si insertas un valor cuya longitud excede la longitud de la columna, SQL Server emite un mensaje de error.

"Ten en cuenta que el sinónimo ISO para CHAR es CHARACTER, por lo que puede usarlos indistintamente."

Ejemplo de tipo de datos CHAR de SQL Server

La siguiente declaración crea una nueva tabla que contiene una columna CHAR:

CREATE TABLE test.sql_server_char (
    val CHAR(3)
);

Ten en cuenta que si no tienes el esquema (schema) test en la base de datos, puedes crearlo usando la siguiente instrucción antes de crear la tabla sql_server_char:

CREATE SCHEMA test;
GO

Para insertar una cadena de caracteres de longitud fija en la columna CHAR, usa la declaración INSERT de la siguiente manera:

INSERT INTO test.sql_server_char (val)
VALUES
    ('EWG');

La declaración funcionó como se esperaba.

La siguiente instrucción intenta insertar una nueva cadena de caracteres cuya longitud excede la longitud de la columna:

INSERT INTO test.sql_server_char (val)
VALUES
    ('EWG2022');

SQL Server regresa el siguiente error:

String or binary data would be truncated.
The statement has been terminated.

La siguiente declaración inserta un solo carácter en la columna val de la tabla test.sql_server_char:

INSERT INTO test.sql_server_char (val)
VALUES
    ('A');

En SQL Server, la función LEN devuelve el número de caracteres en una columna específica que excluye los espacios en blanco finales y la función DATALENGTH devuelve el número de bytes.
Observa la siguiente declaración:

SELECT
    val,
    LEN(val) len,
    DATALENGTH(val) data_length
FROM
    sql_server_char;

Resultado:

val len data_length
EWG 3 3
A 1 3

Aunque el carácter 'A' es solo un carácter, el número de bytes de la columna es fijo y el resultado es tres.

 

En este tutorial, aprendiste a usar el tipo de datos CHAR de SQL Server para almacenar cadenas de caracteres no Unicode de longitud fija en la base de datos.

 

Compartir artículo:

Más artículos geniales

¿Cómo agregar una columna a una tabla en SQL?

¿Cómo agregar una columna a una tabla en SQL?

En este post veremos cómo agregar, eliminar y cambiar columnas a una tabla en SQL Server. ¿Cómo agregar una columna a una tabla existente en SQL Server?

Ver artículo completo
Cómo eliminar columnas de una tabla en SQL Server con ALTER TABLE y DROP COLUMN

Cómo eliminar columnas de una tabla en SQL Server con ALTER TABLE y DROP COLUMN

Resumen: en este tutorial, aprenderás cómo usar la declaración de columna ALTER TABLE DROP COLUMN de SQL Server para eliminar una o más columnas de una tabla existente.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla