5. SQL - Rutinas almacenadas: Funciones y procedimientos 0. Bases de Datos 1
Last updated Mar 18, 2020
by
sr_labs Admin
## Trigger
Un trigger o disparador es un objeto que se asocia con tablas y se almacena en la base de datos. Su nombre se deriva por el comportamiento que presentan en su funcionamiento, ya que se ejecutan cuando sucede algún evento sobre las tablas a las que se encuentra asociado. Los eventos que hacen que se ejecute un trigger son las operaciones de inserción (INSERT), borrado (DELETE) o actualización (UPDATE), ya que modifican los datos de una tabla.
La utilidad principal de un trigger es mejorar la gestión de la base de datos, ya que no requieren que un usuario los ejecute. Por lo tanto, son empleados para implementar las REGLAS DE NEGOCIO (tipo especial de integridad) de una base de datos. Una Regla de Negocio es cualquier restricción, requerimiento, necesidad o actividad especial que debe ser verificada al momento de intentar agregar, borrar o actualizar la información de una base de datos. Los triggers pueden prevenir errores en los datos, modificar valores de una vista, sincronizar tablas, entre otros.
## Funciones
Una función en SQL es una rutina creada para tomar unos parámetros, procesarlos y retornar en una salida. Se diferencian de los procedimientos en las siguientes características:
* Solamente pueden tener parámetros de entrada IN y no parámetros de salida OUT o INOUT .
* Deben retornar en un valor con algún tipo de dato definido Pueden usarse en el contexto de una sentencia SQL.
### Principales funciones en SQL
El lenguaje SQL tiene funciones incorporadas para hacer cálculos sobre los datos. Las funciones se pueden dividir en dos grupos (existen muchas mas, que dependen del sistema de bases de datos que se utilice):
Funciones agregadas SQL, devuelven un sólo valor, calculado con los valores de una columna.
1. AVG() - La media de los valores
2. COUNT() - El número de filas
3. MAX() - El valor más grande
4. MIN() - El valor más pequeño
5. SUM() - La suma de los valores
6. GROUP BY - Es una sentencia que va muy ligada a las funciones agregadas
Funciones escalares SQL, devuelven un sólo valor basándose en el valor de entrada.
1. UCASE() - Convierte un campo a mayúsculas
2. LCASE() - Convierte un campo a minúsculas
3. MID() - Extrae caracteres de un campo de texto
4. LEN() - Devuelve la longitud de un campo de texto
5. NOW() - Devuelve la hora y fecha actuales del sistema
6. FORMAT() - Da formato a un formato para mostrarlo
## Procedimiento almacenado
Un procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario o de la misma base de datos, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.
Los procedimientos pueden ser ventajosos: cuando una base de datos es manipulada desde muchos programas externos. Al incluir la lógica de la aplicación en la base de datos utilizando procedimientos almacenados, la necesidad de embeber la misma lógica en todos los programas que acceden a los datos es reducida. Esto puede simplificar la creación y, particularmente, el mantenimiento de los programas involucrados.
Los usos 'típicos' de los procedimientos almacenados se aplican en la validación de datos, integrados dentro de la estructura del banco de datos. Los procedimientos almacenados usados con tal propósito se llaman comúnmente disparadores, o triggers. Otro uso común es la 'encapsulación' de un API para un proceso complejo o grande que podría requerir la 'ejecución' de varias consultas SQL, tales como la manipulación de un conjunto de datos enorme para producir un resultado resumido.
# Enlaces de interés
Stored Objects, MySQL Reference Manual, [https://dev.mysql.com/doc/refman/8.0/en/stored-objects.html](https://dev.mysql.com/doc/refman/8.0/en/stored-objects.html)
Principales funciones en SQL, [https://diego.com.es/principales-funciones-en-sql](https://diego.com.es/principales-funciones-en-sql)
Funciones en SQL, [https://srlabs.a2hosted.com/rs-humhub/index.php?r=wiki%2Fpage%2Fview&title=Funciones+en+SQL&cguid=16aae406-c3be-43f5-bf13-d613f94caa51](https://srlabs.a2hosted.com/rs-humhub/index.php?r=wiki%2Fpage%2Fview&title=Funciones+en+SQL&cguid=16aae406-c3be-43f5-bf13-d613f94caa51)\
\
Procedimientos en SQL, [https://srlabs.a2hosted.com/rs-humhub/index.php?r=wiki%2Fpage%2Fview&title=Procedimientos+en+SQL&cguid=16aae406-c3be-43f5-bf13-d613f94caa51](https://srlabs.a2hosted.com/rs-humhub/index.php?r=wiki%2Fpage%2Fview&title=Procedimientos+en+SQL&cguid=16aae406-c3be-43f5-bf13-d613f94caa51)\
\
Trigger en SQL, [https://srlabs.a2hosted.com/rs-humhub/index.php?r=wiki%2Fpage%2Fview&title=Trigger+&cguid=16aae406-c3be-43f5-bf13-d613f94caa51](https://srlabs.a2hosted.com/rs-humhub/index.php?r=wiki%2Fpage%2Fview&title=Trigger+&cguid=16aae406-c3be-43f5-bf13-d613f94caa51)\
\
Vistas en SQL, [https://srlabs.a2hosted.com/rs-humhub/index.php?r=wiki%2Fpage%2Fview&title=Vistas+en+SQL&cguid=16aae406-c3be-43f5-bf13-d613f94caa51](https://srlabs.a2hosted.com/rs-humhub/index.php?r=wiki%2Fpage%2Fview&title=Vistas+en+SQL&cguid=16aae406-c3be-43f5-bf13-d613f94caa51)
Like
·
sr_labs Admin Mar 18, 2025 · Updated