Oracle PL / SQL Sett inn, oppdater, slett og amp; Velg inn (eksempel)

Innholdsfortegnelse:

Anonim

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 UPDATE 
SET =,=,=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:

BEGINDELETEFROM
WHERE ;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.