Operaciones y Funciones Matemáticas en Bases de Datos Relacionales

Operaciones Básicas de una Base de Datos

El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.

CREATE

Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, [[Vista ‘CAMPO 2’ STRING

ALTER

Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.

Ejemplo (agregar columna a una tabla)

DROP

Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.

Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.

El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional.

INSERT

Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.

Forma básica

 INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...''])
Inserciones en múltiples filas

Una característica de SQL (desde SQL-92) es el uso de constructores de filas para insertar múltiples filas a la vez, con una sola sentencia SQL:

Copia de filas de otras tablas

Un INSERT también puede utilizarse para recuperar datos de otros, modificarla si es necesario e insertarla directamente en la tabla. Todo esto se hace en una sola sentencia SQL que no implica ningún procesamiento intermedio en la aplicación cliente. Un SUBSELECT se utiliza en lugar de la cláusula VALUES. El SUBSELECT puede contener JOIN, llamadas a funciones, y puede incluso consultar en la misma TABLA los datos que se inserta. Lógicamente, el SELECT se evalúa antes que la operación INSERT esté iniciada. Un ejemplo se da a continuación.

El SELECT produce una tabla (temporal), y el esquema de la tabla temporal debe coincidir con el esquema de la tabla donde los datos son insertados.

UPDATE

Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.

DELETE

Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.

Funciones Matemáticas de una Base de Datos

030c41d9079671d09a62d8e2c1db6973

Argumentos

numeric_expression

Es una expresión de la categoría de tipo de datos numérico exacto o numérico aproximado, excepto para el tipo de datos bit.

030c41d9079671d09a62d8e2c1db6973

Tipos de valor devueltos

Devuelve el mismo tipo que numeric_expression.

CEILING (Transact-SQL)

Devuelve el entero más pequeño mayor o igual que la expresión numérica especificada.

030c41d9079671d09a62d8e2c1db6973

Sintaxis

CEILING ( numeric_expression )

030c41d9079671d09a62d8e2c1db6973

Argumentos

Es una expresión de la categoría de tipo de datos numérico exacto o numérico aproximado, excepto para el tipo de datos bit.

030c41d9079671d09a62d8e2c1db6973

Tipos de valor devueltos

Devuelve el mismo tipo que numeric_expression.

FLOOR (Transact-SQL)

030c41d9079671d09a62d8e2c1db6973

Sintaxis

FLOOR ( numeric_expression )

030c41d9079671d09a62d8e2c1db6973

Argumentos

numeric_expression

Es una expresión de la categoría de tipo de datos numérico exacto o numérico aproximado, excepto para el tipo de datos bit.

030c41d9079671d09a62d8e2c1db6973

Tipos de valor devueltos

Devuelve el mismo tipo que numeric_expression.

POWER (Transact-SQL)

POWER ( float_expression , y )

030c41d9079671d09a62d8e2c1db6973

Argumentos

float_expression

Es una expresión de tipo float o de un tipo que se puede convertir a float de manera implícita y Es la potencia a la que se eleva float_expression. y puede ser una expresión de la categoría de tipos de datos numérico exacto o numérico aproximado, excepto el tipo de datos bit.

030c41d9079671d09a62d8e2c1db6973

Tipos de valor devueltos

Equivalente a float_expression.

030c41d9079671d09a62d8e2c1db6973

Ejemplos

A. Usar POWER para mostrar resultados de 0,0

Este ejemplo muestra un desbordamiento inferior de coma flotante que da como resultado 0.0.

SELECT POWER(2.0, -100.0);

GO

El conjunto de resultados es el siguiente.

0.0

(1 row(s) affected)

B. Usar POWER

El siguiente ejemplo devuelve los resultados de POWER para 2.

DECLARE @value int, @counter int;

SET @value = 2;

SET @counter = 1;

WHILE @counter < 5

BEGIN

SELECT POWER(@value, @counter)

SET NOCOUNT ON

SET @counter = @counter + 1

SET NOCOUNT OFF

END;

GO

ROUND (Transact-SQL)

Devuelve un valor numérico, redondeado a la longitud o precisión especificadas.

030c41d9079671d09a62d8e2c1db6973

Sintaxis

ROUND ( numeric_expression , length [ ,function ] )

030c41d9079671d09a62d8e2c1db6973

Argumentos

numeric_expression

Es una expresión de la categoría de tipo de datos numérico exacto o numérico aproximado, excepto el tipo de datos bit.

length

Es la precisión con la que se redondea numeric_expression. length debe ser una expresión de tipo tinyint, smallint o int. Si length es un número positivo, numeric_expression se redondea al número de posiciones decimales que especifica length. Si length es un número negativo, numeric_expression se redondea a la izquierda del separador decimal, según se especifica en length.

function

Es el tipo de operación que se realiza. function debe ser de tipo tinyint, smallint o int. Si function se omite o tiene el valor 0 (predeterminado), numeric_expression se redondea. Si se especifica un valor distinto de 0, numeric_expression se trunca.

030c41d9079671d09a62d8e2c1db6973

Tipos de valor devueltos

Devuelve los tipos de datos siguientes.

Resultado de la expresión

Tipo devuelto

tinyint

int

smallint

int

int

int

bigint

bigint

Categoría decimal y numeric (p, s)

decimal(38, s)

Categoría money y smallmoney

money

Categoría float y real

float

030c41d9079671d09a62d8e2c1db6973

Notas

ROUND siempre devuelve un valor. Si length es un valor negativo y mayor que el número de dígitos anteriores al separador decimal, ROUND devuelve 0.

Ejemplo

Resultado

ROUND(748.58, -4)

0

ROUND devuelve un valor de numeric_expression redondeado, independientemente del tipo de datos, cuando length es un número negativo.

Ejemplos

Resultado

ROUND(748.58, -1)

750.00

ROUND(748.58, -2)

700.00

ROUND(748.58, -3)

1000.00

030c41d9079671d09a62d8e2c1db6973

Ejemplos

A. Usar ROUND y valores estimados

En el ejemplo siguiente se muestran dos expresiones que demuestran que, con la función ROUND, el último dígito siempre es un valor estimado.

SELECT ROUND(123.9994, 3), ROUND(123.9995, 3)

GO

El conjunto de resultados es el siguiente.

———– ———–

123.9990 124.0000

B. Usar ROUND y aproximaciones de redondeo

En el ejemplo siguiente se muestran redondeos y aproximaciones.

SELECT ROUND(123.4545, 2);

GO

SELECT ROUND(123.45, -2);

GO

SIGN (Transact-SQL)

Devuelve el signo positivo (+1), cero (0) o negativo (-1) de la expresión especificada.

Topic link icon

Convenciones de sintaxis de Transact-SQL

030c41d9079671d09a62d8e2c1db6973

Sintaxis

SIGN ( numeric_expression )

030c41d9079671d09a62d8e2c1db6973

Argumentos

numeric_expression

Es una expresión de la categoría de tipo de datos numérico exacto o aproximado, excepto para el tipo de datos bit.

030c41d9079671d09a62d8e2c1db6973

Tipos de valor devueltos

Expresión especificada

Tipo devuelto

bigint

bigint

int/smallint/tinyint

int

money/smallmoney

money

numeric/decimal

numeric/decimal

Otros tipos

float

030c41d9079671d09a62d8e2c1db6973

MOD

Devuelve el resto de la división entera entre dos números.

MOD(, )

SELECT MOD(20,15) — Devuelve el modulo de dividir 20/15
FROM DUAL

LEAST

(valor1, valor2…)= Obtiene el menor valor de la lista.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.