Esempi di cursore MySQL

Esempi di cursore MySQL
In MySQL, la query Select restituisce un elenco di record corrispondenti dopo l'esecuzione chiamata set di risultati. Il cursore è una caratteristica utile di MySQL per attraversare ogni record separatamente dal set di risultati. A volte richiede l'esecuzione di ulteriori elaborazioni per tutti i record specifici del set di risultati prima di restituire l'output di query. Questo può essere fatto facilmente usando il cursore. Le caratteristiche, i vantaggi, gli svantaggi e gli usi del cursore MySQL sono stati descritti in questo tutorial.

Caratteristiche del cursore MySQL:

  1. Il cursore MySQL è asensibile per la versione 8 di MySQL+. Significa che il server di database può o meno effettuare una copia del set di risultati.
  2. Il cursore mysql è di sola lettura. Quindi non può essere utilizzato per l'aggiornamento del record.
  3. Il cursore mysql non è scortabile. Significa che può andare avanti solo e non può saltare alcun record.

Passaggi per l'utilizzo di un cursore:

I passaggi principali dell'utilizzo del cursore in MySQL per leggere ogni record di set di risultati sono mostrati di seguito.

Dichiarare un cursore:

Dichiara Cursor_Name Cursor per Select_Statement;

La variabile del cursore richiede di definire per iterating il set di risultati restituito dall'istruzione SELECT.

Apri il cursore

Cursor_name aperto;

Il cursore deve aprirsi per puntare al punto di partenza del set di risultati.

Prendere il cursore

Fetch CURSOR_NAME IN VARIABLE_LIST;

Il comando Fetch viene utilizzato per leggere i campi definiti nella query selezionata che è stata utilizzata al momento della dichiarazione del cursore.

Chiudi il cursore

Chiudere cursore_name;

Il cursore è necessario per chiudere per ripristinare il set di risultati e rimuovere il riferimento al set di risultati.

Prerequisiti:

Devi creare le tabelle necessarie con i dati per conoscere l'uso di un cursore in mysql. Apri il terminale ed esegui il comando seguente per connettersi con il server MySQL se non esiste una password per l'utente root.

$ sudo mysql -u root

Esegui il comando seguente per selezionare il database.

Usa test_db;

Esegui il comando seguente per creare un database denominato test_db.

Crea database test_db;

Esegui la seguente query per creare una tabella denominata Sales_persons con quattro campi.

Crea table Sales_persons (
id int auto_increment chiave primaria,
Nome varchar (30) non null,
Email Varchar (50),
contact_no varchar (30));

Eseguire la seguente query per inserire tre record nel venditore tavolo.

Inserisci in "Sales_persons" ("id", "nome", "email", "contact_no") valori (null, "kamal hasan", "[email protected] ',' 0191275634 '),
(Null, 'Nila Hossain', '[email protected] ',' 01855342357 '),
(NULL, 'Abir Hossain', '[email protected] ',' 01634235698 ');

Esegui la seguente query per creare una tabella denominata saldi con quattro campi che contiene una chiave straniera che creerà la relazione da uno a molti da Sales_persons tavolo a saldi tavolo.

Crea vendite di tabelle (
id int non null Key primario,
Sales_Date Data non null,
Importo int,
sp_id int,
Vincolo fk_sp straniero chiave (SP_ID)
Riferimenti Sales_persons (ID)
Su Elimina Cascade su Aggiornamento Cascade);

Eseguire la seguente query per inserire quattro record nel saldi tavolo.

Inserisci in "Sales" ("Id", "Sales_date", "importo", "sp_id") valori
('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 cursore MySQL:

Il cursore viene utilizzato principalmente nella procedura o nella funzione MySQL che contiene una o più query selezionata e il cursore dichiarato iterate ogni record del set di risultati restituito dalla query. Crea una funzione mysql denominata Calcolazioni_bonus con la seguente affermazione che prenderà un argomento intero e restituirà un valore galleggiante. La query selezionata utilizzata nella funzione calcolerà l'importo totale delle vendite di ciascun venditore e restituirà il nome del venditore e le vendite totali nel set di risultati. La funzione del cursore è di calcolare il 15% delle vendite totali come bonus se l'importo totale delle vendite è superiore a 10000; Altrimenti, il bonus sarà il 10% delle vendite totali. La funzione restituirà l'importo del bonus in base al valore ID del venditore. Esegui la seguente istruzione dal prompt MySQL dopo aver selezionato il database per creare la funzione.

Delimitatore //
Crea funzione "Calcola_Bonus" ("spid" int)
Restituisce Varchar (200)
Legge i dati SQL
DETERMINISTICO
INIZIO
Dichiarare fatto INT IN FALSE DEFAULT;
Dichiarare totale int default 0;
Dichiarare persona varchar (50) predefinito "";
Dichiarare bonus int predefinito 0;
Dichiarare output varchar (200);
Dichiarare Cur Cursore per
Seleziona nome, somma (importo)
Dalle vendite, Sales_persons
Dove sales_persons.id = vendite.sp_id e sp_id = spid
Gruppo di SP_ID;
Dichiara Continua il gestore per non trovato set Done = true;
Cur aperto;
Prendi Cur in persona, totale;
Se totale> 10000 allora
Imposta bonus = totale*0.15;
ALTRO
Imposta bonus = totale*0.10;
FINISCI SE;
Imposta output = concat ("il bonus di", persona ", è TK.", Bonus".");
Close Cur;
Output di restituzione;
FINE;
//

Eseguire la seguente query per leggere tutti i record del Sales_persons tavolo.

Seleziona * da sales_persons;

Eseguire la seguente query per leggere tutti i record del saldi tavolo.

Seleziona * dalle vendite;

Eseguire la seguente domanda per chiamare il Calcolation_bonus () funzione di mysql con il valore dell'argomento, 1. Secondo il tavolo delle vendite, ci sono tre record per il venditore il cui documento è 1. Quindi, il bonus avrà uno sconto del 15% (6700000+900000+800000).

Seleziona Calculate_Bonus (1);

Eseguire la seguente domanda per chiamare il Calcolation_bonus () funzione di mysql con il valore dell'argomento, 2. Secondo il tavolo delle vendite, non vi è alcuna registrazione per il venditore il cui documento è 2. Quindi, il bonus sarà 0.

Seleziona Calculate_Bonus (2);

Eseguire la seguente domanda per chiamare il Calcolation_bonus () funzione di mysql con il valore dell'argomento, 3. Secondo il tavolo delle vendite, c'è un record per il venditore il cui documento è 3. Quindi, il bonus sarà del 15% di 5634555.

Seleziona Calculate_Bonus (3);

Conclusione:

Il cursore MySQL semplifica l'attività specifica iteterando ogni riga della tabella. Il cursore MySQL è stato mostrato in questo tutorial usando una funzione MySQL. Il cursore MySQL può essere utilizzato anche nella procedura MySQL. Spero che il concetto del cursore MySQL venga cancellato per l'utente e l'utente sarà in grado di utilizzare il cursore dopo aver letto questo tutorial.