Decimal SQL server: Tipo de datos

El tipo de datos DECIMAL SQL server es uno de los tipos de datos utilizados para almacenar números precisos. Puede almacenar valores de punto fijo, que son números con una cantidad fija de decimales. Este tipo de datos es muy útil para cálculos precisos, como en cálculos financieros o monetarios, donde es necesario conservar los decimales exactos.

Sintaxis de decimal SQL server

DECIMAL ( precisión , escala )
  • Precisión: El número máximo de dígitos que puede almacenar el decimal SQL server. La precisión incluye tanto el lado izquierdo como el derecho del punto decimal. Acepta valores del 1 al 38. El valor predeterminado es 18.
  • Escala: opcional, indica la cantidad de espacio numérico después del punto decimal. La escala debe estar entre 0 y el mismo valor de precisión.

El almacenamiento utilizado por decimal depende de la precisión:

PrecisiónAlmacenamiento (BYTES)
  • 1-9
5
  • 10-19
9
  • 20-28
13
  • 29-38
17

El consumo de espacio del tipo de datos Decimal en SQL se basa en la precisión de la columna y no en el tamaño del valor que se le asigna. Por ejemplo, Decimal (12, 4) con un valor de 888,888 ocupa 9 bytes en el disco y un valor Decimal (22, 2) de 9999,99 consume 13 bytes en el disco. Su uso es importante en columnas de longitud fija.

Como desarrollador de SQL, siempre trato de usar el valor Decimal en SQL como decimal (9, 2), consume 5 bytes en el disco, el menor espacio de almacenamiento y ofrece mejor rendimiento.

Uso de datos decimal SQL server

El tipo de datos DECIMAL se utiliza normalmente en escenarios que requieren cálculos de alta precisión, como:

Cálculos financieros: en los informes financieros, es necesario calcular con precisión varios valores de ingresos, gastos e impuestos, así como las ganancias después de impuestos y otros indicadores.

Cálculos de moneda: se requieren tipos de cambio precisos al convertir monedas.

Cálculos científicos: se requieren representaciones numéricas de alta precisión para ciertos cálculos científicos, como el cálculo de pi.

Agregar datos decimal SQL server

Aquí hay detalle más específico sobre los parámetros que puedes utilizar al agregar una columna con este tipo de datos SQL:

Agregar datos de tipo decimal en una tabla nueva

Para agregar campo DECIMAL SQL server, vamos a crear una tabla en SQL para almacenar productos:

CREATE TABLE Producto
( ID_Prod INT PRIMARY KEY,
Nombre varchar (25) NOT NULL,
Precio DECIMAL(4, 2) NOT NULL);

INSERT INTO Producto (ID_Prod, Nombre, Precio)
VALUES (1,‘VASO’,70.55001),
(2,‘TAZA’,95.25011),
(3,‘PLATO’,65.0013);

SELECT * FROM Producto;

decimal sql server

En el ejemplo anterior, creamos una tabla llamada  Producto que contiene dos campos ID_Prod y Precio. El Precio es el campo que usa el tipo de datos DECIMAL con un total de 4 dígitos y 2 decimales. Insertamos tres registros, cada uno de los cuales contiene una identificación de estudiante y una puntuación de examen. Finalmente, usamos la declaración SELECT para consultar toda la tabla.

Agregar campo con decimales en una tabla existente

Para agregar tipo de datos DECIMAL SQL server a una tabla, puedes usar la instrucción SQL ALTER TABLE. Aquí hay un ejemplo básico:

ALTER TABLE TuTabla
ADD NuevoCampo DECIMAL(precisión, escala);

Reemplaza el nombre TuTabla con el nombre real de tu tabla y NuevoCampo con el nombre que deseas asignar al nuevo campo. Además, debes especificar la precisión (precisión) y la escala deseadas en el tipo de DECIMAL SQL server. 

Ejemplo con 10  de precisión y una escala de 2:

ALTER TABLE TuTabla
ADD NuevoCampo DECIMAL(10, 2);

Si deseas agregar más detalles, como restricciones, puedes extender la declaración según tus requisitos. Por ejemplo:

ALTER TABLE TuTabla
ADD NuevoCampo DECIMAL (10, 2) CONSTRAINT DF_NuevoCampo DEFAULT 0.0 WITH VALUES;

En este ejemplo, además de agregar la columna Nuevo Campo como DECIMAL(10, 2), se indica un valor de 0.0 utilizando la restricción DEFAULT. Ajusta estos comandos según las necesidades específicas de tu situación.

Tipos de datos Decimal Vs Float en SQL server

CaracterísticaDECIMALFLOAT
Tamaño de almacenamientoVariable, generalmente mayor que FLOAT.4 bytes (simple
Precisión ExactaNo
Fijo Precisión y EscalaSí, especificadas por el usuario con precisión y escala.No
Rango de valores representablesDepende de la precisión y el espacio de la escala especificadas.Mayor que DECIMAL
Uso de RecursosCálculos precisos, especialmente en contextos financieros.Cálculos científicos, eficiencia en espacio

DECIMAL:

Utilizado cuando se necesita precisión exacta, como en cálculos financieros. Especifica la precisión y la escala para controlar el formato de los datos.

FLOAT:

Utilizado cuando la precisión exacta no es crítica y se prefiere un almacenamiento más eficiente.

Adecuado para cálculos científicos y aplicaciones donde la eficiencia en el espacio es importante.

La elección entre y dependerá de las necesidades específicas de tu aplicación y de la naturaleza de los datos que estás manejando. En situaciones donde la precisión es esencial, tipo de campo DECIMAL SQL server es la elección adecuada, mientras que FLOAT es más adecuado cuando la eficiencia en el espacio es una consideración importante y la pérdida de precisión es aceptable.

Conclusión

El tipo de datos DECIMAL se utiliza en SQL Server para representar números con decimales con precisión. Nos permite indicar la cantidad total de dígitos y los espacios decimales para cumplir con diferentes requisitos. El DECIMAL SQL server normalmente se utiliza en escenarios que requieren cálculos precisos, como cálculos de divisas y análisis financieros. 

Deja un comentario