SQL

Tipo de datos Decimal y Numeric de SQL Server

Estrada Web Group
Estrada Web Group
Tipo de datos Decimal y Numeric de SQL Server

Resumen: en este tutorial, aprenderás sobre el tipo de datos DECIMAL de SQL Server y cómo usarlo para almacenar valores numéricos exactos.

Introducción del tipo de datos DECIMAL de SQL Server

Para almacenar números que tienen precisión y escala fijas, utiliza el tipo de datos DECIMAL.

A continuación, se muestra la sintaxis del tipo de datos DECIMAL:

DECIMAL(p,s)

En la sintaxis anterior:

  • p (precisión): es el número total máximo de dígitos decimales que se van a almacenar, tanto a la izquierda como a la derecha del punto decimal. La precisión tiene un rango de 1 a 38. La precisión predeterminada es 38.
  • s (escala): es el número de dígitos decimales que se almacenan a la derecha del punto decimal. Este número se resta de p para determinar el número máximo de dígitos a la izquierda del punto decimal. La escala debe ser un valor de 0 a p, y solo se puede especificar si se especifica la precisión. La escala predeterminada es 0, por lo que 0 <= s <= p. Los tamaños máximos de almacenamiento varían según la precisión. Por defecto, la escala es cero.

Los tamaños máximos de almacenamiento varían según la precisión, como se ilustra en la siguiente tabla:

El NUMERIC y el DECIMAL son sinónimos, por lo tanto, puedes usarlos indistintamente.

Las siguientes declaraciones son equivalentes

DECIMAL(10,2)
NUMERIC(10,2)

Debido a que los sinónimos ISO para DECIMAL son DEC y DEC(p,s), puedes usar DECIMAL o DEC:

DECIMAL(10,2)
DEC(10,2)

Ejemplos del uso de DECIMAL de SQL Server

Tomemos un ejemplo del uso de los tipos de datos DECIMAL y NUMERIC.

Primero, crea una nueva tabla que conste de dos columnas: una decimal y otra numérica:

CREATE TABLE test.sql_server_decimal (
    dec_col DECIMAL (4, 2),
    num_col NUMERIC (4, 2)
);

En segundo lugar, inserta una nueva fila en la tabla test.sql_server_decimal:

INSERT INTO test.sql_server_decimal (dec_col, num_col)
VALUES     (10.05, 20.05);

Tercero, consulta los datos de la tabla:

SELECT
    dec_col,
    num_col
FROM
    test.sql_server_decimal;

En cuarto lugar, el siguiente ejemplo intenta insertar una nueva fila en la tabla con valores que superan la precisión y la escala especificadas en la definición de la columna:

INSERT INTO test.sql_server_decimal (dec_col, num_col)
VALUES
    (99.999, 12.345);

SQL Server regresará un error y finalizará la declaración:

Arithmetic overflow error converting numeric to data type numeric.
The statement has been terminated

En este tutorial, has aprendido a usar el tipo de datos DECIMAL de SQL Server para almacenar valores numéricos exactos.

 

Compartir artículo:

Más artículos geniales

Qué significa expresión de tabla común o CTE en SQL Server y para qué sirve

Qué significa expresión de tabla común o CTE en SQL Server y para qué sirve

Resumen: en este tutorial, aprenderás sobre la expresión de tabla común o CTE en SQL Server mediante el uso de la cláusula WITH.

Ver artículo completo
Comparar el sonido de dos palabras con la función DIFFERENCE() y SOUNDEX() de SQL Server

Comparar el sonido de dos palabras con la función DIFFERENCE() y SOUNDEX() de SQL Server

Resumen: en este tutorial, aprenderás a usar la función DIFFERENCE() de SQL Server para comparar que tan parecido suenan dos cadenas, utilizando también la función SOUNDEX().

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