Sisestage rida, kui väärtusi pole Postgresl -is juba olemas

Insert Row If Values Don T Already Exist Postgresl



Andmebaaside haldussüsteemide tundmine ja nendega manipuleerimine on meid tutvustanud andmebaaside muudatustega. See hõlmab tavaliselt teatud tabelites rakendatavate funktsioonide loomist, sisestamist, värskendamist ja kustutamist. Praeguses artiklis näeme, kuidas andmeid sisestusmeetodi abil hallatakse. Peame looma tabeli, millesse me soovime sisestamist. Tabeli ridadele uute andmete lisamiseks kasutatakse lauset Insert. PostgreSQL lisab avaldus hõlmab mõningaid päringu eduka täitmise reegleid. Esiteks peame mainima tabeli nime, millele järgnevad veerunimed (atribuudid), kuhu tahame ridu sisestada. Teiseks peame sisestama väärtused, eraldades need komaga pärast väärtust VALUE. Lõpuks peavad kõik väärtused olema samas järjekorras, milles atribuutide loendite järjestus on antud konkreetse tabeli loomisel.

Süntaks

>> SISESTA SISSETABLENAME(veerg 1,veerg) VÄÄRTUSED („Väärtus1”, „väärtus2”);

Siin on veerg tabeli atribuudid. Väärtuste sisestamiseks kasutatakse märksõna VALUE. „Väärtus” on sisestatavate tabelite andmed.





Reafunktsioonide sisestamine PostgreSQL kestasse (psql)

Pärast postgresqli edukat installimist sisestame andmebaasi nime, pordi numbri ja parooli. Psql käivitatakse. Seejärel teeme vastavalt päringuid.





Näide 1: INSERTi kasutamine tabelite uute kirjete lisamiseks
Pärast süntaksit loome järgmise päringu. Tabelisse rea lisamiseks loome tabeli nimega klient. Vastav tabel sisaldab 3 veergu. Sellesse veergu andmete sisestamiseks ja ülearuse vältimiseks tuleks mainida konkreetsete veergude andmetüüpi. Tabeli loomise päring on järgmine:





>> luua tabelklient(idint,nimi varchar (40), riikvarchar (40));

Pärast tabeli loomist sisestame nüüd andmed, sisestades read eraldi päringutesse käsitsi. Esiteks mainime veeru nime, et säilitada atribuutidega seotud veergude andmete täpsus. Ja siis sisestatakse väärtused. Väärtusi kodeerivad üksikud koomad, kuna need tuleb sisestada ilma muudatusteta.



>> sisestada sisseklient(id,nimi, riik) väärtused ('1',„Alia”, „Pakistan”);

Pärast iga edukat sisestamist on väljund 0 1, mis tähendab, et 1 rida sisestatakse korraga. Päringusse, nagu varem mainitud, oleme andmeid sisestanud 4 korda. Tulemuste vaatamiseks kasutame järgmist päringut:

>> vali*alatesklient;

Näide 2: INSERT -lause kasutamine mitme rea lisamisel ühele päringule
Sama lähenemisviisi kasutatakse andmete sisestamisel, kuid mitte sisestusväljendite sisestamisel mitu korda. Me sisestame andmed korraga, kasutades teatud päringut; kõik ühe rea väärtused on eraldatud. Järgmise päringu abil saavutame vajaliku väljundi

Näide 3: SISESTAGE ühte tabelisse mitu rida teise tabeli numbrite põhjal
See näide on seotud andmete sisestamisega ühest tabelist teise. Mõelge kahele tabelile, a ja b. Tabelis a on kaks atribuuti, st nimi ja klass. Rakendades CREATE päringut, tutvustame tabelit. Pärast tabeli loomist sisestatakse andmed sisestuspäringu abil.

>> luua tabelet(nimi varchar (30),klassi varchar (40));
>> Sisesta sisseetväärtused ('Amna',1),('bhishma', '2'),('Javed', '3'),(‘maha’,’4');

Tabelisse sisestatakse ületamise teooria abil neli väärtust. Saame kontrollida valitud avaldiste abil.

Samamoodi loome tabeli b, millel on kõigi nimede ja teemade atribuudid. Kirje sisestamiseks ja vastavalt tabelilt toomiseks rakendatakse samu kahte päringut.

>> luua tabelb(kõik nimed varchar(30), teema varchar(70));

Tooge kirje valitud teooria abil.

>> vali*alatesb;

Tabeli väärtuste sisestamiseks b tabelis kasutame järgmist päringut. See päring töötab nii, et kõik nimed tabelis b sisestatakse tabelisse et koos numbrite loendamisega, mis näitavad tabeli vastavas veerus konkreetse arvu esinemiste arvu b . b.allnames tähistab tabeli täpsustamiseks objekti funktsiooni. Funktsioon Count (b. Kõik nimed) töötab kogu esinemise loendamiseks. Kuna kõik nimed esinevad korraga, on saadud veerus 1 number.

>> Sisesta sisseet(nimi,klassi) valib. kõik nimed, loendage(b. kõik nimed) alatesbGrupp kõrvalb. kõik nimed;

Näide 4: INSERT andmed ridadesse, kui neid pole
Seda päringut kasutatakse ridade sisestamiseks, kui seda pole. Esiteks kontrollib esitatud päring, kas rida on juba olemas või mitte. Kui see on juba olemas, siis andmeid ei lisata. Ja kui andmeid reas pole, hoitakse uus sisestus. Siin on tmp ajutine muutuja, mida kasutatakse andmete salvestamiseks mõnda aega.

>> sisestada sisseb(kõik nimed, teema) vali*alates (vali'Kinza'nagukõik nimed, 'islamia'naguteema) nagutmpkus mitte eksisteerib ( valikõik nimedalatesbkuskõik nimed='Sundus'piirata 1);

Näide 5: PostgreSQL -i lisamine INSERT -avalduse abil
Sellel funktsioonil on kaks sorti:

  • Värskendus: kui tekib konflikt, kui kirje vastab tabeli olemasolevatele andmetele, värskendatakse seda uute andmetega.
  • Kui tekib konflikt, ärge tehke midagi : Kui kirje kattub tabelis olemasolevate andmetega, jätab see kirje vahele või kui viga on leitud, eiratakse seda ka.

Esialgu moodustame tabeli mõne näidisandmega.

>> LOO TABELtbl2(IDINT ESIMENE VÕTI,Nimi ISELOOMUVÕIMALIK);

Pärast tabeli loomist sisestame andmed tbl2 -sse päringu abil:

>> SISESTA SISSEtbl2VÄÄRTUSED (1,'uzma'),(2,'abdul'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'javeria');

Kui tekib konflikt, värskendage:

>>SISESTA SISSEtbl2VÄÄRTUSED (8,'Ride') PEALKONFLIKT(ID) TEE UUENDA SET Nimi=Välistatud.Nimi;

Alguses sisestame andmed, kasutades ID 8 konfliktpäringut ja nime Rida. Sama päringut kasutatakse sama id; nime muudetakse. Nüüd märkate, kuidas nimesid muudetakse tabelis sama ID -ga.

>> SISESTA SISSEtbl2VÄÄRTUSED (8,'Töö') PEALKONFLIKT(ID) TEE UUENDA SET Nimi =Välistatud.Nimi;

Leidsime, et ID -l 8 oli konflikt, seega värskendatakse määratud rida.

Kui tekib konflikt, ärge tehke midagi

>> SISESTA SISSEtbl2VÄÄRTUSED (9,'Hira') PEALKONFLIKT(ID) TEE MITTE MIDAGI;

Selle päringu abil lisatakse uus rida. Pärast seda kasutame tekkinud päringu vaatamiseks sama päringut.

>>SISESTA SISSEtbl2VÄÄRTUSED (9,'Hira') PEALKONFLIKT(ID) TEE MITTE MIDAGI;

Ülaltoodud pildi kohaselt näete, et pärast päringu täitmist INSERT 0 0 näitab, et andmeid ei sisestata.

Järeldus

Andmebaasi seoste koondamise vähendamiseks oleme pilgu heitnud arusaamisele, kuidas tabelites ridu sisestada, kui andmeid pole või pole sisestamist lõpule viidud.