1. Declarando variables:
- Variables definidas por el usuario: Use el símbolo `@` seguido del nombre de la variable. Estas variables son específicas de la sesión.
`` `SQL
Set @my_variable ='algún valor';
`` `` ``
- Variables locales: Declarado dentro de los procedimientos o funciones almacenadas utilizando la palabra clave 'Declarar'. Estos tienen un alcance limitado.
`` `SQL
Crear procedimiento my_procedure ()
COMENZAR
Declarar total_orders int;
- ... el resto de su procedimiento
FIN;
`` `` ``
2. Asignación de valores a variables:
- usando `set`:
`` `SQL
Set @user_id =123;
`` `` ``
- De una consulta seleccionada:
`` `SQL
Seleccione Count (*) en @Total_Products de productos;
`` `` ``
- Dentro de un procedimiento o función almacenada:
`` `SQL
Declarar product_name varchar (255);
Seleccione el nombre en Product_Name de productos donde id =1;
`` `` ``
3. Usando variables en consultas:
- En donde las cláusulas:
`` `SQL
Seleccionar * de usuarios donde id =@user_id;
`` `` ``
- En listas de selección:
`` `SQL
Seleccione Nombre, @Discount_Percentage * Precio como descuento_price de productos;
`` `` ``
- en insertar, actualizar y eliminar declaraciones:
`` `SQL
Actualizar productos establece precio =@new_price donde id =@product_id;
`` `` ``
Ejemplo:
Supongamos que desea encontrar todos los pedidos realizados por un usuario con una ID de usuario específica y calcular el valor de pedido total:
`` `SQL
- Establecer la ID de usuario
Set @user_id =1;
- Calcule el valor de pedido total para el usuario
SELECCIONAR
O.Order_id,
Suma (oi.quantity * p.price) como total_order_value
De los pedidos o
Unir orden_items oi en o.order_id =oi.order_id
Unir productos P en OI.Product_id =P.ID
Donde o.user_id =@user_id
Grupo de O.Order_id;
`` `` ``
Esta consulta primero establece la variable `@user_id` en 1. Luego, utiliza esta variable en la cláusula WHERE para filtrar pedidos realizados por el usuario con ID 1.
Puntos clave:
-Las variables definidas por el usuario son específicas de la sesión y sus valores se pierden cuando finaliza la sesión.
- Las variables locales solo son accesibles dentro del procedimiento o función almacenada donde se declaran.
- Evite usar los mismos nombres de variables para variables locales definidas por el usuario y para evitar un comportamiento inesperado.
- Use las variables juiciosamente para mejorar la legibilidad y la reutilización de las consultas.