Oracle PL / SQL Infoga, uppdatera, ta bort & Välj till (exempel)

Innehållsförteckning:

Anonim

I den här handledningen ska vi lära oss hur man använder SQL i PL / SQL. SQL är den faktiska komponenten som tar hand om att hämta och uppdatera data i databasen medan PL / SQL är den komponent som behandlar dessa data. I den här artikeln kommer vi också att diskutera hur man kombinerar SQL i PL / SQL-blocket.

I den här handledningen lär du dig-

  • Datainsättning
  • Uppdatering av data
  • Radering av data
  • Val av data

DML-transaktioner i PL / SQL

DML står för Data Manipulation Language . Dessa uttalanden används främst för att utföra manipuleringsaktiviteten. Den behandlar nedanstående operationer.

  • Datainsättning
  • Uppdatering av data
  • Radering av data
  • Val av data

I PL / SQL kan vi bara göra datahantering genom att använda SQL-kommandona.

Datainsättning

I PL / SQL kan vi infoga data i valfri tabell med SQL-kommandot INSERT INTO. Detta kommando tar tabellnamnet, tabellkolumnen och kolumnvärdena som inmatning och infogar värdet i bastabellen.

INSERT-kommandot kan också ta värdena direkt från en annan tabell med hjälp av 'VÄLJ' -uttryck snarare än att ge värdena för varje kolumn. Genom 'VÄLJ' uttalande kan vi infoga så många rader som bastabellen innehåller.

Syntax:

BEGININSERT INTO 
(,,… )VALUES(,… :);END;
  • Ovanstående syntax visar kommandot INSERT INTO. Tabellnamnet och värdena är obligatoriska fält, medan kolumnnamn inte är obligatoriska om infogade uttalanden har värden för hela kolumnen i tabellen.
  • Nyckelordet "VÄRDEN" är obligatoriskt om värdena ges separat enligt ovan.

Syntax:

BEGININSERT INTO 
(,,… ,)SELECT ,,…  FROM 
;END;
  • Ovanstående syntax visar INSERT INTO-kommandot som tar värdena direkt från med SELECT-kommandot.
  • Nyckelordet "VÄRDEN" bör inte finnas i detta fall eftersom värdena inte ges separat.

Uppdatering av data

Datauppdatering betyder helt enkelt en uppdatering av värdet på vilken kolumn som helst i tabellen. Detta kan göras med hjälp av 'UPDATE' uttalande. Detta uttalande tar tabellnamnet, kolumnnamnet och värdet som inmatning och uppdaterar data.

Syntax:

BEGIN UPDATE 
SET =,=,=WHERE ;END;
  • Ovanstående syntax visar UPPDATERINGEN. Nyckelordet 'SET' instruerar att PL / SQL-motorn ska uppdatera kolumnens värde med det angivna värdet.
  • 'WHERE' klausul är valfri. Om denna klausul inte ges uppdateras värdet för den nämnda kolumnen i hela tabellen.

Radering av data

Dataradering betyder att ta bort en fullständig post från databastabellen. Kommandot 'RADERA' används för detta ändamål.

Syntax:

BEGINDELETEFROM
WHERE ;END;
  • Ovanstående syntax visar kommandot DELETE. Nyckelordet "FROM" är valfritt och med eller utan "FROM" -sats fungerar kommandot på samma sätt.
  • 'WHERE' klausul är valfri. Om denna klausul inte ges kommer hela tabellen att raderas.

Val av data

Dataprojektion / -hämtning betyder att hämta nödvändiga data från databastabellen. Detta kan uppnås genom att använda kommandot "SELECT" med "INTO" -satsen. Kommandot 'SELECT' hämtar värdena från databasen och 'INTO' -satsen tilldelar dessa värden till den lokala variabeln i PL / SQL-blocket.

Nedan följer de punkter som måste beaktas i 'VÄLJ' uttalande.

  • 'VÄLJ' -uttrycket ska endast returnera en post medan 'INTO' -satsen används, eftersom en variabel bara kan innehålla ett värde. Om 'VÄLJ' -uttrycket returnerar mer än ett värde än 'TOO_MANY_ROWS' kommer undantaget att höjas.
  • 'VÄLJ' uttalande tilldelar värdet till variabeln i 'INTO' satsen, så det måste hämta minst en post från tabellen för att fylla i värdet. Om det inte fick någon post, tas undantaget 'NO_DATA_FOUND' upp.
  • Antalet kolumner och deras datatyp i "SELECT" -satsen ska matcha antalet variabler och deras datatyper i "INTO" -satsen.
  • Värdena hämtas och fylls i samma ordning som nämns i uttalandet.
  • 'WHERE'-klausulen är valfri som gör det möjligt att ha fler begränsningar för de poster som ska hämtas.
  • 'SELECT' -uttryck kan användas i 'WHERE'-tillståndet i andra DML-satser för att definiera villkoren.
  • Uttrycket "VÄLJ" när du använder "INSERT", "UPDATE", "DELETE" -uttalanden bör inte ha "INTO" -satsen eftersom det inte fyller någon variabel i dessa fall.

Syntax:

BEGINSELECT ,…  INTO ,… FROM 
WHERE ;END;
  • Ovanstående syntax visar kommandot SELECT-INTO. Nyckelordet "FROM" är obligatoriskt som identifierar det tabellnamn som data måste hämtas från.
  • 'WHERE' klausul är valfri. Om denna klausul inte ges kommer data från hela tabellen att hämtas.

Exempel 1 : I det här exemplet ska vi se hur man utför DML-operationer i PL / SQL. Vi ska infoga nedanstående fyra poster i emp-tabellen.

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

Sedan ska vi uppdatera lönen på 'XXX' till 15000, och vi kommer att ta bort medarbetarregistret 'ZZZ'. Slutligen ska vi projicera detaljerna för den anställde '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

Kodförklaring:

  • Kodrad 2-5 : Deklarera variabeln.
  • Kodrad 7-14 : Infoga poster i emp-tabellen.
  • Kodrad 15 : Genomföra insättningstransaktioner.
  • Kodrad 17-19 : Uppdatering av lönen för den anställde 'XXX' till 15000
  • Kodrad 20 : Genomför uppdateringstransaktionen.
  • Kodrad 22 : Radera posten för 'ZZZ'
  • Kodrad 23 : Begår borttagningstransaktionen.
  • Kodrad 25-27 : Välja posten för 'XXX' och fylla i variabeln l_emp_name, l_emp_no, l_salary, l_manager.
  • Kodrad 28-32 : Visar det hämtade postvärdet.