28% de descuento del curso en SQL Server

Estrada Web Group Estrada Web Group
Tipo de datos Decimal
Estrada Web Group
Estrada Web Group
Estrada Web Group Estrada Web Group
Calificar:
29 August SQL

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:

Cargando...
Descarga el código fuente

Obten el código del sistema de gestión de proyectos.

Shape