Oracle PL/SQL lisää, päivitä, poista ja valitse [esimerkki]

Tässä opetusohjelmassa opimme käyttämään SQL PL/SQL:ssä. SQL on varsinainen komponentti, joka huolehtii tietokannan tietojen hakemisesta ja päivittämisestä, kun taas PL/SQL on komponentti, joka käsittelee nämä tiedot. Lisäksi tässä artikkelissa keskustelemme myös SQL:n yhdistämisestä PL/SQL-lohkossa.

DML-tapahtumat PL/SQL:ssä

DML tarkoittaa Tietojen käsittelykieli. Näitä lausuntoja käytetään pääasiassa manipulointitoiminnan suorittamiseen. Se käsittelee alla olevia toimintoja.

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

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

Tietojen lisäys

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

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

Syntaksi:

BEGIN
  INSERT INTO <table_name>(<column1 >,<column2>,...<column_n>)
     VALUES(<valuel><value2>,...:<value_n>);
END;
  • Yllä oleva syntaksi 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 kaikille taulukon sarakkeille.
  • Avainsana 'ARVOT' on pakollinen, jos arvot on annettu erikseen yllä olevan kuvan mukaisesti.

Syntaksi:

BEGIN
  INSERT INTO <table_name>(<columnl>,<column2>,...,<column_n>)
     SELECT <columnl>,<column2>,.. <column_n> FROM <table_name2>;
END;
  • Yllä oleva syntaksi näyttää INSERT INTO -komennon, joka ottaa arvot suoraan tiedostosta käyttämällä SELECT-komentoa.
  • Avainsanaa 'ARVOT' ei pitäisi olla tässä tapauksessa, koska arvoja ei anneta erikseen.

Tietojen päivitys

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

Syntaksi:

BEGIN	
  UPDATE <table_name>
  SET <columnl>=<VALUE1>,<column2>=<value2>,<column_n>=<value_n> 
  WHERE <condition that uniquely identifies the record that needs to be update>; 
END;
  • Yllä oleva syntaksi näyttää PÄIVITYKSEN. Avainsana 'SET' käskee PL/SQL-konetta päivittämään sarakkeen arvon annetulla arvolla.
  • WHERE-lauseke on valinnainen. Jos tätä lauseketta ei anneta, päivitetään mainitun sarakkeen arvo koko taulukossa.

Tietojen poisto

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

Syntaksi:

BEGIN
  DELETE
  FROM
  <table_name>
  WHERE <condition that uniquely identifies the record that needs to be update>; 
END;
  • Yllä oleva syntaksi näyttää DELETE-komennon. Avainsana 'FROM' on valinnainen ja FROM-lauseen kanssa tai ilman komento toimii samalla tavalla.
  • WHERE-lauseke on valinnainen. Jos tätä lauseketta ei anneta, koko taulukko poistetaan.

Tietojen valinta

Tietojen projisointi/haku tarkoittaa vaadittujen tietojen hakemista tietokantataulukosta. Tämä voidaan saavuttaa käyttämällä komentoa "SELECT" ja "INTO"-lausetta. SELECT-komento hakee arvot tietokannasta, ja INTO-lause määrittää nämä arvot paikalliselle muuttujalle. PL/SQL-lohko.

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

  • SELECT-käskyn tulisi palauttaa vain yksi tietue, kun taas INTO-lausetta käytetään, koska yhdellä muuttujalla voi olla vain yksi arvo. Jos SELECT-käsky palauttaa useamman kuin yhden arvon, TOO_MANY_ROWS-poikkeus nostetaan esiin.
  • SELECT-käsky antaa arvon INTO-lauseen muuttujalle, joten sen on saatava vähintään yksi tietue taulukosta arvon täyttämiseksi. Jos se ei saanut mitään tietuetta, poikkeus 'NO_DATA_FOUND' korotetaan.
  • Sarakkeiden lukumäärän ja niiden tietotyypin SELECT-lauseessa tulee vastata muuttujien määrää ja niiden tietotyyppejä INTO-lauseessa.
  • Arvot haetaan ja täytetään samassa järjestyksessä kuin lausunnossa mainitaan.
  • 'WHERE'-lauseke on valinnainen, mikä sallii noudettavien tietueiden rajoittamisen.
  • SELECT-käskyä voidaan käyttää muiden DML-käskyjen WHERE-ehdoissa ehtojen arvojen määrittämiseen.
  • SELECT-käskyssä INSERT-, UPDATE- ja DELETE-käskyjä käytettäessä ei pitäisi olla INTO-lausetta, koska se ei täytä muuttujia näissä tapauksissa.

Syntaksi:

BEGIN
  SELECT <columnl>,..<column_n> INTO <vanable 1 >,. .<variable_n> 
   FROM <table_name>
   WHERE <condition to fetch the required records>;
END;
  • Yllä oleva syntaksi näyttää SELECT-INTO-komennon. Avainsana 'FROM' on pakollinen, joka identifioi taulukon nimen, josta tiedot on haettava.
  • WHERE-lauseke on valinnainen. Jos tätä lauseketta ei anneta, tiedot noudetaan koko taulukosta.

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

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

Sitten päivitämme XXX palkan 15000 XNUMX:een ja poistamme työntekijätietueen 'ZZZ'. Lopuksi projisoimme työntekijän XXX tiedot.

Tietojen valinta PL/SQL:ssä

DECLARE
l_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,managed 
VALUES(‘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 EMP
SET salary=15000
WHERE 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;
/

lähtö:

Values Inserted
Values Updated
Values Deleted
Employee Detail 
Employee Name:XXX 
Employee Number:1001 
Employee Salary:15000 
Employee Manager Name:BBB

Koodin selitys:

  • Koodirivi 2-5: Muuttujan ilmoittaminen.
  • Koodirivi 7-14: Tietueiden lisääminen emp-taulukkoon.
  • Koodirivi 15: Sisältötapahtumien sitominen.
  • Koodirivi 17-19: Työntekijän 'XXX' palkan päivittäminen 15000:een
  • Koodirivi 20: Päivitystapahtuman sitominen.
  • Koodirivi 22: ZZZ-tietueen poistaminen
  • Koodirivi 23: Poistotapahtuman sitominen.
  • Koodirivi 25-27: Valitse 'XXX' -tietue ja täytä muuttuja l_emp_name, l_emp_no, l_salary, l_manager.
  • Koodirivi 28-32: Näyttää haettujen tietueiden arvon.