Šajā apmācībā mēs iemācīsimies izmantot SQL PL / SQL. SQL ir faktiskais komponents, kas rūpējas par datu ielādēšanu un atjaunināšanu datu bāzē, savukārt PL / SQL ir komponents, kas apstrādā šos datus. Šajā rakstā mēs arī apspriedīsim, kā apvienot SQL PL / SQL blokā.
Šajā apmācībā jūs uzzināsiet
- Datu ievietošana
- Datu atjaunināšana
- Datu dzēšana
- Datu atlase
DML darījumi PL / SQL
DML apzīmē datu manipulācijas valodu . Šie apgalvojumi galvenokārt tiek izmantoti manipulācijas darbības veikšanai. Tas attiecas uz tālāk norādītajām darbībām.
- Datu ievietošana
- Datu atjaunināšana
- Datu dzēšana
- Datu atlase
PL / SQL mēs varam veikt datu manipulāciju, tikai izmantojot SQL komandas.
Datu ievietošana
PL / SQL mēs varam ievietot datus jebkurā tabulā, izmantojot SQL komandu INSERT INTO. Šī komanda kā ievadi ņems tabulas nosaukumu, tabulas kolonnu un kolonnu vērtības un vērtību ievietos bāzes tabulā.
INSERT komanda var arī paņemt vērtības tieši no citas tabulas, izmantojot 'SELECT', nevis katras kolonnas vērtības. Izmantojot “SELECT” paziņojumu, mēs varam ievietot tik daudz rindu, cik satur bāzes tabula.
Sintakse:
BEGININSERT INTO( , ,… )VALUES( ,… : );END;
- Iepriekš minētā sintakse parāda komandu INSERT INTO. Tabulas nosaukums un vērtības ir obligāti aizpildāmi lauki, savukārt kolonnu nosaukumi nav obligāti, ja ievietošanas paziņojumos ir vērtības visai tabulas kolonnai.
- Atslēgvārds “VALUES” ir obligāts, ja vērtības tiek norādītas atsevišķi, kā parādīts iepriekš.
Sintakse:
BEGININSERT INTO( , ,… , )SELECT , ,… FROM ;END;
- Iepriekš aprakstītajā sintaksē tiek parādīta komanda INSERT INTO, kas ņem vērtības tieši no
, izmantojot komandu SELECT. - Atslēgvārdam “VALUES” šajā gadījumā nevajadzētu būt, jo vērtības nav norādītas atsevišķi.
Datu atjaunināšana
Datu atjaunināšana vienkārši nozīmē jebkuras tabulas kolonnas vērtības atjauninājumu. To var izdarīt, izmantojot paziņojumu “UPDATE”. Šis paziņojums kā ievadi ņem tabulas nosaukumu, kolonnas nosaukumu un vērtību un atjaunina datus.
Sintakse:
BEGIN UPDATESET = , = , = WHERE ;END;
- Iepriekš aprakstītajā sintaksē ir redzams UPDATE. Atslēgvārds “SET” uzdod PL / SQL motoram atjaunināt kolonnas vērtību ar norādīto.
- “WHERE” klauzula nav obligāta. Ja šī klauzula netiek dota, tad visas tabulas minētās kolonnas vērtība tiks atjaunināta.
Datu dzēšana
Datu dzēšana nozīmē viena pilna ieraksta dzēšanu no datu bāzes tabulas. Šim nolūkam tiek izmantota komanda DELETE.
Sintakse:
BEGINDELETEFROMWHERE ;END;
- Iepriekš sintakse parāda komandu DELETE. Atslēgvārds “FROM” nav obligāts, un ar vai bez “FROM” klauzulas komanda rīkojas tāpat.
- “WHERE” klauzula nav obligāta. Ja šī klauzula netiek dota, visa tabula tiks dzēsta.
Datu atlase
Datu projicēšana / ienešana nozīmē nepieciešamo datu izgūšanu no datu bāzes tabulas. To var panākt, izmantojot komandu 'SELECT' ar klauzulu 'INTO'. Komanda “SELECT” iegūs vērtības no datu bāzes, un klauzula “INTO” piešķirs šīs vērtības PL / SQL bloka lokālajam mainīgajam.
Tālāk ir norādīti punkti, kas jāņem vērā paziņojumā “SELECT”.
- 'SELECT' priekšrakstam jāatgriež tikai viens ieraksts, vienlaikus izmantojot klauzulu 'INTO', jo vienā mainīgajā var būt tikai viena vērtība. Ja paziņojums “SELECT” atgriež vairāk nekā vienu vērtību, tiks palielināts izņēmums “TOO_MANY_ROWS”.
- 'SELECT' priekšraksts piešķirs mainīgajam vērtību klauzulā 'INTO', tāpēc vērtības aizpildīšanai no tabulas jāiegūst vismaz viens ieraksts. Ja tas nav ieguvis ierakstu, tiek izcelts izņēmums “NO_DATA_FOUND”.
- Kolonnas skaitam un to datu tipam klauzulā “SELECT” jāsakrīt ar mainīgo skaitu un to datu tipiem klauzulā “INTO”.
- Vērtības tiek iegūtas un aizpildītas tādā pašā secībā, kā minēts paziņojumā.
- “WHERE” klauzula nav obligāta, kas ļauj noteikt lielākus ierobežojumus ierakstiem, kurus paredzēts ielādēt.
- 'SELECT' priekšrakstu var izmantot citu DML priekšrakstu nosacījumā 'WHERE', lai definētu nosacījumu vērtības.
- Izlasē 'SELECT', izmantojot 'INSERT', 'UPDATE', 'DELETE' priekšrakstus, nedrīkst būt klauzula 'INTO', jo šajos gadījumos tas neaizpildīs nevienu mainīgo.
Sintakse:
BEGINSELECT,… INTO ,… FROM WHERE ;END;
- Iepriekš minētā sintakse parāda komandu SELECT-INTO. Atslēgvārds “FROM” ir obligāts, kas identificē tabulas nosaukumu, no kura jāiegūst dati.
- “WHERE” klauzula nav obligāta. Ja šī klauzula netiek dota, tiks iegūti dati no visas tabulas.
1. piemērs : Šajā piemērā mēs redzēsim, kā veikt DML darbības PL / SQL. Zemāk esošos četrus ierakstus mēs ievietosim emp tabulā.
EMP_NAME | EMP_NO | ALGA | VADĪTĀJS |
BBB | 1000 | 25000 | AAA |
XXX | 1001 | 10000 | BBB |
YYY | 1002 | 10000 | BBB |
ZZZ | 1003 | 7500 | BBB |
Tad mēs atjaunināsim algu “XXX” līdz 15000 un dzēsīsim darbinieku ierakstu “ZZZ”. Visbeidzot, mēs izstrādāsim darbinieka “XXX” detaļas.
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;/
Izeja:
Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB
Koda skaidrojums:
- Kodu rinda 2-5 : Mainīgā deklarēšana.
- Kodu rinda 7-14 : ierakstu ievietošana emp tabulā.
- 15. koda rindiņa : ievietošanas darījumu veikšana.
- Kodu rinda 17-19 : darbinieka "XXX" algas atjaunināšana līdz 15000
- 20. koda rindiņa : atjaunināšanas darījuma veikšana.
- 22. koda rindiņa : “ZZZ” ieraksta dzēšana
- 23. koda rindiņa : dzēšanas darījuma veikšana.
- Kodu rinda 25–27 : “XXX” ieraksta izvēle un aizpildīšana mainīgajā l_emp_name, l_emp_no, l_salary, l_manager.
- Kodu rinda 28-32 : parādīta ielādēto ierakstu vērtība.