PostgreSQL lagret prosedyreeksempel

PostgreSQL lagret prosedyreeksempel
PostgreSQL -databasen er mer pålitelig enn andre fordi den kan opprette og lagre dataene i form av relasjoner, prosedyrer osv. PostgreSQL er en tilpassbar database, da vi kan endre lagringsbeholderne i henhold til våre krav. Dataene i PostgreSQL administreres av skjemaene og katalogene. PostgreSQL støtter mange språk, noe som betyr at vi kan utføre spørsmål på et hvilket som helst programmeringsspråk enten i PSQL (Shell) eller på PGADMIN -siden.

Akkurat som de midlertidige tabellene, bruker vi også noen andre funksjoner for å involvere lagringskapasitet. Disse kalles “lagrede prosedyrer”. Disse vises ikke som tabellene. Men fungerer lydløst med bordene.

I PostgreSQL eller noe annet databasestyringssystem bruker vi funksjoner for å utføre operasjoner på dataene. Disse funksjonene er brukeropprettede eller brukerdefinerte. En stor ulempe med disse funksjonene er at vi ikke klarer å utføre transaksjoner i funksjonene. Vi kan ikke forplikte oss eller tilbakeholde. Derfor bruker vi de lagrede prosedyrene. Ved å bruke disse prosedyrene økes applikasjonsytelsen. Videre kan vi bruke mer enn en SQL -setning i en enkelt prosedyre. Det er tre typer parametere.

I: Det er inngangsparameteren. Den brukes til å sette inn dataene fra prosedyren i tabellen.

UTE: Det er utgangsparameteren. Det brukes til å returnere verdien.

Inout: Det representerer både inngangs- og utgangsparametere. Når de kan passere og returnerer verdien.

Syntaks

Opprett eller erstatt prosedyre prosedyre-navn (parametere-liste)
Språk PLPGSQL
Som $$
ERKLÆRE
(Variable navn på prosedyren)
BEGYNNE
--- SQL -uttalelser / logikk / tilstand.
End $$

Installer PostgreSQL i systemet ditt. Etter vellykket konfigurasjon kan vi nå få tilgang til databasen. Vi har to valg for å bruke spørsmålene. Den ene er PSQL -skall, mens den andre er PGADMIN -dashbordet. Vi har brukt pgadmin til dette formålet. Åpne dashbordet, oppgi nå passordet for å opprettholde forbindelsen med serveren.

Prosedyreoppretting

For å forstå arbeidet med den lagrede prosedyren, må vi opprette et forhold ved å bruke en CREATE -uttalelse.

>> Lag bordklær (ID -seriell, navn varchar (100), by varchar (100), farge varchar (100), pris heltall);

Vanligvis skriver vi inn verdiene i tabellen ved å bruke "Sett inn" -uttalelsen, men her bruker vi en lagret prosedyre som vil bruke som temp -tabellen. For det første vil dataene bli lagret i dem, og deretter vil de overføre dataene ytterligere i tabellen.

Opprett et lagret prosedyre -navn “Addclothes”. Denne prosedyren vil fungere som et medium mellom spørringen og tabellen. Fordi alle verdiene først settes inn i denne prosedyren og deretter settes inn gjennom innsatskommandoen direkte til tabellen.

>> Opprett eller erstatt prosedyre Addclothes (C_ID Inout Int, C_Name VARCHAR (100), C_CITY VARCHAR (100), C_COLOR VARCHAR (100), C_PRICE INTEGER)
Språk PLPGSQL AS
$$ Begynn
Sett inn klær (navn, by, farge, pris) verdier (c_name, c_city, c_color, c_price) returnerer ID til c_id;
Slutt $$;

Nå er verdiene fra den lagrede prosedyren lagt inn i bordklærne. Fra spørringen er det klart at vi først har definert butikkprosedyren med attributtet til litt forskjellige kolonnenavn med de samme datatypene. Deretter, ved hjelp av en innsatserklæring, blir verdiene fra verdiene til den lagrede prosedyren lagt inn i tabellen.

Akkurat som en enkel funksjon, bruker vi en funksjonsanrop for å sende verdiene som argumenter i parameteren slik at prosedyren godtar disse verdiene.

>> Ring addclothes (null, 't-skjorte', 'rød', 'New York', 1500);

Ettersom navnet på prosedyren er "Addclothes", så er det skrevet med verdiene på samme måte som vi direkte skriver dem i innsatserklæringen. Utgangen vises som 1; Da vi brukte den returnerende metoden, viser dette at en rad er fylt. Vi vil se dataene som er satt inn ved å bruke en Select -setning.

>> Velg * fra klær;

Gjenta prosedyren ovenfor opp i den grad du vil oppgi verdiene.

Lagret prosedyre og "oppdatering" -klausulen

Lag nå prosedyren for å oppdatere de allerede eksisterte dataene i tabellen “Klær”. Den første delen av spørringen i å legge inn verdier til den lagrede prosedyren er den samme.

$$ Begynn
Oppdater klær sett navn = c_name, by = c_city, color = c_color, pris = c_price hvor id = c_id;
End $$

Nå vil vi ringe den lagrede prosedyren. Call -syntaks er den samme, ettersom den bare bruker verdiene i parametrene som argumenter.

Det vises en melding som viser at spørringen blir utført med utførelsestidspunktet. Bruk Select -setningen for å hente alle postene for å se verdiene som erstattes.

Prosedyren med "slett" -klausulen

Den neste butikkprosedyren vi vil bruke her er "deleteclothes". Denne prosedyren vil bare få IDen som en inngang, og deretter brukes variabelen til å matche ID -en med ID -en i tabellen. Når kampen er funnet, blir raden slettet henholdsvis.

>> Opprett eller erstatt prosedyre Deleteclothes
(C_id int
)
Språk PLPGSQL AS
$$ Begynn
Slett fra klær der id = c_id;
End $$

Nå vil vi ringe prosedyren. Denne gangen brukes bare en enkelt ID. Denne IDen vil finne raden som skal slettes.

>> Ring deleteclothes (2)

Raden med ID "2" vil bli slettet fra bordet.

>> Velg * fra klær;

Det var 3 rader i tabellen. Nå kan du se at bare to rader er igjen fordi raden med “2” ID blir slettet fra tabellen.

Funksjonsskaping

Etter fullstendig diskusjon av den lagrede prosedyren, vil vi nå vurdere hvordan de brukerdefinerte funksjonene blir introdusert og brukt.

>> Opprett eller erstatt funksjon GetAll Clothes () Returnerer Clotes
Språk SQL
Som $$
Velg * fra klær;
$$;

En funksjon opprettes med samme navn som den lagrede prosedyren. Alle dataene fra tabellen “Klær” vises i resultatet for resultatdata. Denne returfunksjonen vil ikke ta noe argument i parameteren. Ved å bruke denne funksjonen fikk vi dataene som vist ovenfor på bildet.

Den andre funksjonen brukes til å få klærdataene fra den spesifikke ID -en. En variabel i heltallet introduseres i parameteren. Denne IDen vil bli matchet med IDen i tabellen. Der kampen er funnet, vises den spesifikke raden.

>> Opprett eller erstatt funksjon GetClothesById (C_id int) Returnerer klær
Språk SQL
Som $$
Velg * fra klær der id = c_id;
$$;

Som et argument vil vi kalle funksjonen som har ID vi ønsker å hente postene fra tabellen.

>> Velg * fra FerclothesbyId (3);

Derfor kan du se at bare en enkelt rad hentes fra bordet "klær".

Konklusjon

“PostgreSQL lagret prosedyreeksempel” utdyper eksemplene med skapelsen og driften av prosedyrene. Funksjoner hadde en ulempe som ble fjernet av PostgreSQL -lagrede prosedyrer. Eksempler angående prosedyrer og funksjoner er utdypet som vil være tilstrekkelige for å få kunnskap om prosedyrene.