MySQL MariaDB

Opret lagrede procedurer i MySQL

Opret lagrede procedurer i MySQL
Lagrede procedurer er en brugerdefineret liste over præ-kompilerede SQL-instruktioner, der opbevares og betjenes on-demand i en MySQL-databank for at udføre en bestemt databaseproces. Dette indebærer, at det er sandsynligt at genbruge manuskriptet igen. En procedure har en titel, et sæt parametre og en erklæring fra SQL (er), således at den lagrede procedure kan fungere baseret på værdien (erne) for den overførte parameter. De lagrede procedurer skal udføres ved hjælp af CALL-sætningen. Lad os i denne vejledning undersøge lidt efter lidt processen med at generere nye lagrede procedurer inden for MySQL CREATE PROCEDURE-klausulen. Så lad os komme i gang.

Opret lagret procedure via arbejdsbænk:

Åbn den nyinstallerede MySQL Workbench 8.0 og forbinde den med root localhost-databasen.

Inde i Workbench er der en Navigator-bjælke. Under denne navigatorlinje er der et sæt forskellige funktioner i MySQL. Den indeholder en liste over databaser, tabeller, lagrede procedurer og mange flere, som du kan se på billedet.

Når du udforsker indstillingen 'Tabeller', finder du en liste over tabeller i en gittervisning. Som vist nedenfor har vi en tabel 'social'.

Højreklik på indstillingen 'Lagret procedure' og klik på 'Opret lagret procedure' som vist på billedet.

Et nyt vindue åbnes som vist på billedet nedenfor. Du kan ændre navnet på den gemte procedure i forespørgselsområdet ved at fjerne værdien i omvendte kommaer.

Nu kan du redigere denne forespørgsel efter dit ønske. Vi navngiver den lagrede procedure som 'detalje', mens vi henter dataene fra en tabel 'social', hvor dens værdi i kolonnen 'Hjemmeside' svarer til 'Instagram.'Dette betyder, at butiksproceduren efter udførelse kun viser de poster fra denne tabel, hvor' hjemmesiden 'er' Instagram.'Klik på knappen Anvend.

Du får et preview-skærmbillede, hvor du kan ændre eller ændre din forespørgsel, hvis det kræves. Du kan se en fuld syntaks af den nyoprettede lagrede procedure via Workbench. Klik på knappen Anvend for at udføre den.

Hvis der ikke er nogen fejl i forespørgslen, fungerer den korrekt som vist nedenfor. Tryk på knappen Afslut.

Når du ser på indstillingen lagrede procedurer og opdaterer den, viser den dig en nyoprettet procedure.

Når du udfører denne procedure, viser den dig, at de eneste poster, der har en kolonneværdi på 'Websted', er 'Instagram' som nedenfor.

Opret lagret procedure via kommandolinjeskal:

Åbn kommandolinjeklientskallen til MySQL 8.0 og indtast adgangskoden til MySQL nedenunder.

Antag, at vi har en tabel med navnet 'record' i databaseskemaets 'data'. Lad os kontrollere optegnelserne over det ved hjælp af kommandoen SELECT som følger:

>> VÆLG * FRA data.optage;

Brug kommandoen 'brug data' til at bruge databasen, hvor du vil tilføje den gemte procedure.

>> bruge data;

Eksempel 01: Lagret procedure uden parametre

For at oprette en procedure uden en parameter skal du oprette den med en CREATE PROCEDURE-kommando forud for nøgleordet 'DELIMITER'. Derefter opretter vi en procedure med navnet 'Filter' uden parametre. Den henter alle poster fra tabellen 'record', hvor kolonnen 'Country' har 'ia' i slutningen af ​​dens værdier. Processen skal afsluttes med nøgleordet 'END'.

Vi bruger CALL-klausulen til at udføre den lagrede procedure i kommandolinjen. Efter kørsel af CALL-kommandoen har vi nedenstående resultater. Du kan se, at forespørgslen kun skal hente de poster, hvor kolonnen 'Land' har 'ia' i slutningen af ​​dens værdier.

Eksempel 02: Lagret procedure med en enkelt parameter

Det er på høje tid at generere en procedure med en enkelt parameter. Til dette skal du bruge forespørgslen CREATE PROCEDURE med hovedet på nøgleordet 'DELIMITER.'Så vi er nødt til at oprette en procedure' Rec ', der tager en værdi som et inputargument, hvori i dette eksempel er variabel' Var1 'af en bruger i sine parametre. Begynd proceduren med 'BEGIN' nøgleord. SELECT-sætningen bruges til at hente alle poster fra tabellen 'record', hvor kolonnen 'Name' har den samme værdi som i 'Var1'. Dette er en matchning af poster. Afslut den gemte procedure med nøgleordet 'END' efterfulgt af '&&' tegn.

''

Kør DELIMITER-forespørgslen først for at gemme proceduren for at blive klar. Derefter skal du udføre CALL-forespørgslen efterfulgt af procedurenavnet og dens inputargumentværdi i selerne. Du skal bare køre kommandoen nedenfor, så får du resultaterne. Som vi har angivet, 'Zafar' i vores parametre, har vi efter sammenligningen opnået dette resultat.

Eksempel 03: Lagret procedure med flere parametre

Lad os se, hvordan proceduren fungerer, når den er forsynet med flere parametre. Glem ikke at bruge nøgleordet 'DELIMITER' sammen med '&&' tegn. Brug CREATE PROCEDURE-kommandoen til at oprette en procedure 'Ny'. Denne procedure tager to argumenter i parametrene e.g. 'var1' og 'var2'. Begynd proceduren med BEGIN-klausulen. Nu er det noget nyt. SELECT-klausulen henter igen alle poster fra tabellen 'record'. Det første argument, der sendes af en bruger, matches med kolonne 'Navn' værdier. På den anden side matches det andet argument, der sendes af en bruger, til kolonnen 'Land'. Hvis posterne stemmer overens, henter det alle data fra fortløbende rækker. Proceduren afsluttes med nøgleordet 'END'.

Brug DELIMITER-nøgleordet til at aktivere proceduren. Derefter skal du udføre CALL-klausulen efterfulgt af det lagrede procedurenavn, som er 'Ny' sammen med parameterværdierne. Det fremgår tydeligt af nedenstående billede, at forespørgslen kun henter posten med tabel 'record', hvor begge værdier, der er indtastet af brugeren, matcher.

Konklusion:

I denne vejledning har du lært om de forskellige måder at oprette en lagret procedure på MySQL Workbench og MySQL kommandolinjeklient shell shell.g., Lagret procedure med og uden parametre.

Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...
Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...