¿Qué son las funciones SQL? – Uso y ejemplos

Publicado el 14 noviembre, 2020 por Rodrigo Ricardo

Funciones SQL: ¿Qué son?

Las funciones SQL son simplemente subprogramas, que se usan y reutilizan comúnmente en todas las aplicaciones de bases de datos SQL para procesar o manipular datos. Todos los sistemas de bases de datos SQL tienen herramientas DDL (lenguaje de definición de datos) y DML (lenguaje de manipulación de datos) para apoyar la creación y mantenimiento de bases de datos.

DDL es responsable de las tareas relacionadas con la creación, modificación y mantenimiento de la base de datos, mientras que DML es responsable de las tareas relacionadas con la manipulación de datos, lo que esencialmente significa que DML es la interfaz de programación de la base de datos. El DML, al igual que otros lenguajes de programación, consta de instrucciones que se utilizan para procesar o calcular datos dentro de la base de datos. El DML también admite funciones, que se denominan funciones SQL. Las funciones SQL son pequeños programas que pueden tener cero o más parámetros de entrada, pero pueden devolver solo un valor.

Clasificación y propósito de SQL

Hay muchas formas de clasificar las funciones SQL. Lo más fácil es dividirlos en funciones integradas y funciones definidas por el usuario. Las funciones integradas son funciones estándar que ya proporciona el sistema de base de datos SQL, y la mayoría de estas funciones están definidas claramente en los estándares SQL ANSI (Instituto Nacional Estadounidense de Estándares). Estas funciones integradas se pueden dividir en funciones agregadas o funciones escalares. Mientras tanto, las funciones definidas por el usuario son funciones creadas por el usuario para un propósito específico. Las funciones definidas por el usuario pueden devolver un solo valor o un conjunto de valores.

Hay muchas ventajas de utilizar funciones. Los más comunes se enumeran aquí:

  1. Una función debe escribirse solo una vez y puede reutilizarse varias veces. Esto ahorra tiempo y esfuerzo y es compatible con la programación modular.
  2. Las funciones mejoran el rendimiento y la eficiencia de la base de datos. Las funciones SQL se compilan y almacenan en caché antes de su uso.
  3. La lógica de programación compleja se puede descomponer en una serie de funciones más pequeñas y simples, lo que facilita su comprensión y mantenimiento.

Algunos ejemplos de funciones SQL

Como se mencionó anteriormente, todas las funciones SQL integradas son parte de la base de datos SQL. Estos se pueden dividir en funciones escalares y agregadas. Las funciones escalares actúan sobre los valores de entrada y pueden devolver texto, valores numéricos o de hora y fecha. Las funciones agregadas actúan sobre el campo / campos de la base de datos y devuelven valores únicos (cadenas o valores numéricos) después del procesamiento. Las funciones también se pueden clasificar según el tipo de datos devueltos. El diagrama aquí muestra algunas funciones SQL integradas comunes.

Diagram06

Usaremos la tabla llamada ‘EmpSalary’ que se muestra aquí para todos los ejemplos discutidos.

Diagram01

Considere la declaración SQL que aparece a continuación:

SELECT employeeNo, FirstName, len (FirstName) FROM EmpSalary;

Aquí, la función len actúa en cada fila de la tabla y devuelve la longitud del campo firstName en cada fila.

Diagram07

A continuación, consideremos la declaración SQL aquí, que definitivamente es más compleja que el primer ejemplo:

SELECT employeeNo, concat (trim (LastName), ',', trim (FirstName)) as fullName, len (concat (trim (LastName), ',', trim (FirstName))) as lengthOfFullName de EmpSalary;

En esta declaración SQL, se utilizan tres funciones integradas: concat, trim y len. La salida después de la ejecución es como se muestra en el diagrama aquí.

Diagram02

El punto clave a tener en cuenta aquí es que cada función actúa en cada fila de datos y una función puede contener otra función. La función de recorte elimina los espacios en blanco finales de cualquier campo. La función concat luego concatena los campos firstName y lastName, insertando una coma entre ellos para producir el nombre completo. La función len proporciona la longitud del nombre completo, incluida la coma y el espacio en blanco entre el nombre y el apellido. Aquí, las funciones concat, trim y len actúan en cada fila de datos de la tabla y devuelven nuevos valores y campos como se muestra. Si el número de registros en esta tabla se incrementa de 10 a 100, estas funciones se ejecutarán 100 veces y devolverán el número correspondiente de valores.

Ahora, tomemos un ejemplo de funciones agregadas. Como sugiere el nombre, las funciones agregadas actúan sobre un agregado o grupo de registros en la tabla. Aquí se muestra una declaración SQL que usa funciones agregadas:

SELECCIONE departamento, cuente (departamento) como noEmployees, sum (salario) como totalDeptSal, avg (salario) como avgDeptSal del grupo empSalary por departamento;

El resultado después de la ejecución es como se muestra en el diagrama aquí.

Diagram03

El punto importante a tener en cuenta aquí es que, aunque hay 10 registros en nuestra tabla de muestra, solo se devuelven tres filas. Esto es diferente del ejemplo anterior. Las funciones de agregación básicamente agregan o agrupan filas de datos en función de un campo / campos comunes y proporcionan datos numéricos resumidos basados ​​en las agrupaciones.

En nuestro ejemplo, los empleados pertenecen a tres departamentos diferentes (Ventas, RR.HH. y Finanzas). La sentencia SQL tiene una cláusula de “grupo por departamento”. Tenga en cuenta que todas las funciones agregadas necesitan la cláusula ‘agrupar por’, excepto si la función agregada es el único valor devuelto por la declaración SQL. Esto indica que las funciones agregadas (es decir, recuento, promedio y suma) son para agregar datos basados ​​en el departamento. Como hay tres departamentos distintos, solo se devolverán tres filas de datos. La función de recuento devuelve el número de registros (o empleados) en cada departamento, mientras que las funciones promedio y suma calculan los salarios promedio y totales devengados por todos los empleados dentro del mismo departamento.

Funciones definidas por el usuario

Si las funciones integradas no pueden satisfacer los requisitos, los usuarios pueden crear sus propias funciones personalizadas. Considere el ejemplo en el que debe enumerar todos los registros de los empleados junto con sus salarios como parte de la nómina de la empresa. El resultado se muestra en el diagrama que aparece aquí.

Diagram08

En esta situación, la suma de la función agregada no se puede usar ya que la agregación no es necesaria aquí. En esta situación, se debe crear una nueva función para cumplir con este requisito. Se puede crear una nueva función, que denominaremos totalCompanySalary para sumar la nómina total de la empresa. Tenga en cuenta que esta función no toma ningún parámetro de entrada, pero devolverá el salario total ganado por todos dentro de la empresa. Una vez obtenido este valor, dividir el salario de cada empleado con la nómina total de la empresa dará su salario como porcentaje de la nómina de la empresa. La función se utiliza como se muestra en la declaración SQL aquí.

SELECCIONE employeeNo, concat (trim (apellido), ',', trim (firstname)), salario / dbo.totalCompanySalary () como '% nómina de la empresa' de empSalary;

Finalmente, las funciones definidas por el usuario también pueden devolver una tabla en lugar de valores. La función definida por el usuario a la que llamaremos salarioByDepartment es un ejemplo de esto. Esta función acepta un parámetro y devolverá los registros de salario de todos los empleados del departamento con un valor que coincida con el parámetro. Aquí se muestra una instrucción SQL de muestra que llama a esta función y los resultados.

SELECCIONAR * de dbo.salaryByDepartment ('HR');

Diagram05

Resumen de la lección

Tomemos un momento para revisar lo que hemos aprendido. Las funciones SQL son subprogramas, que se utilizan y reutilizan comúnmente en todas las aplicaciones de bases de datos SQL para procesar o manipular datos. Todos los sistemas de bases de datos SQL tienen herramientas DDL (lenguaje de definición de datos) y DML (lenguaje de manipulación de datos) para apoyar la creación y mantenimiento de bases de datos. DDL es responsable de las tareas relacionadas con la creación, modificación y mantenimiento de bases de datos, mientras que DMLes responsable de las tareas relacionadas con la manipulación de datos, lo que esencialmente significa que DML es la interfaz de programación de la base de datos. Las funciones SQL pueden actuar en cada fila de datos individual o en varias filas de datos agrupados en los valores de un campo / campos en la tabla. La mayoría de las funciones integradas son comunes en todas las implementaciones de SQL, aunque cada implementación puede tener algunas funciones específicas.

Articulos relacionados