MySQL MariaDB

Skapa lagrade procedurer i MySQL

Skapa lagrade procedurer i MySQL
Lagrade procedurer är en användardefinierad lista med förkompilerade SQL-instruktioner som behålls och drivs på begäran i en MySQL-databank för att utföra en specifik databasprocess. Detta innebär att det är troligt att återanvända manuset om igen. En procedur har en titel, en uppsättning parametrar och ett uttalande från SQL (er), så att den lagrade proceduren kan fungera baserat på värdet / parametrarna för den överförda parametern. De lagrade procedurerna ska köras med CALL-frasen. I den här guiden, låt oss utforska bit för bit processen att generera nya lagrade procedurer inom MySQL CREATE PROCEDURE-klausulen. Så låt oss komma igång.

Skapa lagrad procedur via arbetsbänk:

Öppna den nyligen installerade MySQL Workbench 8.0 och anslut den till root localhost-databasen.

Inuti arbetsbänken finns ett navigatorfält. Under detta Navigator-fält finns det en uppsättning olika funktioner i MySQL. Den innehåller en lista med databaser, tabeller, lagrade procedurer och många fler, som du kan se på bilden.

När du utforskar alternativet "Tabeller" hittar du en lista över tabeller i en rutnätsvy. Som visas nedan har vi en tabell 'social'.

Högerklicka på alternativet 'Lagrad procedur' och klicka på 'Skapa lagrad procedur' som visas på bilden.

Ett nytt fönster öppnas, se bilden på bilden. Du kan ändra namnet på den lagrade proceduren i frågeområdet genom att ta bort värdet i inverterade komma.

Nu kan du redigera denna fråga efter dina önskemål. Vi namnge den lagrade proceduren som "detalj" samtidigt som vi hämtar data från en tabell "social" där dess värde i kolumnen "Webbplats" motsvarar "Instagram.'Detta innebär att butiksproceduren, vid körning, bara visar de poster från den här tabellen där' webbplatsen 'är' Instagram.'Klicka på knappen Apply.

Du får en förhandsgranskningsskärm där du kan ändra eller ändra din fråga om det behövs. Du kan se en fullständig syntax för den nyligen skapade lagrade proceduren via arbetsbänken. Klicka på knappen Apply för att utföra den.

Om det inte finns några misstag i frågan fungerar den korrekt som visas nedan. Tryck på Slutför-knappen.

När du tittar på alternativet för lagrade procedurer och uppdaterar det kommer det att visa dig en nyskapad procedur.

När du utför den här proceduren kommer den att visa dig att de enda posterna som har kolumnvärdet "Webbplats" är "Instagram" enligt nedan.

Skapa lagrad procedur via kommandoradsskal:

Öppna kommandoradsklienten för MySQL 8.0 och ange lösenordet för MySQL nedan.

Anta att vi har en tabell med namnet "post" i databasschemat "data". Låt oss kontrollera posterna för det med kommandot SELECT enligt följande:

>> VÄLJ * FRÅN data.spela in;

Använd kommandot 'använd data' för att använda databasen där du vill lägga till den lagrade proceduren.

>> använda data;

Exempel 01: Lagrad procedur utan parametrar

För att skapa en procedur utan en parameter måste du skapa den med ett CREATE PROCEDURE-kommando som föregås av nyckelordet "DELIMITER". Sedan skapar vi ett förfarande som heter 'Filter' utan parametrar. Den hämtar alla poster från tabellen "post" där kolumnen "Land" har "ia" i slutet av sina värden. Processen bör avslutas med nyckelordet 'END'.

Vi kommer att använda CALL-klausulen för att utföra den lagrade proceduren på kommandoraden. När vi kör CALL-kommandot har vi följande resultat. Du kan se att frågan bara måste hämta de poster där kolumnen 'Land' har 'ia' i slutet av sina värden.

Exempel 02: Lagrad procedur med enstaka parameter

Det är hög tid att skapa en procedur med en enda parameter. För detta använder du CREATE PROCEDURE-frågan som leds av nyckelordet 'DELIMITER.'Så, vi måste skapa en procedur' Rec 'som tar ett värde som inmatningsargument där i detta exempel är variabel' Var1 'av en användare i sina parametrar. Börja proceduren med "BEGIN" nyckelord. SELECT-satsen används för att hämta alla poster från tabellen "record" där kolumnen "Name" har samma värde som i "Var1". Detta är en matchning av poster. Avsluta den lagrade proceduren med nyckelordet 'END' följt av '&&' tecken.

''

Kör DELIMITER-frågan först för att den lagrade proceduren ska bli redo. Därefter kör du CALL-frågan följt av procedurnamnet och dess inmatade argumentvärde i klammerparenteserna. Du måste bara köra kommandot nedan, så får du resultatet. Som vi har angett, 'Zafar' i våra parametrar, har vi, efter jämförelsen, fått detta resultat.

Exempel 03: Lagrad procedur med flera parametrar

Låt oss se hur proceduren fungerar när den har försetts med flera parametrar. Glöm inte att använda nyckelordet "DELIMITER" tillsammans med "&&" tecken. Använd kommandot CREATE PROCEDURE för att skapa en procedur 'Ny'. Denna procedur tar två argument i sina parametrar e.g. 'var1' och 'var2'. Börja proceduren med BEGIN-klausulen. Nu är det något nytt. SELECT-klausulen hämtar igen alla poster från tabellen "record". Det första argumentet som skickats av en användare kommer att matchas med kolumnens "Namn" -värden. Å andra sidan kommer det andra argumentet som skickas av en användare att matchas med kolumnvärdena. Om posterna matchar kommer alla data att hämtas från på varandra följande rader. Förfarandet skulle avslutas med nyckelordet "END".

Använd nyckelordet DELIMITER för att aktivera proceduren. Därefter kör du CALL-satsen följt av det lagrade procedurnamnet, vilket är 'Nytt' tillsammans med parametervärdena. Det framgår tydligt av bilden nedan att frågan bara hämtar posten för tabellen '' post '' där båda värdena som anges av användaren matchar.

Slutsats:

I den här guiden har du lärt dig om olika sätt att skapa en lagrad procedur i MySQL Workbench och MySQL kommandoradsklientskal e.g., Lagrad procedur med och utan parametrar.

Bästa spelkonsolemulatorer för Linux
Den här artikeln listar populära spelkonsolemuleringsprogram som finns tillgängliga för Linux. Emulation är ett mjukvarukompatibilitetsskikt som emule...
Bästa Linux Distros för spel 2021
Linux-operativsystemet har kommit långt från sitt ursprungliga, enkla, serverbaserade utseende. Detta operativsystem har förbättrats enormt de senaste...
Hur du fångar och strömmar din spelsession på Linux
Tidigare betraktades spel bara som en hobby, men med tiden såg spelindustrin en enorm tillväxt när det gäller teknik och antalet spelare. Spelpubliken...