Oracle PL / SQL -lisäys, päivitys, poisto ja amp; Valitse osaksi (esimerkki)

Sisällysluettelo:

Anonim

Tässä opetusohjelmassa aiomme oppia käyttämään SQL: ää PL / SQL: ssä. SQL on todellinen komponentti, joka huolehtii tietojen hakemisesta ja päivittämisestä tietokannassa, kun taas PL / SQL on komponentti, joka käsittelee näitä tietoja. Lisäksi tässä artikkelissa keskustellaan myös siitä, miten SQL voidaan yhdistää PL / SQL-lohkoon.

Tässä opetusohjelmassa opit-

  • Tietojen lisääminen
  • Tietojen päivitys
  • Tietojen poisto
  • Tietojen valinta

DML-tapahtumat PL / SQL: ssä

DML on lyhenne sanoista Data Manipulation Language . Näitä lausuntoja käytetään pääasiassa manipulointitoiminnon suorittamiseen. Se käsittelee alla olevia toimintoja.

  • Tietojen lisääminen
  • Tietojen päivitys
  • Tietojen poisto
  • Tietojen valinta

PL / SQL: ssä voimme tehdä tietojen käsittelyn vain käyttämällä SQL-komentoja.

Tietojen lisääminen

PL / SQL: ssä voimme lisätä tietoja mihin tahansa taulukkoon käyttämällä SQL-komentoa INSERT INTO. Tämä komento ottaa syötteenä taulukon nimen, taulukon sarakkeen ja sarakkeen arvot ja lisää arvon perustaulukkoon.

INSERT-komento voi myös ottaa arvot suoraan toisesta taulukosta käyttämällä SELECT-käskyä sen sijaan, että annettaisiin arvot jokaiselle sarakkeelle. SELECT-käskyn avulla voimme lisätä niin monta riviä kuin perustaulukko sisältää.

Syntaksi:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • Yllä oleva syntakse näyttää INSERT INTO -komennon. Taulukon nimi ja arvot ovat pakollisia kenttiä, kun taas sarakkeiden nimet eivät ole pakollisia, jos insert-lauseilla on arvot koko taulukon sarakkeelle.
  • Avainsana VALUES on pakollinen, jos arvot ilmoitetaan erikseen, kuten yllä on esitetty.

Syntaksi:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • Yllä olevassa syntaksissa näkyy INSERT INTO -komento, joka vie arvot suoraan -komennolla SELECT-komennolla.
  • Avainsanaa 'ARVOT' ei pitäisi olla tässä tapauksessa, koska arvoja ei ilmoiteta erikseen.

Tietojen päivitys

Tietopäivitys tarkoittaa yksinkertaisesti minkä tahansa taulukon sarakkeen arvon päivitystä. Tämä voidaan tehdä käyttämällä UPDATE-käskyä. Tämä lause ottaa syötteenä taulukon nimen, sarakkeen nimen ja arvon ja päivittää tiedot.

Syntaksi:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • Yllä olevassa syntaksissa näkyy UPDATE. Hakusana 'SET' kehottaa PL / SQL-moottoria päivittämään sarakkeen arvon annetulla arvolla.
  • 'WHERE' -lauseke on valinnainen. Jos tätä lauseketta ei anneta, mainitun sarakkeen arvo koko taulukossa päivitetään.

Tietojen poisto

Tietojen poistaminen tarkoittaa yhden kokonaisen tietueen poistamista tietokantataulukosta. 'DELETE' -komentoa käytetään tähän tarkoitukseen.

Syntaksi:

BEGINDELETEFROM
WHERE ;END;
  • Yllä olevassa syntaksissa näkyy DELETE-komento. Hakusana FROM on valinnainen ja komento käyttäytyy samalla tavalla FROM-lausekkeen kanssa tai ilman sitä.
  • 'WHERE' -lauseke on valinnainen. Jos tätä lausetta ei anneta, koko taulukko poistetaan.

Tietojen valinta

Dataprojektio / hakeminen tarkoittaa tarvittavien tietojen noutamista tietokantataulukosta. Tämä voidaan saavuttaa käyttämällä komentoa 'SELECT' ja 'INTO' -lauseketta. SELECT-komento hakee arvot tietokannasta, ja INTO-lauseke määrittää nämä arvot PL / SQL-lohkon paikalliseen muuttujaan.

Alla on kohdat, jotka on otettava huomioon SELECT-lausekkeessa.

  • SELECT-käskyn tulisi palauttaa vain yksi tietue, kun taas INTO-lauseketta käytetään, koska yksi muuttuja voi sisältää vain yhden arvon. Jos 'SELECT' -käsky palauttaa useamman kuin yhden arvon, 'TOO_MANY_ROWS' -poikkeus nousee.
  • SELECT-käsky määrittää arvon muuttujalle INTO-lausekkeessa, joten sen on täytettävä vähintään yksi tietue taulukosta arvon täyttämiseksi. Jos se ei saanut mitään tietuetta, poikkeus 'NO_DATA_FOUND' nousee.
  • SELECT-lausekkeen sarakkeiden määrän ja niiden tietotyypin tulee vastata INTO-lausekkeen muuttujien määrää ja niiden tietotyyppejä.
  • Arvot haetaan ja täytetään samassa järjestyksessä kuin lauseessa mainitaan.
  • WHERE-lauseke on valinnainen, mikä sallii enemmän rajoituksia haettaville tietueille.
  • SELECT-käskyä voidaan käyttää muiden DML-käskyjen WHERE-ehdoissa ehtojen arvojen määrittämiseen.
  • SELECT-käskyssä käytettäessä INSERT-, UPDATE- ja DELETE-lauseita ei saisi olla INTO-lauseketta, koska se ei täytä muuttujaa näissä tapauksissa.

Syntaksi:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • Yllä olevassa syntaksissa näkyy SELECT-INTO-komento. Hakusana FROM on pakollinen, joka yksilöi taulukon nimen, josta tiedot on haettava.
  • 'WHERE' -lauseke on valinnainen. Jos tätä lauseketta ei anneta, koko taulukon tiedot haetaan.

Esimerkki 1 : Tässä esimerkissä aiomme nähdä, kuinka DML-operaatiot suoritetaan PL / SQL: ssä. Aiomme lisätä alla olevat neljä tietuetta emp-taulukkoon.

EMP_NAME EMP_NO PALKKA JOHTAJA
BBB 1000 25000 AAA
XXX 1001 10000 BBB
YYY 1002 10000 BBB
ZZZ 1003 7500 BBB

Sitten päivitämme XXX: n palkan 15000: ksi ja poistamme työntekijätietueen ZZZ. Lopuksi aiomme projisoida työntekijän XXX tiedot.

DECLAREl_emp_name VARCHAR2(250);l_emp_no NUMBER;l_salary NUMBER;l_manager VARCHAR2(250);BEGIN INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘BBB’,1000,25000,’AAA’);INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES('XXX',1001,10000,’BBB);INSERT INTO emp(emp_name,emp_no,salary,managedVALUES(‘YYY',1002,10000,'BBB');INSERT INTO emp(emp_name,emp_no,salary,manager)VALUES(‘ZZZ',1003,7500,'BBB'):‭COMMIT;Dbms_output.put_line(‘Values Inserted');UPDATE EMPSET salary=15000WHERE emp_name='XXX';COMMIT;Dbms_output.put_line(‘Values Updated');DELETE emp WHERE emp_name='ZZZ';COMMIT:Dbms_output.put_line('Values Deleted );SELECT emp_name,emp_no,salary,manager INTO l_emp_name,l_emp_no,l_salary,l_manager FROM emp WHERE emp_name='XXX';Dbms output.put line(‘Employee Detail’);Dbms_output.put_line(‘Employee Name:‘||l_emp_name);Dbms_output.put_line(‘Employee Number:‘||l_emp_no);Dbms_output.put_line(‘Employee Salary:‘||l_salary);Dbms output.put line(‘Emplovee Manager Name:‘||l_manager):END;/

Tuotos:

Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB

Koodin selitys:

  • Koodirivi 2-5 : Muuttujan ilmoittaminen.
  • Koodirivi 7-14 : Lisätään tietueet emp-taulukkoon.
  • Koodirivi 15 : Lisää tapahtumia.
  • Koodirivi 17-19 : Työntekijän XXX palkan päivittäminen 15000: ksi
  • Koodirivi 20 : Päivitystapahtuman suorittaminen.
  • Koodirivi 22 : ZZZ-tietueen poistaminen
  • Koodirivi 23 : Poista tapahtuma.
  • Koodirivi 25-27 : XXX-tietueen valinta ja täyttäminen muuttujiin l_emp_name, l_emp_no, l_salary, l_manager.
  • Koodirivi 28-32 : Haettujen tietueiden arvon näyttäminen.