MySQL MariaDB

Lag lagrede prosedyrer i MySQL

Lag lagrede prosedyrer i MySQL
Lagrede prosedyrer er en brukerdefinert liste over forhåndskompilerte SQL-instruksjoner som beholdes og drives på forespørsel i en MySQL-databank for å utføre en spesifikk databaseprosess. Dette innebærer at det er sannsynlig å bruke manuset på nytt. En prosedyre har en tittel, et sett med parametere og en uttalelse fra SQL (er), slik at den lagrede prosedyren kan fungere basert på verdien (e) til den overførte parameteren. De lagrede prosedyrene skal utføres ved å bruke CALL-setningen. I denne guiden, la oss utforske prosessen med å generere nye lagrede prosedyrer innen MySQL CREATE PROCEDURE-klausulen. Så la oss komme i gang.

Opprett lagret prosedyre via arbeidsbenk:

Åpne den nylig installerte MySQL Workbench 8.0 og koble den til root localhost-databasen.

Inne i arbeidsbenken er det en Navigator-bar. Under denne Navigator-linjen er det et sett med forskjellige funksjoner i MySQL. Den inneholder en liste over databaser, tabeller, lagrede prosedyrer og mange flere, som du kan se fra bildet.

Når du utforsker alternativet 'Tabeller', finner du en liste over tabeller i en rutenettvisning. Som vist nedenfor har vi en tabell 'sosial'.

Høyreklikk på alternativet 'Lagret prosedyre' og klikk på alternativet 'Lag lagret prosedyre' som vist på bildet.

Et nytt vindu åpnes, som vist på bildet nedenfor. Du kan endre navnet på den lagrede prosedyren i spørringsområdet ved å fjerne verdien i omvendte kommaer.

Nå kan du redigere dette spørsmålet etter ditt ønske. Vi kaller den lagrede prosedyren som 'detalj' mens vi får dataene fra en tabell 'sosial' der verdien i kolonnen 'Nettsted' tilsvarer 'Instagram.'Dette betyr at butikkprosedyren ved kjøring bare viser de postene fra denne tabellen der' nettstedet 'er Instagram.'Klikk på Bruk-knappen.

Du vil få en forhåndsvisning hvor du kan endre eller endre spørringen om nødvendig. Du kan se en full syntaks av den nyopprettede lagrede prosedyren via arbeidsbenken. Klikk på Bruk-knappen for å utføre den.

Hvis det ikke er noen feil i spørringen, vil den fungere som vist nedenfor. Trykk på Fullfør-knappen.

Når du ser på alternativet for lagrede prosedyrer og oppdaterer det, vil det vise deg en nylig opprettet prosedyre.

Når du utfører denne prosedyren, vil den vise deg de eneste postene som har kolonneverdien 'Nettsted' er 'Instagram' som nedenfor.

Opprett lagret prosedyre via kommandolinjeskall:

Åpne kommandolinjeskallet til MySQL 8.0 og skriv inn passordet til MySQL under.

Anta at vi har en tabell som heter 'post' i databaseskjemaet 'data'. La oss sjekke postene over det ved hjelp av SELECT-kommandoen som følger:

>> VELG * FRA data.ta opp;

Bruk kommandoen 'bruk data' til å bruke databasen der du vil legge til den lagrede prosedyren.

>> bruke data;

Eksempel 01: Lagret prosedyre uten parametere

For å lage en prosedyre uten parameter, må du opprette den med en CREATE PROCEDURE-kommando foran søkeordet 'DELIMITER'. Deretter oppretter vi en prosedyre som heter 'Filter' uten parametere. Den henter alle postene fra tabellen "post" der kolonnen "Land" har "ia" på slutten av verdiene. Prosessen bør avsluttes med nøkkelordet 'END'.

Vi bruker CALL-setningen til å utføre den lagrede prosedyren på kommandolinjen. Når du kjører CALL-kommandoen, har vi resultatene nedenfor. Du kan se at spørringen bare må hente de postene der kolonnen 'Land' har 'ia' på slutten av verdiene.

Eksempel 02: Lagret prosedyre med én parameter

Det er på høy tid å generere en prosedyre med en enkelt parameter. For dette, bruk CREATE PROCEDURE-spørringen ledet av nøkkelordet 'DELIMITER.'Så, vi må lage en prosedyre' Rec 'som tar en verdi som et inputargument der i dette eksemplet er variabelt' Var1 'av en bruker i parametrene. Begynn prosedyren med søkeordet 'BEGIN'. SELECT-setningen brukes til å hente alle postene fra tabellen 'record' der kolonnen 'Name' har samme verdi som i 'Var1'. Dette er en matching av poster. Avslutt den lagrede prosedyren med nøkkelordet 'END' etterfulgt av '&&' tegn.

'

Kjør DELIMITER-spørringen først for å lagre prosedyren for å gjøre deg klar. Deretter utfører du CALL-spørringen etterfulgt av prosedyrenavnet og verdien for inngangsargumentet i parentesene. Du må bare kjøre kommandoen nedenfor, så får du resultatene. Som vi har gitt, 'Zafar' i parametrene våre, har vi etter sammenligningen fått dette resultatet.

Eksempel 03: Lagret prosedyre med flere parametere

La oss se hvordan prosedyren fungerer når den er utstyrt med flere parametere. Ikke glem å bruke nøkkelordet 'DELIMITER' sammen med '&&' tegn. Bruk CREATE PROCEDURE-kommandoen til å lage en prosedyre 'Ny'. Denne prosedyren tar to argumenter i parametrene e.g. 'var1' og 'var2'. Begynn prosedyren med BEGIN-setningen. Nå er det noe nytt. SELECT-setningen henter igjen alle postene fra tabellen 'record'. Det første argumentet som sendes av en bruker, vil bli matchet med kolonnen 'Navn' verdier. På den annen side vil det andre argumentet som sendes av en bruker, bli matchet med kolonnen 'Land'. Hvis postene samsvarer, vil den hente alle dataene fra påfølgende rader. Fremgangsmåten vil bli avsluttet med nøkkelordet 'END'.

Bruk DELIMITER-nøkkelordet for å aktivere prosedyren. Utfør deretter CALL-setningen etterfulgt av det lagrede prosedyrenavnet, som er 'Ny' sammen med parameterverdiene. Det er tydelig fra bildet nedenfor at spørringen bare vil hente posten til tabellen 'record' der begge verdiene som er angitt av brukeren samsvarer med.

Konklusjon:

I denne veiledningen har du lært om de forskjellige måtene å lage en lagret prosedyre i MySQL Workbench og MySQL kommandolinjeklientskall e.g., Lagret prosedyre med og uten parametere.

Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...
Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...
Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...