SQL

Tutorial SQL: Creación y uso de procedimientos almacenados

SQL procedimientos almacenados: creación. Aprende a crear y usar procedimientos almacenados en SQL con ejemplos prácticos y detallados.

Un procedimiento almacenado es un conjunto precompilado de instrucciones SQL que se almacenan en la base de datos. Estos procedimientos son importantes porque ayudan a aumentar la eficiencia del código SQL, mejoran la seguridad y la integridad de los datos, y también facilitan la reutilización y el mantenimiento del código.

Creación de procedimientos almacenados

La creación de un procedimiento almacenado varía de un sistema de gestión de bases de datos (DBMS) a otro. Sin embargo, la mayoría de los DBMS, como MySQL, SQL Server, PostgreSQL, siguen un patrón general. A continuación, se muestra un ejemplo genérico de cómo se podría crear un procedimiento almacenado en SQL.

CREATE PROCEDURE NombreDelProcedimiento
AS
BEGIN
   -- Instrucciones SQL
END

Ejemplo en MySQL

En MySQL, el delimitador por defecto es el punto y coma (;). Sin embargo, en un procedimiento almacenado, se debe cambiar el delimitador por defecto, ya que las instrucciones SQL dentro del procedimiento también terminan con un punto y coma.

DELIMITER //
CREATE PROCEDURE ObtenerTodosLosEmpleados()
BEGIN
  SELECT * FROM Empleados;
END //
DELIMITER ;

Ejemplo en SQL Server

En SQL Server, no es necesario cambiar el delimitador. Aquí se muestra cómo se vería el mismo procedimiento almacenado.

CREATE PROCEDURE ObtenerTodosLosEmpleados
AS
BEGIN
   SELECT * FROM Empleados;
END

Uso de procedimientos almacenados

Para usar un procedimiento almacenado, debe "llamarse" o "ejecutarse". La forma de hacerlo también varía de un DBMS a otro.

Ejemplo en MySQL

En MySQL, se usa la instrucción CALL.

CALL ObtenerTodosLosEmpleados();

Ejemplo en SQL Server

En SQL Server, puede ejecutar un procedimiento almacenado simplemente escribiendo su nombre, o también se puede usar la instrucción EXEC.

EXEC ObtenerTodosLosEmpleados;

o simplemente

ObtenerTodosLosEmpleados;

Parámetros en los procedimientos almacenados

Los procedimientos almacenados pueden tener parámetros, lo que los hace aún más flexibles. Existen diferentes tipos de parámetros: de entrada (IN), de salida (OUT) y de entrada/salida (INOUT). Estos parámetros permiten una mayor adaptabilidad y especificidad en la ejecución de los procedimientos.

Ejemplo en MySQL

DELIMITER //
CREATE PROCEDURE ObtenerEmpleadosPorDepartamento(IN id_departamento INT)
BEGIN
  SELECT * FROM Empleados WHERE DepartamentoId = id_departamento;
END //
DELIMITER ;

Luego se puede llamar a este procedimiento almacenado con un parámetro.

CALL ObtenerEmpleadosPorDepartamento(1);

Ejemplo en SQL Server

CREATE PROCEDURE ObtenerEmpleadosPorDepartamento
@id_departamento INT
AS
BEGIN
   SELECT * FROM Empleados WHERE DepartamentoId = @id_departamento;
END

Luego se puede llamar a este procedimiento almacenado con un parámetro.

EXEC ObtenerEmpleadosPorDepartamento 1;

Conclusión

Los procedimientos almacenados son fundamentales en SQL, optimizando la eficiencia, seguridad y mantenimiento del código en las bases de datos. Su adaptabilidad a distintos sistemas, como MySQL y SQL Server, demuestra su importancia y versatilidad en el desarrollo de bases de datos.

Certifícate en SQL con CertiDevs PLUS

Ejercicios de esta lección Creación y uso de procedimientos almacenados

Evalúa tus conocimientos de esta lección Creación y uso de procedimientos almacenados 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 los procedimientos almacenados y su importancia en el desarrollo de bases de datos.
  2. Conocer la sintaxis básica para crear procedimientos almacenados en diferentes sistemas de gestión de bases de datos, como MySQL y SQL Server.
  3. Aprender cómo ejecutar o llamar un procedimiento almacenado en SQL, utilizando la instrucción CALL en MySQL y EXEC en SQL Server.
  4. Entender el uso de parámetros en los procedimientos almacenados, incluyendo los tipos de parámetros de entrada, salida y de entrada/salida.