Oracle PL / SQL Indsæt, opdater, slet & Vælg ind (eksempel)

Indholdsfortegnelse:

Anonim

I denne vejledning skal vi lære at bruge SQL i PL / SQL. SQL er den faktiske komponent, der tager sig af at hente og opdatere data i databasen, mens PL / SQL er den komponent, der behandler disse data. Yderligere, i denne artikel vil vi også diskutere, hvordan man kombinerer SQL inden for PL / SQL-blokken.

I denne vejledning lærer du-

  • Dataindsættelse
  • Dataopdatering
  • Sletning af data
  • Valg af data

DML-transaktioner i PL / SQL

DML står for Data Manipulation Language . Disse udsagn bruges hovedsageligt til at udføre manipulationsaktiviteten. Det beskæftiger sig med nedenstående operationer.

  • Dataindsættelse
  • Dataopdatering
  • Sletning af data
  • Valg af data

I PL / SQL kan vi kun udføre datamanipulationen ved hjælp af SQL-kommandoerne.

Dataindsættelse

I PL / SQL kan vi indsætte dataene i enhver tabel ved hjælp af SQL-kommandoen INSERT INTO. Denne kommando tager tabelnavn, tabelkolonne og kolonneværdier som input og indsætter værdien i basistabellen.

INSERT-kommandoen kan også tage værdierne direkte fra en anden tabel ved hjælp af 'SELECT' -sætningen i stedet for at give værdierne for hver kolonne. Gennem 'SELECT' udsagn kan vi indsætte så mange rækker som basistabellen indeholder.

Syntaks:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • Ovenstående syntaks viser kommandoen INSERT INTO. Tabellens navn og værdier er obligatoriske felter, hvorimod kolonnenavne ikke er obligatoriske, hvis indsætningsudsagnene har værdier for hele kolonnen i tabellen.
  • Nøgleordet 'VÆRDIER' er obligatorisk, hvis værdierne gives separat som vist ovenfor.

Syntaks:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • Ovenstående syntaks viser INSERT INTO-kommandoen, der tager værdierne direkte fra ved hjælp af SELECT-kommandoen.
  • Nøgleordet 'VÆRDIER' bør ikke være til stede i dette tilfælde, da værdierne ikke er angivet separat.

Dataopdatering

Dataopdatering betyder simpelthen en opdatering af værdien af ​​en hvilken som helst kolonne i tabellen. Dette kan gøres ved hjælp af 'UPDATE' erklæring. Denne erklæring tager tabelnavn, kolonnenavn og værdi som input og opdaterer dataene.

Syntaks:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • Ovenstående syntaks viser UPDATE. Nøgleordet 'SET' instruerer, at PL / SQL-motoren opdaterer kolonnens værdi med den angivne værdi.
  • 'WHERE' klausul er valgfri. Hvis denne klausul ikke er givet, opdateres værdien af ​​den nævnte kolonne i hele tabellen.

Sletning af data

Sletning af data betyder at slette en fuld post fra databasetabellen. Kommandoen 'SLET' bruges til dette formål.

Syntaks:

BEGINDELETEFROM
WHERE ;END;
  • Ovenstående syntaks viser kommandoen SLET. Nøgleordet 'FROM' er valgfrit og med eller uden 'FROM'-klausul opfører kommandoen på samme måde.
  • 'WHERE' klausul er valgfri. Hvis denne klausul ikke er givet, slettes hele tabellen.

Valg af data

Dataprojektion / hentning betyder at hente de krævede data fra databasetabellen. Dette kan opnås ved at bruge kommandoen 'SELECT' med 'INTO' klausul. Kommandoen 'SELECT' henter værdierne fra databasen, og 'INTO' -sætningen tildeler disse værdier til den lokale variabel i PL / SQL-blokken.

Nedenfor er de punkter, der skal overvejes i 'SELECT' -erklæringen.

  • 'SELECT' sætning skal kun returnere en post, mens du bruger 'INTO' klausul, da en variabel kun kan indeholde en værdi. Hvis sætningen 'SELECT' returnerer mere end en værdi end undtagelsen 'TOO_MANY_ROWS'.
  • 'SELECT' sætning tildeler værdien til variablen i 'INTO' klausulen, så den skal hente mindst en post fra tabellen for at udfylde værdien. Hvis den ikke fik nogen rekord, hæves undtagelsen 'NO_DATA_FOUND'.
  • Antallet af kolonner og deres datatype i "SELECT" -sætningen skal matche antallet af variabler og deres datatyper i "INTO" -sætningen.
  • Værdierne hentes og udfyldes i samme rækkefølge som nævnt i erklæringen.
  • 'WHERE'-klausul er valgfri, der gør det muligt at have mere begrænsning på de poster, der skal hentes.
  • 'SELECT' sætning kan bruges i 'WHERE'-tilstanden i andre DML-sætninger til at definere værdierne for betingelserne.
  • Sætningen 'SELECT', når du bruger 'INSERT', 'UPDATE', 'DELETE' udsagn, bør ikke have 'INTO' -sætningen, da den ikke udfylder nogen variabel i disse tilfælde.

Syntaks:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • Ovenstående syntaks viser kommandoen SELECT-INTO. Nøgleordet 'FROM' er obligatorisk, der identificerer det tabelnavn, hvorfra dataene skal hentes.
  • 'WHERE' klausul er valgfri. Hvis denne klausul ikke er angivet, hentes dataene fra hele tabellen.

Eksempel 1 : I dette eksempel skal vi se, hvordan man udfører DML-operationer i PL / SQL. Vi vil indsætte nedenstående fire poster i emp-tabellen.

EMP_NAME EMP_NO LØN MANAGER
BBB 1000 25000 AAA
XXX 1001 10000 BBB
ÅÅÅ 1002 10000 BBB
ZZZ 1003 7500 BBB

Derefter opdaterer vi lønnen på 'XXX' til 15000, og vi sletter medarbejderjournalen 'ZZZ'. Endelig skal vi projicere detaljerne for medarbejderen '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;/

Produktion:

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

Kode Forklaring:

  • Kodelinje 2-5 : Erklæring af variablen.
  • Kodelinje 7-14 : Indsættelse af posterne i emp-tabellen.
  • Kodelinje 15 : Foretag indsættelsestransaktioner.
  • Kodelinje 17-19 : Opdatering af løn til medarbejderen 'XXX' til 15000
  • Kodelinje 20 : Foretagelse af opdateringstransaktionen.
  • Kodelinje 22 : Sletning af posten for 'ZZZ'
  • Kodelinje 23 : Foretag sletningstransaktionen.
  • Kodelinje 25-27 : Valg af posten 'XXX' og udfyldning i variablen l_emp_name, l_emp_no, l_salary, l_manager.
  • Kodelinje 28-32 : Visning af den hentede posterværdi.