Presentation is loading. Please wait.

Presentation is loading. Please wait.

Difference between Oracle PL/SQL and MySQL

Similar presentations


Presentation on theme: "Difference between Oracle PL/SQL and MySQL"— Presentation transcript:

1 Difference between Oracle PL/SQL and MySQL

2 MySQL PL/SQL control statements

3 PL/SQL Introduction PL/SQL is a combination of SQL along with the procedural features of programming languages. Basic Syntax of PL/SQL which is a block-structured language; this means that the PL/SQL programs are divided and written in logical blocks of code. Each block consists of three sub-parts

4 Pl/SQL Block structure

5 Pl/SQL Block structure Explanation
Sections Description Declarations This section starts with the keyword DECLARE. It is an optional section and defines all variables, cursors, and other elements to be used in the program. Executable Commands This section is enclosed between the keywords BEGIN and END and it is a mandatory section. It consists of the executable PL/SQL statements of the program. It should have at least one executable line of code. Exception Handling This section starts with the keyword EXCEPTION. This optional section contains exception(s) that handle errors in the program.

6 The 'Hello World' Example
DECLARE Message varchar(20):= 'Hello World!'; BEGIN dbms_output.put_line(Message); END; /

7 PL/SQL blocks are of mainly two types.
Types of PL/SQL block PL/SQL blocks are of mainly two types. Anonymous blocks Named Blocks

8 Unnamed block Examples
Not possible in MySQL but possible with oracle SQL

9 Unnamed block in oracle
SQL> set serveroutput on; // to show output on screen SQL> declare // For loop 2 A number:=1; 3 begin 4 for A in loop 5 dbms_output.put_line(A); 6 end loop; 7 end;

10 Unnamed block in oracle
SQL> declare // if-else 2 a number(4); 3 begin 4 for a in loop 5 if mod(a,5)=0 then 6 dbms_output.put_line(a); 7 else 8 dbms_output.put_line('value'||a); 9 end if; 10 end loop; 11 end;

11 Named block Examples: Procedures Functions

12 Some basic difference in PL/SQL (Oracle & MySQL)
set serveroutput on; Delimiter // dbms_output.put_line Not available in MySQL Unnamed block Named block: Stored procedure and function Cursor: Implicit, Explicit Cursor: only Explicit Trigger: Row level and statement level Trigger: Row level

13 Procedure syntax CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ] as [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ] [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END

14 Procedure Example and running the procedure
SQL> Set Server output on; SQL> create or replace procedure delcust(id number)as begin delete from cust where cid=id; end; / SQL> exec delcust(1); MySQL> delimiter // MySQL>create procedure delcust(IN id int(3)) begin delete from cust where cid=id; end; // MySQL> delimiter ; MySQL>call delcust(1) ;

15 Function Example SQL> create or replace function Rname(rno1 number)return varchar is sname stud.name%type; Begin select name into sname from Stud where rno=rno1; return sname; end; SQL> select Rname(1)from dual; mysql> create function Rname(rno1 int)returns varchar begin declare sname varcahr(20); select name into sname from Stud where rno=rno1; return sname; end; mysql> select Rname(1) ;

16 Cursor Example MySQL>call Stud1(); SQL> declare
cursor c1 is select rno,name from stud; rno1 stud.rno%type; name1 stud.name%type; begin open c1; loop fetch c1 into rno1,name1; exit when c1%notfound; dbms_output.put_line(cust1.cid ||' '|| cust1.name); end loop; close c1; end; MySQL>CREATE PROCEDURE Stud1()  BEGIN    DECLARE c1 CURSOR FOR select rno,name from stud; DECLARE rno1 int(3);    DECLARE name1 varchar(20);    DECLARE exit_loop BOOLEAN;    DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE; OPEN c1;   emp_loop: LOOP     FETCH  c1 INTO rno1,name1;           select rno1,name1;           IF exit_loop THEN          CLOSE c1;          LEAVE emp_loop;      END IF;    END LOOP emp_loop;  END MySQL>call Stud1();

17 Trigger Example SQL> create trigger t1 after insert on emp
for each row when(new.sal>10000) begin insert into emphigh values(:new.ename,:new.sal); End; / MySQL> create trigger t1 after insert on emp for each row begin IF NEW.sal >10000 THEN insert into emphigh values(new.ename,new.sal); End; /


Download ppt "Difference between Oracle PL/SQL and MySQL"

Similar presentations


Ads by Google