Proceduri memorate în mysql - totul despre asta și programare

Ce este necesar pentru asta? Instalați versiunea serverului MySQL versiunea 5 sau o versiune superioară (dev.mysql.com/downloads). Proceduri Puteți crea interogări, cum ar fi linia de comandă MySQL, dar pentru comoditatea de consultanță pentru a descărca MySQL GUI Tools (dev.mysql.com/downloads/gui-tools). Acest pachet include trei programe - MySQL Administrator, MySQL Query Browser și MySQL Migration Toolkit. Avem nevoie de primele două. (Deși puteți gestiona un MySQL Query Browser, dar toate aceste $ $ în procedurile stocate pot uneori să fie confuze).






Prima procedură stocată

Deci, MySQL deschis de Administrator, conectați la serverul MySQL și de a crea o nouă schemă (baze de date), faceți clic pe cataloage, selectați Creare schima în scheme (Ctrl + N). Denumiți-o cumva (de exemplu, db). Deschideți diagrama nou creată, selectați fila Proceduri stocate și faceți clic pe butonul Creare stocată. Denumiți procedura procedurii dvs. 1. În corpul procedurii (între BEGIN și END), scrieți următoarele:
Și faceți clic pe Executare SQL - procedura este creată. Deschideți MySQL Query Browser, selectați schema dvs. (db) și introduceți următoarea interogare:
Voila! Felicitări.

Variabile în MySQL

Pentru a extrage unele beneficii din procedurile stocate în MySQL, va trebui să lucrați cu variabile. Deoarece acest lucru nu este în sfera de aplicare a acestui articol, voi arăta doar câteva exemple.

Variabile simple

Variabile de sistem

Diferența dintre variabilele simple și sistemul este că variabilele de sistem sunt accesibile din afara procedurii stocate. Adică, pentru a extrage câteva date de care aveți nevoie pentru a utiliza sistemul, variabilele care sunt necesare doar în cadrul procedurii ar trebui să fie simple.

Parametrii în procedurile stocate

Și aici, totul este foarte simplu. Schimbați prima linie care declară procedura:
Aici, cuvântul cheie IN indică faptul că parametrul este numai pentru citire. Apoi, cu acest parametru, lucrăm cu variabila obișnuită din cadrul procedurii:

Condiții, cicluri. DACĂ, MAI MULT







Condițiile și ciclurile de care veți avea nevoie cu siguranță la scrierea unor proceduri complexe stocate, dar nu mă voi concentra asupra acestui subiect. Cred că aveți cel puțin câteva abilități de programare pe care le aveți, așa că vă voi arăta numai sintaxa.

Un exemplu simplu

Una dintre aplicațiile bune proceduri memorate - atunci când trebuie să combinați mai multe interogări într-una singură, cum ar fi adăugarea de fire în forum și creșterea numărului total de subiecte. Să presupunem masa de fire
Aici titlul va fi titlul unui subiect nou. Ei bine, și tabelul, de exemplu, cu variabile statistice diferite ale unui site, inclusiv cantitatea generală de teme în formă.
Aici se pare că totul este clar, să presupunem că avem o intrare acolo cu nume = fire și valoare = 0. Creați o nouă procedură de stocare procedură2.
Nu există nimic de explicat, doar două solicitări au fost combinate într-una. Acum putem numi această procedură în felul următor:
Astfel, în loc de a trece două sau mai multe solicitări (de exemplu prin intermediul PHP), putem trimite unul - pentru a optimiza, cod curat și pot fi schimbate în orice moment, fără a afecta celelalte script-uri.

Cursoare (cursoare MySQL)

Cursorii vă permit să parcurgeți toate rezultatele interogării. Este dificil să explic în teorie, o voi arăta în practică. Adăugați încă o masă în baza noastră de date - rezultate:
Aici vom scrie toate etichetele din toate subiectele. Procedura stocată va arăta cam așa:
În detaliu. Procedura va trece prin fiecare subiect, fiecare etichetă va rupe prin tabela de etichete, iar dacă această etichetă lipsește, ea o va adăuga.

Deschideți cursorul și obțineți prima înregistrare. Următorul în buclă - Selectați numărul de potriviri din tabela de etichete pentru eticheta curentă și puneți rezultatul în variabila iCount. Dacă nu există rezultate, introduceți o etichetă nouă cu INSERT.

În cele din urmă, închideți cursorul și ieșiți din procedură. Ei bine, asta e tot.

Recuperarea datelor

Să reamintim variabilele sistemului și să luăm în considerare o altă manipulare a tabelelor noastre - să obținem numărul total de etichete și subiecte. Să mergem direct la procedură:
Declarăm două variabile - iTags - numărul de etichete și iThreads - numărul total de subiecte.

Apoi, două selecții simple, completând variabilele noastre. Ei bine, în final, atribuim valorile variabilelor simple actuale la variabilele sistemului. Cand este chemat, aceasta procedura nu returneaza nimic, dar dupa apelul sau, putem citi valorile cerute de la variabilele sistemului:

Viziunile sunt uneori numite "tabele virtuale". Acest nume se datorează faptului că vizualizarea este disponibilă pentru utilizator ca un tabel, dar ea însăși nu conține date, ci le extrage din tabele în momentul accesării acestora. Dacă datele sunt modificate în tabelul de bază, utilizatorul va primi.

Interfață simplă cu perl MySQL DBMS Această interfață este prima modalitate de a accesa baza de date MySQL din programul perl. Pe scurt despre lucrul principal: folosiți Mysql; $ dbh = Mysql-> Connect; $ dbh = Mysql-> Conectare ($ gazdă); $ dbh = Mysql-> Conectați ($ host, $ database); n.







Articole similare

Trimiteți-le prietenilor: