Ejemplos de cursor mysql

Ejemplos de cursor mysql
En MySQL, la consulta de selección devuelve una lista de registros coincidentes después de la ejecución llamado el conjunto de resultados. El cursor es una característica útil de MySQL para atravesar cada registro por separado del conjunto de resultados. A veces requiere realizar un procesamiento adicional para todos los registros específicos del conjunto de resultados antes de devolver la salida de consulta. Esto se puede hacer fácilmente usando el cursor. Las características, ventajas, desventajas y usos del cursor MySQL se han descrito en este tutorial.

Características del cursor MySQL:

  1. El cursor MySQL es asensible para la versión 8 de MySQL+. Significa que el servidor de la base de datos puede o no hacer una copia del conjunto de resultados.
  2. El cursor mysql es de solo lectura. Entonces no se puede usar para actualizar el registro.
  3. El cursor mysql no es desplazable. Significa que solo puede avanzar y no puede omitir ningún registro.

Pasos para usar un cursor:

Los pasos principales de usar el cursor en MySQL para leer cada registro de establecimiento de resultados se muestran a continuación.

Declarar un cursor:

Declarar cursor_name cursor para select_statement;

La variable del cursor requiere definir para iterar el conjunto de resultados devuelto por la instrucción SELECT.

Abra el cursor

Abrir cursor_name;

El cursor debe abrirse para apuntar al punto de partida del conjunto de resultados.

Buscar el cursor

Buscar cursor_name en variable_list;

El comando Fetch se usa para leer los campos definidos en la consulta de selección que se ha utilizado al momento de declarar el cursor.

Cierre el cursor

Cerrar cursor_name;

Se requiere que el cursor cierre para restablecer el conjunto de resultados y eliminar la referencia al conjunto de resultados.

Requisitos previos:

Debe crear las tablas necesarias con datos para conocer el uso de un cursor en mysql. Abra el terminal y ejecute el siguiente comando para conectarse con el servidor MySQL si no hay contraseña para el usuario root.

$ sudo mysql -u root

Ejecute el siguiente comando para seleccionar la base de datos.

Usar test_db;

Ejecute el siguiente comando para crear una base de datos llamada test_db.

Crear base de datos test_db;

Ejecute la siguiente consulta para crear una tabla llamada Sales_persons con cuatro campos.

Crear tabla sales_persons (
ID int Auto_Increment Key primario,
Nombre Varchar (30) No nulo,
Envíe un correo electrónico a Varchar (50),
contact_no varchar (30));

Ejecute la siguiente consulta para insertar tres registros en el ventas_person mesa.

Insertar en 'Sales_persons' ('id', 'nombre', 'correo electrónico', 'contact_no') valores (nulo, 'kamal Hasan', '[email protected] ',' 0191275634 '),
(NULL, 'Nila Hossain', '[email protected] ',' 01855342357 '),
(NULL, 'Abir Hossain', '[email protected] ',' 01634235698 ');

Ejecute la siguiente consulta para crear una tabla llamada ventas con cuatro campos que contiene una clave extranjera que creará la relación de uno a muchos de los Sales_persons mesa al ventas mesa.

Crear ventas de mesa (
ID int no la clave primaria nula,
Sales_date fecha no nula,
cantidad int,
sp_id int,
Restricción FK_SP Clave externa (SP_ID)
Referencias Sales_persons (ID)
En Eliminar Cascade en actualización Cascade);

Ejecute la siguiente consulta para insertar cuatro registros en el ventas mesa.

Insertar en 'ventas' ('id', 'sales_date', 'cantidad', 'sp_id') valores
('90', '2021-11-09', '800000', '1'),
('34', '2020-12-15', '5634555', '3'),
('67', '2021-12-23', '900000', '1'),
('56', '2020-12-31', '6700000', '1');

Uso del cursor MySQL:

El cursor se usa principalmente en el procedimiento o función de MySQL que contiene una consulta selecta o más selección, y el cursor declarado itera cada registro del conjunto de resultados devuelto por la consulta. Crear una función mysql llamada Calculación_bonus con la siguiente declaración que tomará un argumento entero y devolverá un valor flotante. La consulta selecta que se ha utilizado en la función calculará el monto total de ventas de cada vendedor y devolverá el nombre del vendedor y las ventas totales en el conjunto de resultados. La función del cursor es calcular el 15% de las ventas totales como bonificación si el monto total de ventas es más de 10000; de lo contrario, el bono será el 10% de las ventas totales. La función devolverá el monto de bonificación en función del valor de identificación del vendedor. Ejecute la siguiente declaración desde la solicitud de MySQL después de seleccionar la base de datos para crear la función.

Delimitador //
Crear función 'calculado_bonus' ('spid' int)
Devuelve Varchar (200)
Lee datos de SQL
Determinista
COMENZAR
Declarar INT INT predeterminado falso;
Declarar Total int predeterminado 0;
Declarar persona varchar (50) predeterminado "";
Declarar bonus int predeterminado 0;
Declarar la salida varchar (200);
Declarar cursor cursor para
Seleccionar nombre, suma (cantidad)
De ventas, sales_persons
Donde sales_persons.ID = ventas.sp_id y sp_id = spid
Grupo por sp_id;
Declare Continir Handler para no encontrado establecido hecho = True;
Abierta curs;
Buscar curas en persona, total;
Si total> 10000 entonces
Establecer bonificación = total*0.15;
DEMÁS
Establecer bonificación = total*0.10;
TERMINARA SI;
Establecer la salida = concat ("la bonificación de", persona ", es TK.", Bonus".");
Cierre curs;
Salida de retorno;
FIN;
//

Ejecute la siguiente consulta para leer todos los registros del Sales_persons mesa.

Seleccionar * de Sales_persons;

Ejecute la siguiente consulta para leer todos los registros del ventas mesa.

Seleccionar * de las ventas;

Ejecute la siguiente consulta para llamar al Calculate_bonus () función de mysql con el valor del argumento, 1. Según la tabla de ventas, hay tres registros para el vendedor cuya identificación es 1. Entonces, el bono será del 15% de descuento (6700000+900000+800000).

Seleccionar calculación_bonus (1);

Ejecute la siguiente consulta para llamar al Calculate_bonus () función de mysql con el valor del argumento, 2. Según la tabla de ventas, no hay registro para el vendedor cuya identificación es de 2. Entonces, el bono será 0.

Seleccionar calculación_bonus (2);

Ejecute la siguiente consulta para llamar al Calculate_bonus () función de mysql con el valor del argumento, 3. Según la tabla de ventas, hay un registro para el vendedor cuya identificación es de 3. Entonces, el bono será el 15% de 5634555.

Seleccionar calculación_bonus (3);

Conclusión:

El cursor MySQL facilita la tarea específica al iterando cada fila de la tabla. El cursor MySQL se ha mostrado en este tutorial utilizando una función mysql. El cursor MySQL se puede usar dentro del procedimiento MySQL también. Espero que el concepto de cursor de MySQL se borre para el usuario, y el usuario pueda usar el cursor después de leer este tutorial.