Dopo aver parlato delle viste affronto il "problema" delle Stored Procedure (SP) in MySQL.
Le SP portanto diversi vantaggi, tra i quali la velocità di esecuzione spicca sugli altri.
Le SP sono più veloci in quanto rimangono nella cache del server e quindi sono più veloci se devono essere richiamate spesso.
Inoltre tutta la logica di esecuzione è lasciata al db separando così i dati dal codice (PHP, Java, C#, ecc....vale per tutti).
I maggiori punti a sfavore derivano dal fatto che non è sempre facile scrivere un layer di astrazione nei vari linguaggi e che non è possibile effetturane il debug.
Per quanto riguarda il primo punto, ciò deriva dal fatto che MySQL non ha una stretta interazione come succede con SQL Server e Asp.NET.
Comunque vediamo come gestire le SP.
Prima di tutto la creazione; connettiamoci al db e scriviamo:
mysql> DELIMITER //
mysql> CREATE PROCEDURE getBook()
-> BEGIN
-> SELECT * FROM book;
-> END//
Query OK, 0 rows affected (0.02 sec)
mysql> DELIMITER ;
DELIMITER // serve per cambiare il delimitatore di fine comando; in questo caso ho impostato // ma può essere uno qualsiasi.
Alla fine ho reimpostato quello tradizionale (il ;).
Si tratta di una vera e propria istruzione; sembra una funziona in VB......
Le istruzioni che ci interessano vanno dentro il blocco BEGIN-END.
getBook() è il nome che gli ho assegnato io; le parenetsi sono obbligatorie proprio come in una funzione/metodo in un linguaggio, e questo perchè è possibile passrgli dei parametri (li vedremo dopo).