RED LINE Cele mai bune soluții pentru dvs. și afacerea dvs.!
Orașul Khabarovsk, str. Gamarnik, 8
(4212) 658-653, 637-673
8-924-200-7194, 8-924-200-4895
Pentru regiunile din Rusia
8-800-550-9899
(de la 3 la 11 ora Moscovei, apelul este gratuit)
Contactați-ne
Acasa MySQL Baze de date proceduri stocate
Pentru mult timp m-am chinuit de această întrebare. Literatura de pe Internet este mică, mai ales în limba rusă. A trebuit să întreb în jurul valorii de forumuri străine, să intru mai adânc în manuale și să clarific câteva momente de neînțeles pentru mine. Deci, pe scurt despre procedurile stocate în MySQL.
Proceduri memorate - ce este?
Procedurile memorate au apărut de la versiunea 5 a MySQL. Ele vă permit să automatizați procese complexe la nivelul MySQL, mai degrabă decât să utilizați scripturi externe pentru acest lucru. Acest lucru ne oferă cea mai mare viteză de execuție, deoarece Nu conducem un număr mare de solicitări, ci numai o singură dată când sunăm această procedură (sau funcție).
Ce este necesar pentru asta? Instalați versiunea serverului MySQL versiunea 5 sau o versiune superioară (dev.mysql.com/downloads). Procedurile pot fi create ca interogări, de exemplu, prin linia de comandă MySQL, dar pentru comoditate vă sfătuiesc să descărcați 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, deschideți administratorul MySQL, conectați-vă la serverul MySQL și creați o schemă nouă (baza de date): faceți clic pe Catalogs, selectați Create New Schema în zona Schemata (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:
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
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.
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:
Procedura CALL2 ("firul meu nou");
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.
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.
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:
O concluzie și nu va fi;) Voi fi fericit să vă răspund la întrebările dvs. - scrieți comentariile.
Trimiteți-le prietenilor:
Promovare: Comandați orice site înainte de sfârșitul promoției și obțineți o reducere
+ selectarea kernelului semantic
+ optimizarea motorului de căutare al site-ului
Acest lucru vă va permite să primiți și mai mult trafic și în consecință clienții de pe Internet!
Până la sfârșitul campaniei rămâne
O reprezentare calitativă și extinsă a afacerii dvs. pe web este solicitată de orice structură comercială în creștere care încearcă să sporească vânzările, din acest motiv, printre clienții noștri, atât companii mari cât și companii mici din multe orașe din Rusia și din străinătate.
Cum lucram:
consultare
Discutăm ce aveți nevoie și ajutați să determinați cât de bine să faceți acest lucru!
acord
Incheiem un contract de furnizare a serviciilor, in care sunt prevazute conditiile si obligatiile ambelor parti.
Performanța lucrărilor
Furnizarea directă a serviciilor necesare și a lucrărilor pentru misiunea dvs.
suport
Acceptarea lucrărilor finalizate, ajustări ulterioare și sprijin, dacă este necesar.
Mai rămân alte întrebări? Discutați toate detaliile cu managerul
de la ora 3 la ora 11 Moscova, apelul este gratuit