TOP

Lección SQL 6. Campos calculados (calculados)

¿Por qué debería utilizar campos de cálculo? Como regla general, la información en la base de datos se presenta en forma de fragmentos separados, porque es más fácil estructurar los datos y operar con ellos. Sin embargo, a menudo no necesitaremos datos individuales, sino información ya combinada y procesada. Por ejemplo, a menudo es necesario combinar los nombres y apellidos de los clientes, combinar elementos de dirección que se encuentran en diferentes columnas de la tabla, procesar texto y palabras, letras y símbolos individuales, para sumar el costo total de la compra. , para mostrar estadísticas sobre la información que hay en la base de datos. Los datos generalmente se almacenan en "fragmentos" separados, lo que requiere un procesamiento adicional por parte del programa cliente. Sin embargo, es posible recibir información ya procesada utilizando un DBMS. Es en este caso que los campos de cálculo ayudan. Se crean automáticamente cuando se ejecuta la consulta y tienen la apariencia y propiedades de columnas normales que ya están presentes en la tabla. La única diferencia es que no hay campos calculados físicamente, por lo que no ocupan espacio adicional en la base de datos, sino que existen temporalmente en la "memoria aleatoria" del DBMS. La ventaja de realizar operaciones en el lado DBMS es la velocidad de procesamiento de datos.


1. Realizar operaciones matemáticas

Una forma de utilizar campos calculados es realizar operaciones matemáticas con datos seleccionados. Tomemos un ejemplo de cómo sucede esto, usando nuestra tabla Sumproduct nuevamente. Suponga que necesita calcular el precio de compra promedio de cada producto. Para hacer esto, debe redistribuir la columna Monto a Quantity (cantidad):

Run SQLSELECT DISTINCT Product, Amount/Quantity 
FROM Sumproduct

Como puede ver, el DBMS seleccionó todos los nombres de productos y mostró su costo promedio en una columna separada que se creó durante la ejecución de la consulta. También puede observar que utilizamos un operador adicional DISTINCT, que necesitamos para mostrar nombres de productos únicos (sin él tendríamos registros duplicados).

2. Usar seudónimos

En el ejemplo anterior, calculamos el precio de compra promedio de cada producto y mostramos el valor en la columna de cálculo. Sin embargo, en el futuro nos resultará inconveniente referirnos a este campo, ya que su nombre no nos resulta informativo (el DBMS dio el nombre del campo: Expr1001). Sin embargo, podemos nombrar el campo de forma independiente especificando su nombre en la consulta de antemano, es decir, dando un alias. Reescribamos el ejemplo anterior y especifiquemos un alias para el campo calculado:

Run SQLSELECT DISTINCT Product, Amount/Quantity AS AvgPrice 
FROM Sumproduct

Vemos que nuestro campo de cálculo ha recibido su propio nombre AvgPrice. Para ello utilizamos el operador AS, tras lo cual especificamos el nombre que necesitábamos. Cabe señalar que SQL solo admite operaciones matemáticas básicas: suma (+), resta (-), multiplicación (*), división (/). También puede utilizar corchetes para cambiar la secuencia de operaciones.

Los alias se utilizan a menudo no sólo para nombrar los campos de cálculo, sino también para cambiar el nombre de los activos. Esto puede ser necesario si el campo activo tiene un nombre largo o el nombre no es lo suficientemente informativo.

3. Conexión de campos (concatenación)

Además de las operaciones matemáticas, también podemos combinar texto y mostrarlo en un campo separado. Consideremos cómo se puede pegar (concatenar) texto. Para conectar texto de diferentes columnas en MS Access, se utiliza el operador más (+), por ejemplo:

Run SQLSELECT Month + ' ' + Product AS NewField, Quantity  
FROM Sumproduct

En este ejemplo, combinamos los valores en dos columnas y enviamos el resultado a un nuevo campo NewField.

El operador más (+) no se admite en el dialecto MySQL para conectar (concatenar) texto de varias columnas. En este caso, utilice la función CONCAT().