Como en la mayoría de los lenguajes de programación, SQL tiene funciones para procesar datos. Vale la pena señalar que, a diferencia de las declaraciones SQL, las funciones no están estandarizadas para todos los tipos de DBMS, es decir, para realizar las mismas operaciones con datos, diferentes DBMS tienen sus propios nombres de funciones. Esto significa que es posible que el código de consulta escrito en un DBMS no funcione en otro y esto debería tenerse en cuenta en el futuro. Esto se aplica principalmente a funciones para procesar valores de texto, convertir tipos de datos y manipular fechas.
La mayoría de los DBMS admiten un conjunto estándar de tipos de funciones, a saber:
La implementación de SQL en MS Access tiene las siguientes funciones para el procesamiento de texto:
Función | Descripción |
---|---|
Left() | Selecciona los caracteres del texto desde la izquierda. |
Right() | Selecciona los caracteres del texto de la derecha. |
Mid() | Selecciona caracteres del medio del texto. |
UCase() | Convierte caracteres a mayúsculas |
LCase() | Convierte caracteres a minúsculas |
LTrim() | Elimina todos los caracteres en blanco a la izquierda del texto. |
RTrim() | Elimina todos los caracteres en blanco a la derecha del texto. |
Trim() | Elimina todos los caracteres en blanco de ambos lados del texto. |
Convirtamos los nombres de los productos a mayúsculas usando la función UCase():
Run SQLSELECT Product, UCase(Product) AS Product_UCase
FROM Sumproduct
Separemos los primeros tres caracteres del texto usando la función LEFT():
Run SQLSELECT Product, LEFT(Product, 3) AS Product_LEFT
FROM Sumproduct
Las funciones de procesamiento de números están diseñadas para realizar operaciones matemáticas con datos numéricos. Estas funciones están diseñadas para cálculos algebraicos y geométricos, por lo que se utilizan con mucha menos frecuencia que las funciones de procesamiento de fecha y hora. Sin embargo, las funciones numéricas son las más estandarizadas en todas las versiones de SQL. Veamos la lista de funciones numéricas:
Función | Descripción |
---|---|
SQR() | Devuelve la raíz cuadrada del número especificado |
ABS() | Devuelve el valor absoluto de un número |
EXP() | Devuelve el exponente del número especificado. |
SIN() | Devuelve el seno del ángulo especificado. |
COS() | Devuelve el coseno del ángulo especificado. |
TAN() | Devuelve la tangente del ángulo especificado. |
Hemos enumerado solo algunas de las funciones principales, pero siempre puede consultar la documentación de su DBMS para obtener una lista completa de las funciones compatibles con descripciones detalladas.
Por ejemplo, escribamos una consulta para obtener la raíz cuadrada de los números en la columna Cantidad usando la función SQR():
Run SQLSELECT Amount, SQR(Amount) AS Amount_SQR
FROM Sumproduct
Las funciones de manipulación de fecha y hora se encuentran entre las funciones SQL más importantes y utilizadas con más frecuencia. En las bases de datos, los valores de fecha y hora se almacenan en un formato especial, por lo que no se pueden utilizar directamente sin un procesamiento adicional. Cada DBMS tiene su propio conjunto de funciones para procesar fechas, lo que, lamentablemente, no permite transferirlas a otras plataformas e implementaciones de SQL.
Lista de algunas funciones para manejar fecha y hora en MS Access:
Función | Descripción |
---|---|
DatePart() | Devuelve parte de una fecha: año, trimestre, mes, semana, día, hora, minuto, segundo |
Year(), Month() | Devuelve el año y el mes respectivamente. |
Hour(), Minute(), Second() | Devuelve la hora, minutos y segundos de la fecha especificada. |
WeekdayName() | Devuelve el nombre del día de la semana. |
Veamos un ejemplo de cómo funciona la función DatePart():
SELECT Date1, DatePart("m", Date1) AS Month1
FROM Sumproduct
La función DatePart() tiene un parámetro adicional que nos permite mostrar la parte requerida de la fecha. En el ejemplo, usamos el valor del parámetro "m", que muestra el número del mes (de la misma manera, podemos mostrar el año - "yyyy", el trimestre - "q", el día - "d", la semana - "w", la hora - "h", minutos - "n", segundos - "s", etc.).
Las funciones estadísticas nos ayudan a preparar datos sin muestrearlos. Las consultas SQL con estas funciones se utilizan a menudo para analizar y generar varios informes. Un ejemplo de tales selecciones puede ser: determinar el número de filas en una tabla, obtener la suma de valores para un determinado campo, buscar el valor más grande/más pequeño o promedio en la columna especificada de la tabla. También observamos que las funciones estadísticas son compatibles con todos los DBMS sin ningún cambio especial por escrito.
Lista de funciones estadísticas en DBMS Access:
Función | Descripción |
---|---|
COUNT() | Devuelve el número de filas de una tabla o columna. |
SUM() | Devuelve la suma de los valores de una columna. |
MIN() | Devuelve el valor más pequeño de una columna. |
MAX() | Devuelve el valor más grande en una columna. |
AVG() | Devuelve el valor promedio en una columna. |
Devuelve el número de todas las filas de la tabla:
Run SQLSELECT COUNT(*) AS Count1
FROM Sumproduct
Devuelve el número de todas las filas no vacías en el campo Producto:
SELECT COUNT(Product) AS Count2
FROM Sumproduct
Eliminamos intencionalmente un valor en la columna Producto para mostrar la diferencia de rendimiento entre las dos consultas.
Run SQLSELECT SUM(Quantity) AS Sum1
FROM Sumproduct
WHERE Month = 'April'
Con esta solicitud, mostramos la cantidad total de bienes vendidos en el mes de abril.
Run SQLSELECT SUM(Quantity*Amount) AS Sum2
FROM Sumproduct
Como puedes ver, en funciones estadísticas también podemos realizar cálculos en varias columnas utilizando operadores matemáticos estándar.
Run SQLSELECT MIN(Amount) AS Min1
FROM Sumproduct
Run SQLSELECT MAX(Amount) AS Max1
FROM Sumproduct
Run SQLSELECT AVG(Amount) AS Avg1
FROM Sumproduct