I denne opplæringen skal vi lære hvordan du bruker SQL i PL / SQL. SQL er den faktiske komponenten som tar seg av henting og oppdatering av data i databasen mens PL / SQL er komponenten som behandler disse dataene. Videre, i denne artikkelen, vil vi også diskutere hvordan du kombinerer SQL i PL / SQL-blokken.
I denne veiledningen vil du lære-
- Datainnsetting
- Dataoppdatering
- Sletting av data
- Valg av data
DML-transaksjoner i PL / SQL
DML står for Data Manipulation Language . Disse uttalelsene brukes hovedsakelig til å utføre manipulasjonsaktiviteten. Den omhandler operasjonene nedenfor.
- Datainnsetting
- Dataoppdatering
- Sletting av data
- Valg av data
I PL / SQL kan vi bare gjøre datamanipuleringen ved å bruke SQL-kommandoene.
Datainnsetting
I PL / SQL kan vi sette inn dataene i hvilken som helst tabell ved hjelp av SQL-kommandoen INSERT INTO. Denne kommandoen tar tabellnavnet, tabellkolonnen og kolonneverdiene som inngang og setter inn verdien i basistabellen.
INSERT-kommandoen kan også ta verdiene direkte fra en annen tabell ved å bruke 'SELECT' -uttrykk i stedet for å gi verdiene for hver kolonne. Gjennom 'VELG' uttalelse kan vi sette inn så mange rader som grunntabellen inneholder.
Syntaks:
BEGININSERT INTO( , ,… )VALUES( ,… : );END;
- Ovennevnte syntaks viser INSERT INTO-kommandoen. Tabellnavnet og verdiene er obligatoriske felt, mens kolonnenavn ikke er obligatoriske hvis innleggssetningene har verdier for hele kolonnen i tabellen.
- Nøkkelordet "VERDIER" er obligatorisk hvis verdiene er gitt separat som vist ovenfor.
Syntaks:
BEGININSERT INTO( , ,… , )SELECT , ,… FROM ;END;
- Ovennevnte syntaks viser INSERT INTO-kommandoen som tar verdiene direkte fra
ved hjelp av SELECT-kommandoen. - Nøkkelordet "VERDIER" bør ikke være til stede i dette tilfellet, ettersom verdiene ikke er gitt separat.
Dataoppdatering
Dataoppdatering betyr ganske enkelt en oppdatering av verdien til en hvilken som helst kolonne i tabellen. Dette kan gjøres ved hjelp av 'UPDATE' uttalelse. Denne uttalelsen tar tabellnavnet, kolonnenavnet og verdien som inngang og oppdaterer dataene.
Syntaks:
BEGIN UPDATESET = , = , = WHERE ;END;
- Syntaksen ovenfor viser OPPDATERINGEN. Nøkkelordet 'SET' instruerer PL / SQL-motoren om å oppdatere kolonnens verdi med den oppgitte verdien.
- 'WHERE' klausul er valgfri. Hvis denne paragrafen ikke er gitt, vil verdien av den nevnte kolonnen i hele tabellen bli oppdatert.
Sletting av data
Sletting av data betyr å slette en full post fra databasetabellen. Kommandoen 'SLETT' brukes til dette formålet.
Syntaks:
BEGINDELETEFROMWHERE ;END;
- Syntaksen ovenfor viser SLETT-kommandoen. Nøkkelordet 'FROM' er valgfritt og med eller uten 'FROM'-ledd kommandoen oppfører seg på samme måte.
- 'WHERE' klausul er valgfri. Hvis denne paragrafen ikke er gitt, vil hele tabellen bli slettet.
Valg av data
Dataprojeksjon / henting betyr å hente de nødvendige dataene fra databasetabellen. Dette kan oppnås ved å bruke kommandoen 'VELG' med 'INTO'. Kommandoen 'SELECT' vil hente verdiene fra databasen, og 'INTO' -klausulen vil tildele disse verdiene til den lokale variabelen i PL / SQL-blokken.
Nedenfor er punktene som må vurderes i 'SELECT' uttalelse.
- 'SELECT' -uttrykk skal bare returnere en post mens du bruker 'INTO' -klausulen, da en variabel bare kan inneholde en verdi. Hvis 'SELECT' -uttrykket returnerer mer enn én verdi enn 'TOO_MANY_ROWS', vil unntaket bli hevet.
- 'SELECT' -uttrykk vil tilordne verdien til variabelen i 'INTO' -klausulen, så den må hente minst en post fra tabellen for å fylle ut verdien. Hvis den ikke fikk noen rekord, heves unntaket 'NO_DATA_FOUND'.
- Antall kolonner og deres datatype i 'SELECT' -klausulen skal samsvare med antall variabler og deres datatyper i 'INTO' -klausulen.
- Verdiene hentes og fylles ut i samme rekkefølge som nevnt i uttalelsen.
- 'WHERE' klausul er valgfri som gjør det mulig å ha mer begrensning på postene som skal hentes.
- 'SELECT' -uttrykk kan brukes i 'WHERE'-tilstanden til andre DML-setninger for å definere verdiene til forholdene.
- Uttrykket 'VELG' når du bruker 'INSERT', 'UPDATE', 'DELETE' -uttrykk, bør ikke ha 'INTO' -sats, da det ikke vil fylle noen variabel i disse tilfellene.
Syntaks:
BEGINSELECT,… INTO ,… FROM WHERE ;END;
- Ovennevnte syntaks viser SELECT-INTO-kommandoen. Nøkkelordet 'FROM' er obligatorisk som identifiserer tabellnavnet som dataene må hentes fra.
- 'WHERE' klausul er valgfri. Hvis denne paragrafen ikke er gitt, blir dataene fra hele tabellen hentet.
Eksempel 1 : I dette eksemplet skal vi se hvordan du utfører DML-operasjoner i PL / SQL. Vi skal sette inn nedenstående fire poster i emp-tabellen.
EMP_NAME | EMP_NO | LØNN | SJEF |
BBB | 1000 | 25000 | AAA |
XXX | 1001 | 10000 | BBB |
ÅÅÅ | 1002 | 10000 | BBB |
ZZZ | 1003 | 7500 | BBB |
Deretter skal vi oppdatere lønnen til 'XXX' til 15000, og vi skal slette ansattes post 'ZZZ'. Til slutt skal vi projisere detaljene til den ansatte 'XXX'.
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;/
Produksjon:
Values InsertedValues UpdatedValues DeletedEmployee DetailEmployee Name:XXXEmployee Number:1001Employee Salary:15000Employee Manager Name:BBB
Kode Forklaring:
- Kodelinje 2-5 : Deklarere variabelen.
- Kodelinje 7-14 : Sette inn postene i emp-tabellen.
- Kodelinje 15 : Foreta innsatstransaksjoner.
- Kodelinje 17-19 : Oppdaterer lønnen til den ansatte 'XXX' til 15000
- Kodelinje 20 : Forplikter oppdateringstransaksjonen.
- Kodelinje 22 : Slette posten til 'ZZZ'
- Kodelinje 23 : Foreta slettetransaksjonen.
- Kodelinje 25-27 : Velge posten til 'XXX' og fylle ut i variabelen l_emp_name, l_emp_no, l_salary, l_manager.
- Kodelinje 28-32 : Viser den hentede postverdien.