Ievietojiet rindu, ja Postgresl vēl nav vērtību

Insert Row If Values Don T Already Exist Postgresl



Zinot un manipulējot ar datu bāzu pārvaldības sistēmām, esam iepazinušies ar izmaiņām datu bāzēs. Tas parasti ietver noteiktu tabulu funkciju izveidi, ievietošanu, atjaunināšanu un dzēšanu. Pašreizējā rakstā mēs redzēsim, kā dati tiek pārvaldīti, izmantojot ievietošanas metodi. Mums ir jāizveido tabula, kurā mēs vēlamies ievietošanu. Ievietot paziņojumu izmanto jaunu datu pievienošanai tabulu rindās. PostgreSQL ievietošanas paziņojums ietver dažus noteikumus veiksmīgai vaicājuma izpildei. Pirmkārt, mums ir jāpiemin tabulas nosaukums, kam seko kolonnu nosaukumi (atribūti), kur mēs vēlamies ievietot rindas. Otrkārt, mums jāievada vērtības, atdalot tās ar komatu pēc klauzulas VALUE. Visbeidzot, katrai vērtībai ir jābūt tādā pašā secībā, kādā tiek veidota konkrētas tabulas atribūtu sarakstu secība.

Sintakse

>> IEVIETOT INTOTABLENAME(1. sleja,sleja) VĒRTĪBAS (“Vērtība1”, “vērtība2”);

Šeit kolonna ir tabulas atribūti. Vērtību ievadīšanai tiek izmantots atslēgvārds VALUE. “Vērtība” ir ievadāmo tabulu dati.







Rindas funkciju ievietošana PostgreSQL apvalkā (psql)

Pēc veiksmīgas postgresql instalēšanas mēs ievadīsim datu bāzes nosaukumu, porta numuru un paroli. Tiks uzsākta Psql. Pēc tam mēs attiecīgi veiksim vaicājumus.





1. piemērs: INSERT izmantošana jaunu ierakstu pievienošanai tabulām
Pēc sintakses mēs izveidosim šādu vaicājumu. Lai tabulā ievietotu rindu, mēs izveidosim tabulu ar nosaukumu klients. Attiecīgajā tabulā ir 3 kolonnas. Lai ievadītu datus šajā slejā un izvairītos no dublēšanās, ir jānorāda konkrētu kolonnu datu tips. Vaicājums tabulas izveidošanai ir šāds:





>> izveidot tabulaklients(idint,vārds varchar (40), valstivarchar (40));

Pēc tabulas izveidošanas mēs tagad ievadīsim datus, manuāli ievietojot rindas atsevišķos vaicājumos. Pirmkārt, mēs pieminam kolonnas nosaukumu, lai saglabātu datu precizitāti atsevišķās slejās par atribūtiem. Un tad tiks ievadītas vērtības. Vērtības kodē atsevišķas komas, jo tās ir jāievieto bez izmaiņām.



>> ielikt iekšāklients(id,vārds, valsti) vērtības ('1',“Alia”, “Pakistāna”);

Pēc katras veiksmīgas ievietošanas izvade būs 0 1, kas nozīmē, ka vienlaikus tiek ievietota 1 rinda. Vaicājumā, kā minēts iepriekš, mēs esam ievietojuši datus 4 reizes. Lai skatītu rezultātus, mēs izmantosim šādu vaicājumu:

>> izvēlieties*noklients;

2. piemērs: paziņojuma INSERT izmantošana, pievienojot vairākas rindas vienā vaicājumā
To pašu pieeju izmanto, ievietojot datus, bet neieviešot ievietošanas paziņojumus daudzas reizes. Mēs ievadīsim datus uzreiz, izmantojot noteiktu vaicājumu; visas vienas rindas vērtības ir atdalītas ar, izmantojot šādu vaicājumu, mēs sasniegsim nepieciešamo rezultātu

3. piemērs: Ievietojiet vairākas rindas vienā tabulā, pamatojoties uz skaitļiem citā tabulā
Šis piemērs attiecas uz datu ievietošanu no vienas tabulas citā. Apsveriet divas tabulas, a un b. A tabulā ir 2 atribūti, t.i., nosaukums un klase. Piemērojot CREATE vaicājumu, mēs ieviesīsim tabulu. Pēc tabulas izveides dati tiks ievadīti, izmantojot ievietošanas vaicājumu.

>> izveidot tabulauz(vārds varchar (30),klase varchar (40));
>> Ievietot iekšāuzvērtības ('Amna',1),('bhishma', '2'),('Norauts', '3'),('Uz leju',4');

Izmantojot pārsniegšanas teoriju, tabulā tiek ievietotas četras vērtības. Mēs varam pārbaudīt, izmantojot atlasītos paziņojumus.

Līdzīgi mēs izveidosim tabulu b, kurā būs visu nosaukumu un priekšmetu atribūti. Tie paši 2 vaicājumi tiks lietoti ieraksta ievietošanai un izgūšanai no atbilstošās tabulas.

>> izveidot tabulab(visi vārdi varchar(30), tēmas varchar(70));

Iegūstiet ierakstu, izmantojot atlasīto teoriju.

>> izvēlieties*nob;

Lai ievietotu tabulas vērtības b tabulā mēs izmantosim šādu vaicājumu. Šis vaicājums darbosies tā, lai visi tabulas nosaukumi b tiks ievietots tabulā uz skaitot skaitļus, kas parāda konkrētā skaitļa gadījumu skaitu attiecīgajā tabulas slejā b . b. visi vārdi apzīmē objekta funkciju, lai norādītu tabulu. Funkcija Count (b.allnames) darbojas, lai saskaitītu kopējo gadījumu skaitu. Tā kā visi vārdi tiek parādīti uzreiz, iegūtajā slejā būs 1 numurs.

>> Ievietot iekšāuz(vārds,klase) izvēlietiesb. vārdi, skaits(b. vārdi) nobgrupa pēcb. vārdi;

4. piemērs: IEVIETOT datus rindās, ja to nav
Šo vaicājumu izmanto, lai ievadītu rindas, ja tā nav. Pirmkārt, sniegtais vaicājums pārbauda, ​​vai rinda jau ir vai nav. Ja tas jau pastāv, dati netiek pievienoti. Un, ja dati nav rindā, jaunā ievietošana tiks aizturēta. Šeit tmp ir pagaidu mainīgais, ko izmanto datu glabāšanai kādu laiku.

>> ielikt iekšāb(visi vārdi, tēma) izvēlieties*no (izvēlieties'Kinza'visi vārdi, 'islamija'priekšmets) tmpkur pastāv ( izvēlietiesvisi vārdinobkurvisi vārdi='Sundus'ierobežojums 1);

5. piemērs: PostgreSQL augšupielāde, izmantojot paziņojumu INSERT
Šai funkcijai ir divas šķirnes:

  • Atjaunināt: ja rodas konflikts, ja ieraksts atbilst tabulas esošajiem datiem, tas tiek atjaunināts ar jauniem datiem.
  • Ja rodas konflikts, nedariet neko : Ja ieraksts atbilst tabulas esošajiem datiem, tas ierakstu izlaiž vai, ja tiek konstatēta kļūda, tas tiek ignorēts.

Sākotnēji mēs izveidosim tabulu ar dažiem datu paraugiem.

>> RADĪT TABULAtbl2(IDINT PRIMĀRS ATSLĒGTA,Vārds RAKSTURU DAŽĀDI);

Pēc tabulas izveidošanas mēs ievietosim datus tbl2, izmantojot vaicājumu:

>> IEVIETOT INTOtbl2VĒRTĪBAS (1,'uzma'),(2,'Abduls'),(3,'Hamna'),(4,'fatima'),(5,'shiza'),(6,'javeria');

Ja rodas konflikts, atjauniniet:

>>IEVIETOT INTOtbl2VĒRTĪBAS (8,'Braukt') IESLĒGTSKONFLIKTS(ID) DARĪT ATJAUNINĀT SET Vārds=Izslēgts.Vārds;

Sākumā mēs ievadīsim datus, izmantojot 8. konflikta vaicājumu un vārdu Rida. Tas pats vaicājums tiks izmantots pēc tā paša ID; nosaukums tiks mainīts. Tagad jūs pamanīsit, kā nosaukumi tiks mainīti tajā pašā ID tabulā.

>> IEVIETOT INTOtbl2VĒRTĪBAS (8,'Darbs') IESLĒGTSKONFLIKTS(ID) DARĪT ATJAUNINĀT SET Vārds =Izslēgts.Vārds;

Esam atklājuši, ka 8. ID bija konflikts, tāpēc norādītā rinda tiek atjaunināta.

Ja rodas konflikts, nedariet neko

>> IEVIETOT INTOtbl2VĒRTĪBAS (9,'Hira') IESLĒGTSKONFLIKTS(ID) DARĪT NEKAS;

Izmantojot šo vaicājumu, tiek ievietota jauna rinda. Pēc tam mēs izmantosim to pašu vaicājumu, lai redzētu radušos konfliktu.

>>IEVIETOT INTOtbl2VĒRTĪBAS (9,'Hira') IESLĒGTSKONFLIKTS(ID) DARĪT NEKAS;

Saskaņā ar iepriekš redzamo attēlu jūs redzēsit, ka pēc vaicājuma izpildes INSERT 0 0 parāda, ka dati netiek ievadīti.

Secinājums

Mēs esam ieskatījušies izpratnes izpratnē par rindu ievietošanu tabulās, kurās nav datu vai ievietošana nav pabeigta, ja tiek atrasts kāds ieraksts, lai samazinātu datu bāzu attiecību dublēšanos.