PostgreSQL

Sett inn rad hvis verdiene ikke allerede eksisterer i Postgresl

Sett inn rad hvis verdiene 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å bestemte tabeller. I den nåværende artikkelen vil vi se hvordan data administreres ved hjelp av innsettingsmetoden. Vi må lage en tabell der vi ønsker innsetting. Sett inn uttalelse brukes for å legge til nye data i tabellrader. PostgreSQL setter inn uttalelse dekker noen regler for vellykket gjennomføring av et spørsmål. For det første må vi nevne tabellnavnet etterfulgt av kolonnenavn (attributter) der vi vil sette inn rader. For det andre må vi angi verdiene, atskilt med et komma etter VALUE-setningen. Til slutt må hver verdi være i samme rekkefølge som rekkefølgen av attributtlister er gitt mens du oppretter en bestemt tabell.

Syntaks

>> INSERT IN TABLENAME (column1, column) VALUES ('value1', 'value2');

Her er en kolonne attributtene til tabellen. Søkeord VALUE brukes til å angi verdier. 'Verdi' er dataene til tabellene som skal legges inn.

Sette inn radfunksjoner i PostgreSQL-skall (psql)

Etter vellykket installasjon av postgresql vil vi angi databasenavn, portnummer og passord. Psql vil bli initiert. Vi vil deretter utføre spørsmål henholdsvis.

Eksempel 1: Bruk INSERT til å 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". Respektivtabell inneholder 3 kolonner. Datatype for bestemte kolonner bør nevnes for å legge inn data i den kolonnen og for å unngå redundans. Spørring for å lage en tabell er:

>> lage bordkunde (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 til dataene i bestemte kolonner angående attributter. Og så vil verdiene bli lagt inn. Verdiene blir kodet av enkeltkomaer, da de skal settes inn uten noen endring.

>> sett inn i kundens (id, navn, land) verdier ('1', 'Alia', 'Pakistan');

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

>> velg * fra kunde;

Eksempel 2: Bruk INSERT-setning for å legge til flere rader i ett spørsmål
Den samme tilnærmingen brukes når du setter inn data, men ikke introduserer innleggssetninger mange ganger. Vi vil legge inn data med en gang ved å bruke et bestemt spørsmål; alle verdiene i en rad er atskilt med ”Ved å bruke følgende spørring vil vi oppnå ønsket utdata

Eksempel 3: INSERT flere rader i en tabell basert på tall i en annen tabell
Dette eksemplet gjelder innsetting av data fra en tabell til en annen. Tenk på to tabeller, “a” og “b”. Tabell “a” har to attributter, dvs.e., navn og klasse. Ved å bruke et CREATE-spørsmål vil vi introdusere en tabell. Etter at tabellen er opprettet, vil data legges inn ved hjelp av et innsettingsspørsmål.

>> lage tabell a (navn varchar (30), klasse varchar (40));
>> Sett inn i verdiene ('amna', 1), ('bisma', '2'), ('javed', '3'), ('maha', '4');

Fire verdier settes inn i tabellen ved hjelp av overordnet teori.  Vi kan sjekke ved å bruke utvalgte utsagn.

På samme måte vil vi lage tabell "b" med attributter for alle navn og emner. De samme to spørsmålene blir brukt for å sette inn og hente posten fra den tilsvarende tabellen.

>> lage tabell b (allnames varchar (30), subject varchar (70));

Hent posten etter utvalgsteori.

>> velg * fra b;

Å sette inn verdier i tabellen b i tabellen vil vi bruke følgende spørsmål. Dette spørsmålet vil fungere på en slik måte at alle navnene i tabellen b vil bli satt inn i tabellen en med telling av tall som viser antall forekomster av et bestemt tall i den respektive kolonnen i tabellen b. “B.allnames ”representerer objektfunksjonen for å spesifisere tabellen. Telle (b.allnames) -funksjonen fungerer for å telle total forekomst. Ettersom hvert navn forekommer samtidig, vil den resulterende kolonnen ha 1 nummer.

>> Sett inn i a (navn, klasse) velg b.allnames, count (b.allnames) fra b gruppe etter b.allnames;

Eksempel 4: INSERT data i rader hvis det ikke finnes
Dette spørsmålet brukes til å angi rader hvis det ikke er til stede. For det første sjekker den angitte spørsmålet om raden allerede er tilstede eller ikke. Hvis den allerede eksisterer, blir ikke data lagt til. Og hvis data ikke er til stede på rad, vil den nye innsettingen holdes. Her er tmp en midlertidig variabel som brukes til å lagre data i noen tid.

>> sett inn i b (allnames, subject) velg * fra (velg 'Kinza' som allnames, 'islamiat' som subject) som tmp der det ikke eksisterer (velg allnames fra b hvor allnames = 'sundus' limit 1);

Eksempel 5: PostgreSQL Upsert ved bruk av INSERT Statement
Denne funksjonen har to varianter:

I utgangspunktet vil vi danne en tabell med noen eksempeldata.

>> OPPRETT TABELL tbl2 (ID INT PRIMÆR NØKKEL, Navn TEGN VARIERER);

Etter å ha opprettet tabell vil vi sette inn data i tbl2 ved hjelp av spørringen:

>> INSERT IN tbl2 VALUES (1, 'uzma'), (2, 'abdul'), (3, 'Hamna'), (4, 'fatima'), (5, 'shiza'), (6, ' javeria ');

Hvis det oppstår en konflikt, oppdater:

>> INSERT IN tbl2 VALUES (8, 'Rida') ON CONFLICT (ID) DO UPDATE SET Name = Ekskludert.Navn;

Først vil vi legge inn data ved hjelp av konfliktsøket til id 8 og navnet Rida. Den samme spørringen vil bli brukt etter samme ID; navnet endres. Nå vil du legge merke til hvordan navn vil bli endret på samme ID i tabellen.

>> INSERT IN tbl2 VALUES (8, 'Mahi') ON CONFLICT (ID) DO UPDATE SET Name = Ekskludert.Navn;

Vi har funnet ut at det var en konflikt på id "8", så den angitte raden er oppdatert.

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

>> INSERT I tbl2 VERDIER (9, 'Hira') PÅ KONFLIKT (ID) IKKE;

Ved hjelp av dette spørsmålet settes det inn en ny rad. Etter det vil vi bruke hvis den samme spørringen ser konflikten som oppstod.

>> INSERT I tbl2 VERDIER (9, 'Hira') PÅ KONFLIKT (ID) IKKE;

I henhold til bildet ovenfor, vil du se at etter utførelsen av spørringen "INSERT 0 0" viser at ingen data er angitt.

Konklusjon

Vi har fått et glimt av forståelseskonseptet med å sette inn rader i tabeller der data enten ikke er tilstede, eller innsetting ikke er fullført, hvis noen registreringer blir funnet, for å redusere redundans i databaseforhold.

Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...
Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...