Sett inn rad hvis verdier ikke allerede eksisterer i Postgresl

Sett inn rad hvis verdier ikke allerede eksisterer i Postgresl

Å kjenne og manipulere databasestyringssystemer har gjort oss kjent med endringer om databaser. Som vanligvis innebærer å opprette, sette inn, oppdatere og slette funksjoner som brukes på spesifikke tabeller. I den nåværende artikkelen vil vi se hvordan data administreres av innsettingsmetoden. Vi må lage et bord der vi ønsker innsetting. Sett inn uttalelse brukes for tillegg av nye data i rader med tabeller. PostgreSQL setter inn uttalelse dekker noen regler for vellykket utførelse av en spørring. For det første må vi nevne tabellnavnet etterfulgt av kolonnenavn (attributter) der vi ønsker å sette inn rader. For det andre må vi legge inn verdiene, atskilt med komma etter verdiklausulen. Til slutt må hver verdi være i samme rekkefølge som sekvensen til attributtlister er gitt mens du oppretter en bestemt tabell.

Syntaks

>> sett inn i tablenavn (kolonne1, kolonne) verdier ('verdi1', 'verdi2');

Her er en kolonne attributtene til tabellen. Nøkkelordverdi brukes til å legge inn verdier. 'Verdi' er dataene om tabeller som skal legges inn.

Sett inn radfunksjoner i PostgreSQL Shell (PSQL)

Etter vellykket installasjon av PostgreSQL, oppgir vi databasenavnet, portnummeret og passordet. PSQL vil bli initiert. Vi vil da utføre henholdsvis spørsmål.

Eksempel 1: Bruke innsats for å legge til nye poster i tabeller
Etter syntaksen oppretter vi følgende spørsmål. For å sette inn en rad i tabellen, oppretter vi en tabell som heter “Kunde”. Respektive tabell inneholder 3 kolonner. Datatypen av bestemte kolonner bør nevnes for å legge inn data i den kolonnen og for å unngå redundans. Spørring for å lage en tabell er:

>> Opprett tabellkunde (id int, navn varchar (40), country varchar (40));

Etter å ha opprettet tabellen, vil vi nå legge inn data ved å sette inn rader manuelt i separate spørsmål. For det første nevner vi kolonnenavnet for å opprettholde nøyaktigheten av data i bestemte kolonner angående attributter. Og da vil verdier bli lagt inn. Verdiene er kodet av enkeltkomaer, ettersom de skal settes inn uten endring.

>> sett inn i kunde (id, navn, land) verdier ('1', 'alia', 'Pakistan');

Etter hver vellykket innsetting vil utdataene være "0 1", noe som betyr at 1 rad settes inn om gangen. I spørringen som nevnt tidligere, har vi satt inn data 4 ganger. For å se resultatene bruker vi følgende spørsmål:

>> Velg * fra kunde;

Eksempel 2: Bruke Sett inn uttalelse for å legge til flere rader i en enkelt spørring
Den samme tilnærmingen brukes til å sette inn data, men ikke introdusere innsatser mange ganger. Vi vil legge inn data på en gang ved å bruke en viss spørring; Alle verdiene på en rad er atskilt med ”ved å bruke følgende spørsmål, vil vi oppnå den nødvendige utgangen

Eksempel 3: Sett inn flere rader i en tabell basert på tall i en annen tabell
Dette eksemplet angår innsetting av data fra en tabell til en annen. Tenk på to tabeller, “A” og “B”. Tabell “A” har 2 attributter, i.e., navn og klasse. Ved å bruke en Create Query, vil vi introdusere en tabell. Etter opprettelsen av tabellen vil data bli lagt inn ved å bruke en Sett inn spørsmål.

>> Lag tabell A (navn varchar (30), klasse varchar (40));
>> sett inn i en verdier ('Amna', 1), ('Bisma', '2'), ('Javed', '3'), ('Maha', '4');

Fire verdier settes inn i tabellen ved å bruke den overskridende teorien. Vi kan sjekke ved å bruke utvalgte utsagn.

Tilsvarende vil vi lage tabell “B”, med attributter for alle navn og fag. De samme to spørsmålene vil bli brukt på å sette inn og for å hente posten fra den tilsvarende tabellen.

>> Opprett tabell B (allnavn varchar (30), emne varchar (70));

Hente posten etter utvalgte teori.

>> Velg * fra B;

Å sette inn verdier av tabellen b I tabellen bruker vi følgende spørring. Denne spørringen fungerer på en slik måte at alle navn i tabellen b vil bli satt inn i tabellen en Med tellingen av tall som viser antall forekomster av et bestemt tall i den respektive tabellens kolonne b. “B.Allnavn ”representerer objektfunksjonen for å spesifisere tabellen. Telling (b.Allnavn) Funksjon fungerer for å telle total forekomst. Ettersom hvert navn oppstår på en gang, vil den resulterende kolonnen ha 1 nummer.

>> sett inn i en (navn, klasse) velg B.Allnavn, Count (B.Allnavn) fra B Group av B.Allnavn;

Eksempel 4: Sett inn data i rader hvis ikke eksisterer
Denne spørringen brukes til å legge inn rader hvis den ikke er til stede. For det første er den oppgitte spørringskontrollen om raden allerede er til stede eller ikke. Hvis det allerede eksisterer, blir ikke data lagt til. Og hvis data ikke er til stede på rad, vil den nye innsatsen bli holdt. Her er TMP en midlertidig variabel som brukes til å lagre data i noen tid.

>> Sett inn B (Allnavn, emne) velg * fra (velg 'kinza' som allnavn ',' islamiat 'som emne) som tmp der det ikke eksisterer (velg allnavn fra b der allnavn =' sundus 'grense 1);

Eksempel 5: PostgreSQL Upsert ved hjelp av Sett inn setning
Denne funksjonen har to varianter:

  • Oppdatering: Hvis det oppstår en konflikt, Hvis posten samsvarer med de eksisterende dataene i tabellen, oppdateres den med nye data.
  • Hvis det oppstår en konflikt, gjør ikke noe: Hvis en post stemmer overens med de eksisterende dataene i tabellen, hopper den over posten, eller hvis en feil er grunnlagt, blir den også ignorert.

Til å begynne med vil vi danne en tabell med noen eksempeldata.

>> Opprett tabell TBL2 (ID INT Primærnøkkel, navnekarakter varierende);

Etter å ha opprettet tabell vil vi sette inn data i TBL2 ved å bruke spørring:

>> sett inn i TBL2 -verdier (1, 'Uzma'), (2, 'Abdul'), (3, 'Hamna'), (4, 'Fatima'), (5, 'Shiza'), (6, ' Javeria ');

Hvis det oppstår en konflikt, oppdater:

>> sett inn i TBL2 -verdier (8, 'Rida') på konflikt (ID) DOPPDATER SET NAVN = Ekskludert.Navn;

Til å begynne med vil vi legge inn data ved hjelp av konfliktforespørselen til ID 8 og navnet Rida. Den samme spørringen vil bli brukt etter samme ID; Navnet vil bli endret. Nå vil du legge merke til hvordan navn vil bli endret på samme ID i tabellen.

>> sett inn i TBL2 -verdier (8, 'Mahi') på konflikt (ID) DOPPATION SET NAME = Ekskludert.Navn;

Vi har funnet ut at det var en konflikt på ID “8”, så den spesifiserte raden er oppdatert.

Hvis det oppstår en konflikt, gjør ikke noe

>> sett inn i TBL2 -verdier (9, 'Hira') på konflikt (ID) gjør ingenting;

Ved hjelp av denne spørringen settes en ny rad inn. Etter det vil vi bruke hvis den samme spørringen for å se konflikten som skjedde.

>> sett inn i TBL2 -verdier (9, 'Hira') på konflikt (ID) gjør ingenting;

I følge bildet over vil du se at etter utførelsen av spørringen “Sett inn 0 0” viser at ingen data er lagt inn.

Konklusjon

Vi har tatt et glimt av forståelsesbegrepet å sette inn rader i tabeller der data enten ikke er til stede, eller innsetting ikke er fullført, hvis noen post blir funnet, for å redusere redundans i databaseforhold.