SQL

Tutorial SQL: Creación y uso de funciones

SQL funciones: definición y uso. Domina la creación y uso de funciones en SQL con ejemplos prácticos y detallados.

Las funciones en SQL son herramientas esenciales que permiten encapsular lógicas repetitivas en bloques de código reutilizables. Funcionan de manera similar a las funciones en otros lenguajes de programación, aceptando argumentos de entrada, ejecutando operaciones y devolviendo un valor.

Funciones en SQL

La sintaxis básica para crear una función en SQL es la siguiente:

CREATE FUNCTION nombre_funcion ([parametro1 tipo1, ...])
RETURNS tipo_retorno
LANGUAGE SQL
AS $$
-- Código de la función
$$;

Los componentes de esta sintaxis son:

  • CREATE FUNCTION: Declara la creación de una nueva función.
  • nombre_funcion: Nombre asignado a la función.
  • parametro1 tipo1, ...: Lista opcional de parámetros de entrada, cada uno con un nombre y un tipo.
  • RETURNS tipo_retorno: Tipo de valor que devolverá la función.
  • LANGUAGE SQL: Indica que el código de la función está escrito en SQL.
  • AS $$ ... $$;: Código de la función, encerrado entre dos signos $$.

Un ejemplo simple de una función en SQL es una que toma dos números como entrada y devuelve su suma:

CREATE FUNCTION suma (numero1 INT, numero2 INT)
RETURNS INT
LANGUAGE SQL
AS $$
    SELECT numero1 + numero2;
$$;

Esta función puede ser usada en cualquier sentencia SQL que espere un número entero, como por ejemplo:

SELECT suma(5, 7);

La consulta anterior devolverá el valor 12.

Es posible también crear funciones más complejas. Por ejemplo, se puede crear una función que devuelva la cantidad de registros en una tabla. Supongamos que tenemos una tabla clientes con una columna ciudad y queremos saber cuántos clientes hay en una ciudad específica. Se podría crear la siguiente función:

CREATE FUNCTION cantidad_clientes(ciudad VARCHAR)
RETURNS INT
LANGUAGE SQL
AS $$
    SELECT COUNT(*) FROM clientes WHERE ciudad = ciudad;
$$;

Entonces, para conocer la cantidad de clientes en la ciudad de "Madrid", podríamos ejecutar:

SELECT cantidad_clientes('Madrid');

Funciones escalares y funciones de tabla

Las funciones en SQL se pueden clasificar en dos categorías: funciones escalares y funciones de tabla.

  • Funciones escalares: Este tipo de funciones devuelven un único valor cada vez que se llaman. El valor puede ser cualquier tipo de dato escalar. Un ejemplo de función escalar es la función suma mencionada anteriormente.
  • Funciones de tabla: A diferencia de las funciones escalares, las funciones de tabla devuelven un conjunto de filas que se pueden utilizar como cualquier otra tabla. La sintaxis es un poco diferente, se debe usar el keyword RETURNS TABLE y dentro de los paréntesis se define la estructura de la tabla que se devolverá.

Aquí un ejemplo de una función de tabla que devuelve todos los clientes de una ciudad específica:

CREATE FUNCTION clientes_por_ciudad(ciudad VARCHAR)
RETURNS TABLE (
    id INT,
    nombre VARCHAR,
    correo VARCHAR
)
LANGUAGE SQL
AS $$
    SELECT id, nombre, correo FROM clientes WHERE ciudad = ciudad;
$$;

La función se puede utilizar como si fuera una tabla en una sentencia FROM:

SELECT * FROM clientes_por_ciudad('Madrid');

Funciones incorporadas en SQL

Además de las funciones definidas por el usuario, SQL tiene muchas funciones incorporadas. Algunas de las más comunes son:

  • Funciones matemáticas: Por ejemplo, ABS() para obtener el valor absoluto, ROUND() para redondear números, RAND() para obtener un número aleatorio, entre otros.
  • Funciones de cadena de caracteres: Por ejemplo, LENGTH() para obtener la longitud de una cadena, UPPER() y LOWER() para pasar una cadena a mayúscula o minúscula, CONCAT() para concatenar cadenas, entre otros.
  • Funciones de fecha y hora: Por ejemplo, NOW() para obtener la fecha y hora actual, DATE() para obtener la parte de fecha de un timestamp, DATEDIFF() para obtener la diferencia en días entre dos fechas, entre otros.
  • Funciones de agregación: Por ejemplo, SUM() para obtener la suma de un conjunto de valores, AVG() para obtener la media, MIN() y MAX() para obtener el valor mínimo y máximo, COUNT() para obtener la cantidad de filas, entre otros.

Cada una de estas funciones puede ser utilizada en cualquier sentencia SQL que espere un valor del tipo devuelto por la función. Por ejemplo:

SELECT COUNT(*) FROM clientes;
SELECT AVG(edad) FROM clientes;
SELECT CONCAT(nombre, ' ', apellido) AS nombre_completo FROM clientes;

Conclusión

Las funciones en SQL son una parte esencial del lenguaje y brindan una gran versatilidad para realizar operaciones complejas y repetitivas, ya sea que estén incorporadas en el lenguaje o sean definidas por el usuario. Además, son una excelente forma de hacer el código más modular, legible y fácil de mantener.

Certifícate en SQL con CertiDevs PLUS

Ejercicios de esta lección Creación y uso de funciones

Evalúa tus conocimientos de esta lección Creación y uso de funciones con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Actualización de datos: UPDATE

Código

Creación y uso de procedimientos almacenados

Test

Uso de funciones agregadas: COUNT, SUM, AVG, MAX, MIN

Test

Tipos de datos

Test

Uso de índices y particiones

Test

Uso de vistas

Test

Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN

Test

Sentencias INSERT

Código

Creación y uso de subqueries

Test

Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN

Código

Instalación de MySQL

Test

Relaciones entre tablas

Código

Clasificación de resultados con ORDER BY

Test

Creación y manejo de usuarios y roles

Test

Eliminación de datos: DELETE

Código

Creación y uso de funciones

Test

Vaciar tablas y bases de datos: DROP

Test

Consultas básicas de selección: SELECT y WHERE

Test

Creación de bases de datos y tablas

Código

Filtrado de valores únicos con DISTINCT

Test

Alterar la estructura de tablas existentes: ALTER TABLE

Test

Creación de tablas e inserción de datos con SQL

Proyecto

Asignación y gestión de permisos

Test

Optimización de consultas

Test

Introducción a SQL

Test

Triggers y eventos

Test

Copias de seguridad y restauración de bases de datos

Test

Filtrado de grupos de resultados con HAVING

Test

Eliminación de datos: DELETE

Test

Inserción de datos: INSERT INTO

Test

Instalación de PostgreSQL

Test

Agrupación de resultados con GROUP BY

Test

Actualización de datos: UPDATE

Test

Renombrar tablas y bases de datos: RENAME

Test

Creación de bases de datos y tablas: CREATE DATABASE, CREATE TABLE

Test

Bases de datos y tablas

Test

Consultas básicas de selección SELECT y WHERE

Código

Relaciones entre tablas

Test

Todas las lecciones de SQL

Accede a todas las lecciones de SQL y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción A Sql

Introducción Y Entorno

Sublenguajes De Sql: Data Definition Language Y Data Manipulation Language

Introducción Y Entorno

Instalación De Mysql

Introducción Y Entorno

Instalación De Postgresql

Introducción Y Entorno

Tipos De Datos

Introducción Y Entorno

Bases De Datos Y Tablas

Introducción Y Entorno

Creación De Bases De Datos Y Tablas: Create Database, Create Table

Operaciones Básicas

Consultas Básicas De Selección: Select Y Where

Operaciones Básicas

Inserción De Datos: Insert Into

Operaciones Básicas

Actualización De Datos: Update

Operaciones Básicas

Eliminación De Datos: Delete

Operaciones Básicas

Clasificación De Resultados Con Order By

Filtros Y Clasificación

Filtrado De Valores Únicos Con Distinct

Filtros Y Clasificación

Uso De Funciones Agregadas: Count, Sum, Avg, Max, Min

Funciones Agregadas Y Agrupaciones

Agrupación De Resultados Con Group By

Funciones Agregadas Y Agrupaciones

Filtrado De Grupos De Resultados Con Having

Funciones Agregadas Y Agrupaciones

Relaciones Entre Tablas

Joins Y Subqueries

Uso De Inner Join, Left Join, Right Join, Full Join

Joins Y Subqueries

Creación Y Uso De Subqueries

Joins Y Subqueries

Alterar La Estructura De Tablas Existentes: Alter Table

Manipulación De Tablas Y Datos

Renombrar Tablas Y Bases De Datos: Rename

Manipulación De Tablas Y Datos

Vaciar Tablas Y Bases De Datos: Drop

Manipulación De Tablas Y Datos

Creación Y Uso De Funciones

Funciones Y Procedimientos Almacenados

Creación Y Uso De Procedimientos Almacenados

Funciones Y Procedimientos Almacenados

Creación Y Manejo De Usuarios Y Roles

Seguridad Y Administración De Bases De Datos Sql

Asignación Y Gestión De Permisos

Seguridad Y Administración De Bases De Datos Sql

Copias De Seguridad Y Restauración De Bases De Datos

Seguridad Y Administración De Bases De Datos Sql

Optimización De Consultas

Sintaxis Avanzada

Uso De Índices Y Particiones

Sintaxis Avanzada

Uso De Vistas

Sintaxis Avanzada

Triggers Y Eventos

Sintaxis Avanzada

Certificados de superación de SQL

Supera todos los ejercicios de programación del curso de SQL y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender qué son las funciones en SQL y cómo pueden mejorar la eficiencia y legibilidad del código.
  2. Conocer la sintaxis básica para crear funciones en SQL, incluyendo el uso de parámetros y el tipo de retorno.
  3. Aprender sobre las funciones escalares y de tabla, y cómo se diferencian en su comportamiento y uso.
  4. Conocer ejemplos prácticos de funciones en SQL, como funciones matemáticas, de cadena de caracteres, de fecha y hora, y de agregación.