Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Le novità di MySQL 5: Le Stored Procedures :: Indice Php

Le novità di MySQL 5: Le Stored Procedures

Categoria: Php Inserito il: 05-12-2005 Stampa (6554 click)

Dal miglioramento di un DBMS, l'utilizzatore si aspetta in particolare innovazioni riguardanti la velocità e la semplicità nell'allocare e poter manipolare dati; le Stored Procedures vengono incontro a queste esigenze consentendo di interagire con i nostri archivi attraverso istruzioni pił brevi rispetto a quelle necessarie per le versioni precedenti di MySQL e, elemento altrettanto importante, esse prevedono un alto grado di indipendenza dalla piattaforma utilizzata con evidenti vantaggi in materia di portabilità.

Alla base delle Stored Procedures vi è un ragionamento tanto semplice quanto efficace: spostare la logica su cui si fondano le interrogazioni dalle applicazioni che fanno uso delle basi di dati ai database stessi.
Una Stored Procedure è una procedura, che potremmo definire pił propriamente con il termine sotto-programma, allocata all'interno di una base di dati. Essa consente di stabilire a priori delle routines da richiamare ogni volta che si dovesse presentare l'esigenza di una loro azione sui dati; le istruzioni da digitare divengono quindi pił brevi, in quanto non abbiamo bisogno di riscrivere una determinata istruzione quando ne abbiamo bisogno, basterà invece richiamare la procedura ad essa associata, la chiamata ne imporrà l'esecuzione.

Vi sono principalmente due tipi di Stored Procedures: quelle procedure che vengono richiamate dall'utilizzatore e quelle funzioni che restituiscono valori utilizzati in precedenti dichiarazioni SQL.

Chi ha pratica di linguaggi di scripting o pił in generale di programmazione, avrà già notato alcune importanti affinità, in effetti, le Stored Procedures richiamano numerosi costrutti utilizzati nella digitazione dei listati: variabili per cui si dovrà dichiarare il tipo di dato, valori in input e in output, funzioni personalizzate, istruzioni condizionali (if, else ..), istruzioni di iterazione (cicli, loop...).

Presentiamo ora un breve esempio che illustra la creazione di una procedura in sede di digitazione dei comandi:

CREATE PROCEDURE procedura (IN parametro INTEGER)           
BEGIN
DECLARE var VARCHAR(255);
IF parametero = 20 THEN
SET var = 'rosso';
ELSE SET var = 'giallo';
END IF;
INSERT INTO tabella VALUES (var);
END
Niente di particolarmente complicato, anche coloro che non hanno pratica delle Stored Procedures capiranno facilmente la semplice logica su chi si basa il procedimento appena esposto.

Innanzitutto dobbiamo dare un nome alla nostra procedura ("CREATE PROCEDURE procedura"), il momento dell'imposizione del nome implica un processo creativo, quindi, da quel momento in poi la nostra procedura "esisterà".

Introduciamo un parametro sulla base del quale la nostra procedura dovrà "ragionare" ("IN parametro INTEGER"); il parametro assumerà in seguito un determinato valore, quindi dovremo stabilirne il tipo di dato, nel nostro caso si tratterà di un numero intero ("INTEGER").

Ora, si passa al blocco di istruzioni vero è proprio, infatti tutto ciò che verrà digitato tra il delimitatore iniziale ("BEGIN") e il delimitatore finale ("END"), rappresenterà il "comportamento" che dovrà aver luogo tramite la nostra procedura.

Dichiariamo la variabile ("DECLARE var VARCHAR(255)"), anche la variabile come il parametro assumerà in seguito un valore, la differenza stà però nel fatto che "var" assumerà un valore che sarà condizionato da quello stabilito per il parametro, inoltre, mentre il parametro è un numero intero, la variabile viene indicata come una stringa di caratteri ("VARCHAR").

Ecco entrare in gioco la nostra istruzione condizionale: se ("IF") il parametro avra un valore pari a "20", allora ("THEN") la variabile "var" assumerà un valore stringa uguale a "rosso" ("SET var = 'rosso';"), altrimenti ("ELSE") il valore della variabile sarà uguale a "giallo".

Infine, una volta conclusa la nostra istruzione di controllo ("END IF"), potremo dar luogo al comportamento atteso ("INSERT INTO tabella VALUES (var);"), la variabile verrà quindi allocata nella tabella dopo essere stata valorizzata in conseguenza dell'entità del parametro.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione, anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle pił importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
httpd.conf: il cuore di Apache
I comportamenti e le funzionalità di Apache vengono stabilite da un file di configurazione chiamato httpd.conf modificabile attraverso un semplice... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti