Database
 sql >> Database >  >> RDS >> Database

Che cos'è un cursore in SQL e come implementarlo?

I cursori in SQL costituiscono parte integrante di qualsiasi database che fondamentalmente aiuta un utente ad attraversare il database senza troppi problemi. Attraverso questo articolo sul cursore in SQL ti fornirò tutti i dettagli necessari di cui devi aver bisogno prima di bagnarti i piedi con esso.

Di seguito sono riportati gli argomenti che tratterò in questo articolo:

  • Cos'è il cursore in SQL?
  • Tipi di cursori SQL
  • Sintassi di un cursore SQL
  • Ciclo di vita del cursore

Cos'è il cursore in SQL?

Il cursore in SQL è un oggetto che consente l'attraversamento delle righe di qualsiasi set di risultati. Con questo, puoi elaborare una singola riga di un database che viene restituita da una query. È un'area di lavoro temporanea o un'area di contesto che viene creata nel sistema di memoria durante l'esecuzione di un'istruzione SQL che memorizza i dati recuperati dal database e ne facilita la manipolazione. Puoi considerarlo come una disposizione di righe insieme a un puntatore che punta alla riga attuale. Un cursore è un oggetto di database che può contenere più di una riga ma può elaborare solo una riga alla volta. L'insieme di righe trattenute da un cursore è noto come attivo impostare. In questo modo puoi controllare il record di una tabella in una tecnica singleton, ovvero una riga in qualsiasi momento.

Ora che hai familiarità con cosa è un cursore in SQL, andiamo avanti e diamo un'occhiata ai suoi vari tipi.

Tipi di cursore SQL

SQL fornisce due tipi di cursori che ho elencato di seguito:

  1. Cursore implicito

Ogni volta che operazioni DML come INSERT, UPDATE e DELETE vengono elaborate nel database, i cursori impliciti vengono generati automaticamente e utilizzati dal framework. Questi tipi di cursori vengono utilizzati per l'elaborazione interna e non possono essere controllati o referenziati da un'altra area di codice. I cursori impliciti in SQL mantengono semplicemente le righe interessate dall'operazione e possono fare riferimento solo al cursore più recente utilizzando gli attributi del cursore mostrati di seguito nella tabella.

Attributo Descrizione
%FOUND Restituirà TRUE nel caso in cui un'istruzione INSERT, UPDATE o DELETE influisca su una o più righe o un'istruzione SELECT INTO restituisca una o più righe. Negli altri casi, restituirà FALSE.
%NOTFOUND Tecnicamente è l'opposto dell'attributo %FOUND. Restituisce TRUE nel caso in cui un'istruzione INSERT, UPDATE o DELETE non influisca su alcuna riga o un'istruzione SELECT INTO non restituisca righe. Altrimenti restituisce solo FALSE.
%ISOPEN Questo attributo restituirà sempre FALSE per i cursori impliciti poiché il cursore SQL viene automaticamente chiuso subito dopo l'esecuzione dell'istruzione SQL associata.
%ROWCOUNT Restituisce il numero totale di righe interessate da un'istruzione INSERT, UPDATE o DELETE o le righe restituite da un'istruzione SELECT INTO.
  • Cursore esplicito

  • Questo tipo di cursore viene generato ogni volta che i dati vengono elaborati da un utente tramite un blocco SQL. In genere, l'uso della query SELECT attiva la creazione di un cursore esplicito e può contenere più di una riga ma elaborarne solo una alla volta. Questo tipo di cursore viene utilizzato per contenere i record presenti in una colonna. Ciò consente ai programmatori di creare un'area di contesto denominata per l'esecuzione delle operazioni DML per un migliore controllo. Inoltre, deve essere definito nel blocco SQL e, a sua volta, viene creato per una query SELECT utilizzando quel codice.

    Per comprendere meglio un cursore, vediamo ora qual è la sintassi di un cursore in SQL.

    Sintassi di un cursore SQL

    Di seguito è riportata la sintassi generale per la creazione di un cursore esplicito.

    CURSOR cursorName IS selectStatement;

    Qui:

    cursorName – Rappresenta un nome valido per il cursore

    selectStatement:rappresenta una query di selezione che restituirà più righe

    Procediamo ora ulteriormente con questo articolo e vediamo il ciclo di vita di un cursore SQL.

    Ciclo di vita del cursore

    Ci sono fondamentalmente 5 fasi nel ciclo di vita di un cursore in SQL che ho elencato di seguito:

    1. Dichiara
    DECLARE cursorName CURSOR
    FOR selectStatement;

    Questo passaggio ti aiuterà a specificare il nome e il tipo di dati del cursore e l'istruzione SELECT definirà il suo set di risultati.

    1. Aperto
    OPEN cursorName;

    Questo passaggio ti consentirà di aprire e popolare il cursore eseguendolo.

    1. Recupera
    FETCH NEXT FROM cursor INTO variableList;

    Questo passaggio recupererà una riga dal cursore e la memorizzerà in una o più variabili.

    [Facoltativo] CheckStatus

    WHILE @@FETCH_STATUS = 0
    BEGIN
    FETCH NEXT FROM cursorName;
    END;

    Questa funzione restituisce lo stato dell'ultima istruzione FETCH eseguita sul cursore. Nel caso in cui questa funzione restituisca 0, significa che l'operazione FETCH ha avuto successo. Per recuperare tutte le righe dal cursore, viene utilizzata la clausola WHILE.

    1. Chiudi
    CLOSE cursorName;

    Questo passaggio ti aiuterà a chiudere il cursore dopo che le operazioni sono state completate.

    1. Deallocare
    DEALLOCATE cursor_name;

    Questo passaggio aiuterà a deallocare il cursore e liberare spazio in memoria.

    Con questo, vorrei concludere questo articolo sul cursore in SQL. Spero che questo articolo ti abbia aiutato ad aggiungere valore alle tue conoscenze. Per ulteriori informazioni su SQL o database, puoi fare riferimento al nostro elenco di letture completo qui:Databases Edureka .

    Nozioni di base su SQL per principianti | Impara SQL | Esercitazione SQL per principianti | Edureka

    Questo video Edureka su "Nozioni di base su SQL per principianti" ti aiuterà a comprendere le basi di SQL e anche le query SQL che sono molto popolari ed essenziali.

    Se desideri ricevere una formazione strutturata su MySQL, dai un'occhiata al nostro Formazione per la certificazione DBA MySQL che viene fornito con una formazione dal vivo con istruttore e un'esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere in modo approfondito MySQL e a raggiungere la padronanza dell'argomento.

    Hai una domanda per noi? Si prega di menzionarlo nella sezione commenti di "Cursore in SQL ” e ti ricontatterò.