MySQL saglabātās funkcijas tiek izmantotas, lai iekapsulētu aprēķinus vai darbības ar ierakstiem un datu laukiem, kas ņemti no SQL vaicājuma un ir kopīgi uzdevumi vai biznesa noteikumi.
Liela priekšrocība ir tā, ka tās ir atkārtoti lietojamas, un programmēšanas valoda, kurā tiek izstrādātas funkcijas, ir SQL paziņojumi un nosacītas vai atkārtotas struktūras.
Atšķirībā no saglabātās procedūras, SQL paziņojumos varat izmantot saglabāto funkciju, kur izmantojat izteiksmi, kas ļauj izveidot nosacītus noteikumus.
Apskatīsim piemēru, kā izveidot skolas datubāzi:
IZVEIDOT DATABĀZI "koledža"Tālāk mēs izveidojam tabulu ar studentu pārbaudes rezultātiem
- - Tabulas struktūra eksāmeniem - CREATE TABLE "DECIMAL (10,2) NOT NULL," piezīme2 "DECIMĀLS (10,2) NOT NULL," piezīme3 "DECIMĀLS (10,2) NOT NULL," vidējais "DECIMĀLS (10,2) NOT NULL," stāvoklis "VARCHAR (100) NULL DEFAULT NULL, PRIMARY KEY ("id")) COLLATE = "latin1_swedish_ci" ENGINE = InnoDB - tabulas "notaseams" indeksi - ALTER TABLE "notasetest" PIEVIENOT PRIMĀRO ATSLĒGU ("id"); Tālāk mēs pievienojam dažus datus tabulas eksāmenu piezīmēm. vidējais "," stāvoklis ") VĒRTĪBAS (1, 1000, 1," 8,00 "," 9,25 "," 7,00 "," 0,00 "," "), (2, 1001, 1," 6,33 "," 8,50 ", "8,00", "0,00", ""), (3, 1002, 1, "10,00", "7,50", "8,33", "0,00", ""), (4, 1003, 2, "4,50") "," 2,00 "," 5,50 "," 0,00 "," ", (5, 1004, 1," 3,50 "," 2,00 "," 4,00 "," 0,00 "," ");
Tālāk mēs izveidosim saglabātu funkciju, kas izskatīs visu atzīmju tabulu un aprēķinās katra skolēna vidējo atzīmi pēc mācību priekšmeta un atjauninās tabulu, lai norādītu, vai tā ir nokārtota vai nav.
Mēs varam izveidot funkciju no Phpmyadmin vai jebkura redaktora, kas ļauj mums rakstīt SQL kodu;
CREATE DEFINER = "root" @"localhost" PROCEDURE "aprēķināt vidējo" () VALODA SQL NAV NOTEIKTS SATURS SQL SQL DROŠĪBAS DEFINĒTĀJA KOMENTĀRS "BEGIN / * Es deklarēju funkcijas * / DECLARE final BOOL DEFAULT FALSE mainīgos; DECLARE id INT; DECLARE INT students; DECLARE INT matērija; DEKLARĀCIJAS piezīme1 FLOAT; DEKLARĒT 2. piezīmi FLOAT; DEKLARĒT 3. piezīmi FLOAT; DECLARE prom FLOAT; / * Es deklarēju ierakstu kopu vai kursoru ar sql vaicājuma datiem * / DECLARE rslist CURSOR FOR SELECT id, student id, material id, note1, note2, note3 no testa piezīmēm; / * Es deklarēju mainīgo, lai noteiktu atkārtotas cilpas beigas DECLARE CONTINUE HANDLER for SQLSTATE '02000' SET final = TRUE; / * Es atveru ierakstu kopu, lai sāktu datu apriti ar cilpu * / OPEN rslista; cilpa: LOOP FETCH rslist INTO id, students, priekšmets, grade1, grade2, grade3; / * Es aprēķinu vidējo * / set avg = (piezīme1 + piezīme2 + piezīme3) / 3; / * Es to saglabāju, atjauninot tabulu * / atjaunināt eksāmena apzīmējumu vidējais = d kur idalumno = students un idmateria = priekšmets; / * Ja atzīme ir lielāka vai vienāda ar 7, es atjauninu statusu kā Apstiprināts, pretējā gadījumā statuss tiks izgāzts * / IF av> = 7 TAD atjauninājums notaseams set status = 'Apstiprināts', kur idalumno = students un idmateria = priekšmets; ELSE atjaunināšanas eksāmena piezīmju kopas statuss = 'Neizdevās', kur studenta ID = students un priekšmeta ID = priekšmets; END IF; IF finalTHEN CLOSE rslist; LEAVE cilpa; END IF; END LOOP; BEIGASTad mēs varam izpildīt funkciju, izmantojot šādu komandu:
CALL "aprēķināt vidējo" ()Rezultātā automātiski atjauninās vidējās un statusa slejas.
MySQL saglabātās funkcijas parasti izmanto aprēķiniem un operācijām, savukārt saglabātās procedūras parasti izmanto biznesa noteikumu izpildei.
Funkcijas parasti neietekmē datu bāzes struktūru, taču, lai veiktu kādu aprēķinu, salīdzinātu un atgrieztu rezultātu vai mainītu datus datu bāzes tabulā, mēs varam arī izveidot sprūdu, lai kontrolētu vai pārbaudītu funkcijas veiktās izmaiņas.
Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu