Syntaks
Syntaksen til PostgreSQL -funksjonen er gitt nedenfor.
Opprett eller erstatt funksjonsfunksjon_navn (argument_list)Forutsetninger
EN. Installer PostgreSQL
Du må installere den nyeste versjonen av PostgreSQL -pakker på Linux -operativsystemet før du utfører SQL -uttalelsene som vises i denne opplæringen. Kjør følgende kommandoer for å installere og starte PostgreSQL:
$ sudo apt-get -y installer postgreSql postgreSql-contrib
$ sudo SystemCTL Start PostgreSql.service
Kjør følgende kommando for å logge inn på PostgreSQL med rotprivilegium.
$ sudo -u postgres psql
B. Du kan opprette en database som heter “Testdb” Ved å kjøre følgende SQL -setning.
# Opprett databasetestdb;Hvis du vil lage et bord i Testdb database, så må du skrive “\ C” å endre databasen. Men i denne opplæringen endret jeg ikke databasen og tabellen, og alle funksjoner ble opprettet i standarddatabasen som heter Postgres.
C. Lag en tabell som heter produkter med fire felt og sett inn fire poster i tabellen for å teste de brukerdefinerte funksjonene som vil bli opprettet senere i denne opplæringen.
# Lag bordprodukter (D. Sett inn fire poster i tabellen.
# Sett inn i produkter (navn, type, pris)Ulike eksempler på PostgreSQL brukerdefinerte funksjoner
Bruken av brukerdefinerte funksjoner med argument og uten argument i PostgreSQL er vist nedenfor ved å bruke flere eksempler.
Eksempel-1: Brukerdefinert funksjon uten argument og returverdi
Kjør følgende SQL -setning for å opprette en funksjon som er navngitt funksjon1 () uten noe argument, og funksjonen vil ikke returnere ingenting. Funksjonen vil oppdatere posten til produkttabellen der ID -verdien er 3 etter utførelse.
# Opprett eller erstatt funksjonsfunksjon1 ()Følgende utgang vises hvis funksjonen opprettes med suksess i Postgres database.
Kjør følgende SQL -uttalelse for å lese alle poster av Produkter Tabell før du utfører funksjon1 ().
# Velg * fra produkter;Følgende utgang viser de innsatte postene til Produkter bord.
Kjør følgende SQL -setning for å utføre funksjonen.
# Velg funksjon1 ();
Følgende utgang viser at en rad påvirkes av å kalle funksjonen funksjon1 (). Verdien på prisfeltet på tabellen vil bli oppdatert der ID -verdien er 3.
Kjør følgende SQL -uttalelse for å lese alle poster av Produkter Tabell etter utførelse funksjon1 ().
# Velg * fra produkter;Følgende utdata viser at prisverdien på produkttabellen er oppdatert der ID -verdien er 3, og den er 1500 nå.
Eksempel-2: Brukerdefinert funksjon med i argumentasjonen
Standardargumentet til funksjonen er i argumentasjon. Kjør følgende SQL -setning for å opprette en funksjon som er navngitt funksjon2 () med to argumenter, og funksjonen vil ikke returnere ingenting. Funksjonen vil sette inn en ny post til Produkter Tabell med argumentverdiene.
# Opprett eller erstatt funksjonsfunksjon2 (navn varchar, type varchar, pris int)
Følgende utgang vises hvis funksjonen opprettes med suksess i Postgres database.
Kjør følgende SQL -setning for å utføre funksjonen tre i argumentverdier. Dette er "iPhone", "mobil" og 2000.
# Velg Function2 ('iPhone', 'Mobile', 2000);Følgende utgang viser at en rad påvirkes av å kalle funksjonen funksjon2 (), og en ny post vil bli satt inn i tabellen.
Kjør følgende SQL -uttalelse for å lese alle poster av Produkter Tabell etter utførelse funksjon2 ().
# Velg * fra produkter;Følgende utgang viser at en ny post er satt inn i Produkter bord.
Eksempel-3: Brukerdefinert funksjon uten argument
UT -argumentet brukes til å returnere verdien fra funksjonen. Kjør følgende SQL -setning for å opprette en funksjon som er navngitt funksjon3 () med ett argument av pengetype, og funksjonen vil returnere data om pengetype. Funksjonen vil returnere den tildelte verdien av OUT -argumentet.
# Opprett eller erstatt funksjonsfunksjon3 (Pris ut penger)
Følgende utgang vises hvis funksjonen opprettes med suksess i Postgres database.
Kjør følgende SQL -setning for å slette poster fra produkttabellen basert på verdien returnert av Function3 ().
# Slett fra produkter der pris <= function3();
Følgende utgang viser at tre rader påvirkes av å kalle funksjonen funksjon3 (). Den returnerte verdien av funksjonen er 1000, som samsvarer med de tre postene til Produkter bord der id verdier er 1, 2, og 4.
Kjør følgende SQL -uttalelse for å lese alle poster av Produkter Tabell etter utførelse funksjon3 (). Utgangen viser at det finnes to poster i tabellen der pris Verdiene er mer enn 1000.
# Velg * fra produkter;Følgende utgang viser at 3 poster er blitt slettet fra Produkter bord.
Eksempel-4: Brukerdefinert funksjon med inout-argument
Det indre argumentet brukes i funksjonen for å gi verdier i funksjonen og returnere verdiene fra funksjonen. Kjør følgende SQL -setning for å opprette en funksjon som er navngitt regne ut() med et inout -argument om float -type og en i argumentasjon av heltallstype. Funksjonen vil returnere data for float -type. Funksjonen vil bli utført med salgsbeløpet, som vil være en flyteverdi, og rabatten, som vil være et heltall. Salgsbeløpet etter rabatten vil bli beregnet basert på i argumentverdiene. Deretter vil det beregnede salgsbeløpet bli returnert fra funksjonen ved å bruke OUT -argumentet.
# Opprett eller erstatt funksjon Beregn (Følgende utgang vises hvis funksjonen opprettes med suksess i Postgres database.
Kjør følgende uttalelse for å utføre funksjonen med 10000 som salgsbeløp og 5 som rabattbeløp
#Selge beregne (10000, 5) som rabatt_amount;5% av 10000 er 500 og 10000-500 = 9500. Følgende produksjon viser salgsbeløp etter 5% rabatt.
Eksempel-5: Bruker-Defined Funksjon med de Betinget uttalelse
Kjør følgende SQL -setning for å opprette en funksjon som er navngitt search_product () med et argument, og funksjonen vil returnere dataene fra varchar -type. Måten å erklære funksjonsvariabelen og bruke den betingede setningen er vist i denne funksjonen. Funksjonsvariabelen som heter Produktnavn har blitt definert med Navn type av Produkter bord. Verdien av i argumentasjonen, tp, vil bli matchet med verdien av type felt av Produkter bord. Hvis det ikke blir funnet noen kamp i tabellen, vil en feil bli reist med meldingen, "Produkttype eksisterer ikke". Hvis noen kamp blir funnet, så er verdien av Navn Feltet av den produkttypen vil bli lagret i funksjonsvariabelen, og variabelen vil bli returnert fra funksjonen.
# Opprett eller erstatt funksjonssøk_produkt (TP VARCHAR)Følgende utgang vises hvis funksjonen opprettes med suksess i Postgres database.
Kjør følgende SQL -setning for å lese alle poster fra produkttabellen.
# Velg * fra produkter;Kjør følgende SQL -setning for å utføre funksjonen Search_Product () med produkttypen “Mobil”.
# Velg search_product ('mobil');Kjør følgende SQL -setning for å utføre funksjonen Search_Product () med produkttypen “Ac”.
# Velg search_product ('ac');Følgende utgang viser at Produkter Tabellen inneholder to poster over typeverdier, "TV”Og“Mobil”. Utgangen fra den første utførelsen av funksjonen har returnert “Iphon” fordi produkttypen “mobil” eksisterer i tabellen. Utgangen fra den andre utførelsen av funksjonen har returnert en feilmelding fordi produkttypen “AC” ikke eksisterer i tabellen.
Eksempel-6: Brukerdefinert funksjon med aggregatfunksjon
Enhver aggregatfunksjon som støttes av SQL, kan brukes i PostgreSQL -funksjonen. Kjør følgende SQL -setning for å opprette en funksjon som er navngitt count_product () uten noe argument, og funksjonen vil returnere dataene fra heltallstype. Telling () aggregatfunksjon har blitt brukt i funksjonen som brukes til å telle antall rader basert på den spesifikke tilstanden. Her er en funksjonsvariabel som heter Total_Product blitt erklært i funksjonen for å lagre returverdien til Count () -funksjonen. Count () -funksjonen har blitt brukt i SELECT -spørringen for å telle de postene der produktnavnet starter med ordet “Sony”.
# Opprett eller erstatt funksjon count_product ()Følgende utgang vises hvis funksjonen opprettes med suksess i Postgres database.
Kjør følgende kommando for å utføre funksjonen, count_product ().
# Velg count_product ();Følgende utgang viser at telling () -funksjonen returnerer verdien 1 fordi det bare er en post som samsvarer med verdien, “Sony”.
Konklusjon
Hensikten med å bruke PostgreSQL -funksjoner og forskjellige måter å bruke PostgreSQL -funksjoner med In, Out og Inout -argumenter er beskrevet i denne opplæringen ved å lage flere PostgreSQL -funksjoner. In -argumentet brukes til å ta verdi inn i funksjonen. UT -argumentet brukes til å returnere verdien fra funksjonen. Det indre argumentet brukes til å ta inngangsverdi i funksjonen og returnere utgangen fra funksjonen. Funksjonen kan også opprettes uten noe argument. Jeg håper brukeren vil kunne opprette og bruke PostgreSQL -funksjonen ordentlig etter å ha lest denne opplæringen.