Funkcijas ir ļoti līdzīgas Saglabātās procedūras (SP), atšķirība ir dažās detaļās, no kurām galvenā ir tā, ka tās atgriež tikai vienu vērtību, ja SP var atgriezt vairāk nekā vienu, turklāt mums nav nepieciešams mainīgais, lai saglabātu iegūto vērtību, tāpēc to ir daudz vieglāk izmantot SELECT .
Funkcijas izveideFunkcijas mērķis ir izolēt loģiku aiz noteiktiem elementiem, lai tos būtu vieglāk izmantot, tādā veidā mēs varam dokumentēt datu bāzi un tās darbību un spēt vienkāršot tās lietojumprogrammas darbības, kuras varētu sazināties ar dati. Lai izveidotu funkciju, mēs izmantosim šādus elementus:
- Vaicājuma kaste, kur mēs varam ierakstīt funkciju.
- Atdalītāja maiņa.
- Funkcijas rediģēšanas un manipulācijas mehānisms.
Apskatīsim, kā definēt funkciju, izmantojot piemēru:
IZVEIDOT FUNKCIJU get_country_name (param_country_code CHAR (2)) RETURNS VARCHAR (50) LASA SQL DATUS SĀKT DEKLARĀCIJU var_country_name VARCHAR (50) DEFAULT 'not found'; SELECT apraksts no valsts WHERE kods = param_country_code INTO var_country_name; ATGRIEZT var_valsts_nosaukums; END //Kā redzam, sintakse ir ļoti līdzīga tai SP, tikai šeit mēs nenosakām vērtības IN Y ĀRĀ ja nē, mēs definējam to ievadītos parametrus un deklarējam vienu vērtību, kas būs ATGRIEZTIES.
Kad mēs ejam uz sadaļu Rutīnas Datu bāzes struktūras lapā mēs to redzēsim šādi:
Pēc tam, kad būsim izveidojuši savu funkciju, redzēsim, kā mēs to varam pārbaudīt, šī funkcija, ko mēs izmantojam kā pārbaudi, ko tā dara, ir apspriesties ar valstu tabulu un atgriezt valsts nosaukumu, kad mēs lūdzam kodu. to neatrodot, tas mūs atgriež nav atrasts:
Izvēlieties CONCAT ('ca->', get_country_name ('ca'), ', zz->', get_country_name ('zz')) kā testu;Mēs vienkārši veicam atlasi ar CONCAT, lai rezultātus apvienotu virknē, un mēs iegūsim sekojošo:
ca-> Kanāda, zz-> nav atrastsKā redzam, tas ir daudz vieglāk nekā izveidot vaicājumus, ar kuriem katra valsts apspriedīsies atsevišķi.
Aktivizētāji Aktivizētāji atšķiras no funkcijām un Saglabātās procedūrasLietotājam tie nav jāizsauc, tie notiks, kad tiks izpildīta darbība uz tabulas, ar kuru tie ir saistīti, kas noved mūs pie citu funkciju atšķirības, proti, tās ir vispārīgas; Aktivizētāji ja tie ir saistīti ar konkrētu tabulu.
Apskatīsim, kā izveidot a Aktivizētājs:
CREATE TRIGGER after_book_insert PĒC IEVIETOŠANAS GRĀMATĀ KATRĀ RĪCĀ SĀKT ATJAUNINĀT autoru SET total_page_count = total_page_count + NEW.page_count WHERE id = NEW.author_id; END //Kā redzam, mums ir arī jādefinē jauns norobežotājs // vaicājuma lodziņā, lai mēs varētu iekļaut visus Aktivizētājs, piemēra gadījumā mēs to saistām Pēc ievietošanas tas ir, pēc ievietošanas un pēc tam noteiktās darbības izpildes tas palīdz datu bāzei autonomi pārvaldīt darbības, kad tās notiek.
Reiz Aktivizētājs Dodoties uz tabulas struktūras lapu, mēs redzēsim to pieejamu: