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.
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.