DBMS Lab
DBMS Lab
DBMS Lab
To study DLL, DML and DCL commands in RDBMS. PROCEDURE: DDL (Data definition language) statements are used to define the database Structure of schema some examples CREATE: To create objects in the database ALTER: Alters the structure of the database DROP: Delete the objects from the database TRUNCATE: Remove all records from a table, including all spaces allocated for the records are removed. COMMENT: Add comments to the data directory RENAME: Rename a object DML (Data manipulation language) statements are used for managing data with in schema objects some examples SELECT: Retrieve data from the database INSERT: Insert data into a table UPDATE: Update existing data with in a table DELETE: Deletes all records from a table the space for the records remains MERGE_UPSERT: Operation (inserts or update) CALL: Call a PL/SQL or JAVA sub program EXPLAIN PLAN: Explain access path to data LOCK TABLE: control concurrency DCL (Data control languages) statement some examples GRANT: Gives users access privileges to database REVOKE: Withdraw access privileges gives with the GRANT command.
DDL COMMANDS:
1
Create Table Command: SQL> create table studentmarklist(name varchar(20),regno number(4), mark1 number(2),mark2 number(2),mark3 number(2)); Table created. Describe Command: SQL> desc studentmarklist; Name Null? Type ------------------------------- -------- ---NAME VARCHAR2(20) REGNO NUMBER(4) MARK1 NUMBER(2) MARK2 NUMBER(2) MARK3 NUMBER(2) Alter Command: (i) Modifying the tables: Before modifying the table: SQL> desc studentmarklist; Name Null? Type ------------------------------- -------- ---NAME VARCHAR2(20) REGNO NUMBER(4) MARK1 NUMBER(2) MARK2 NUMBER(2) MARK3 NUMBER(2) SQL> alter table studentmarklist modify(name varchar(25)); Table altered. After modifying the table: SQL> desc studentmarklist;
2
Name Null? Type ------------------------------- -------- ---NAME VARCHAR2(25) REGNO NUMBER(4) MARK1 NUMBER(2) MARK2 NUMBER(2) MARK3 NUMBER(2) (ii) Adding the columns in a table: SQL> alter table studentmarklist add(total number(3)); Table altered. SQL> desc studentmarklist; Name Null? Type ------------------------------- -------- ---NAME VARCHAR2(25) REGNO NUMBER(4) MARK1 NUMBER(2) MARK2 NUMBER(2) MARK3 NUMBER(2) TOTAL NUMBER(3) Drop Command: SQL> drop table studentmarklist; Table dropped. Truncate Command: SQL> truncate table studentmarklist; Table truncated.
DML COMMANDS:
3
Insert Command: SQL> insert into studentmarklist values('mahesh',101,50,50,50,150); 1 row created. Select Command: SQL> select * from studentmarklist; NAME ------------------------mahesh mahesh Update Command: Before modifying the existing data in the table: SQL> select * from studentmarklist; NAME ------------------------mahesh mahesh REGNO --------101 101 MARK1 -------50 50 MARK2 --------50 50 MARK3 --------50 50 TOTAL --------150 150 REGNO --------101 101 MARK1 -------50 50 MARK2 --------50 50 MARK3 --------50 50 TOTAL --------150 150
SQL> update studentmarklist set name='kumar' where name='mahesh'; 2 rows updated. After modifying the existing data in the table: SQL> select * from studentmarklist; NAME -------------------kumar kumar Delete Command: REGNO --------101 101 MARK1 --------50 50 MARK2 --------50 50 MARK3 TOTAL --------- --------50 150 50 150
Before deleting the columns in a table: SQL> select * from studentmarklist; NAME ------------------------mahesh mahesh REGNO --------101 101 MARK1 -------50 50 MARK2 --------50 50 MARK3 --------50 50 TOTAL --------150 150
SQL> delete from studentmarklist where name='kumar'; 2 rows deleted. After deleting the columns in a table: SQL> select * from studentmarklist; no rows selected DCL commands: SQL> create table e_1(eno number(4),ena varchar2(20),job varchar2(20)); Table created. SQL> insert into e_1 values (101,'mahesh','manager'); 1 row created. SQL> insert into e_1 values (102,'balu','supervisor'); 1 row created.
SQL> grant alter,update,insert on e_1 to system; Grant succeeded. SQL> revoke alter,update,insert on e_1 from system; Revoke succeeded. SQL> delete from e_1 where eno=101; 1 row deleted. SQL> commit; Commit complete. SQL> savepoint s1; Savepoint created. SQL> rollback to s1; Rollback complete.
RESULT: Thus the DLL, DML and DCL commands in DBMS was studied.
Ex no: 2
DATE: AIM: To create a simple PL/SQL block for student details using the following procedure. ALGORITHM: Step1: Start the program Step2: Open the SQL Plus Step3: Create the table student and declare the required field name and its Data type Step4: Inserts the values to the fields Step5: And display the student table with field and its value Step6: And to display the contents from PL/SQL program using Set server output on Step7: By using the declare statement, we can initialize variable types Step8: We can define the executable statements with in the begin block Step9: And run the program Step10: Close the SQL Plus Step11: End the program
PROGRAM: SQL>create table student(student_number char(20),studentlastname char(20), studentfirstname char(20),address char(20),city char(20), state char(10), pincode char(6)); Table Created. SQL> desc student; Name Null? Type ------------------------------- -------- ---STUDENT_NUMBER STUDENTLASTNAME STUDENTFIRSTNAME ADDRESS CITY STATE PINCODE
SQL>insert into student values(101,sachin,tendulkar,kumar nagar,coimbatore,Tamil Nadu,641603); 1 row created. SQL> select * from student; STUDENT_NUMBER ---------- ---------------ADDRESS -------------101 kumar nagar STUDENTLASTNAME STUDENTFIRSTNAME ------------------------------------------------CITY STATE PINCODE ---------------------sachin tn tendulkar cbe tn 641603
SQL> set serveroutput on; SQL> declare 2 studentnumber char (20); 3 lastname char (20);
9
4 firstname char (20); 5 begin 6 studentnumber: ='101'; 7 select studentlastname,studentfirstname into lastname,firstname 8 from student where student_number=studentnumber; 9 dbms_output.put_line('the name is :'|| firstname || '' || lastname); 10 end; 11 /
10
11
RESULT: Thus to create a simple PL/SQL block for student details are created and verified. Ex no: 3 Date: PROCEDURE IN PL/SQL
12
AIM: To write PL/SQL program to display the student details using procedure. ALGORITHM: Step1: Start the program Step2: Open the SQL plus Step3: Create a table student with following attributes such as student no, lastname, firstname, address, city, state, pincode Step4: Display the table Step5: Insert student values into table Step6: Select * from students (table) Step7: And display the attributes of table Step8: Create a procedure student into with following attributes Step9: Print the output Step10: close the SQL plus Step11: End the program
studentfirstname char(20),address char(20),city char(20), state char(20), pincode char(20)); Table created. SQL> desc student; Name Null? Type ------------------------------- -------- ---STUDENT_NUMBER CHAR(20) STUDENTLASTNAME CHAR(20) STUDENTFIRSTNAME CHAR(20) ADDRESS CHAR(20) CITY CHAR(20) STATE CHAR(20) PINCODE CHAR(20) SQL> insert into student values(101,'mahesh','kumar','kumar nagar','coimbatore','Tamil Nadu',641603); 1 row created. SQL> create procedure studinfo(studentnumber char) as 2 lastname char (20); 3 firstname char (20); 4 stat char (20); 5 begin 6 select studentlastname,studentfirstname,state into 7 lastname,firstname,stat 8 from student where student_number=studentnumber; 9 dbms_output.put_line('the name is :'||RTRIM(firstname) 10 || ' ' ||RTRIM(lastname)); 11 dbms_output.put_line('the state is'||stat); 12 exception 13 when NO_DATA_FOUND then 14 dbms_output.put_line('not a valid student'); 15 when OTHERS then 16 dbms_output.put_line('Error - '|| SQLERRM); 17 end; 18 / Procedure created.
14
OUTPUT: SQL> set serveroutput on; SQL> execute studinfo(101); The name is: kumar mahesh The state is: Tamil Nadu PL/SQL procedure successfully completed.
15
RESULT: Thus the PL/SQL program to display the student details using procedure was created and verified. Ex No: 4 Date: FUNCTION AND PROCEDURE IN PL/SQL
16
AIM: To write a PL/SQL program to calculate the available seats enrolled for a particular section using function and procedure. ALGORITHM: Step1: Start the program Step2: Open the SQL plus Step3: Create a table student with following attributes such as number, name, city, address, pincode and constraint value i.e., primary key Step4: Insert student values into table Step5: Create a table instructor with attributes and insert values into table Step6: Create a table course code with attributes and insert values into table Step7: Create a table enrollment with attributes and insert values into the table Step8: Create a function to calculate the number of seats enrolled Step9: Create the procedure Step10: Print the result Step11: Close the SQL plus Step12: End the program
17
primary key, student_last_name char (20),student_first_name char(20), address char(20), city char (20), state char (20),zin char(9)); Table created. SQL> insert into student1values(101,'kumer','arun','palanipuram','palani', 'tamilnadu', 6288299); 1 row created. SQL> create table instrutor (instrutor_id char (20) constraint pk_instrutor primary key, instrutor_last_name char (20), instrutor_first_name char (20), instrutor_phone char (20)); Table created. SQL> insert into instrutor values (201,'mani','balu', 776665753); 1 row created. SQL> create table course (course_code char (20) constraint pk_course primary key, course_title char (20),credit_hours char(20)); Table created. SQL> insert into course values (1001,'cse',8); 1 row created.
SQL> create table section (section_id char (20) constraint pk_section primary key, time_offered char(20),days_offered char(20),section_room char(20),
18
class_size char(20),constraint ck_class_size check(class_size>=0), number_enrolled number(3,0), constraint ck_number_enrolled check(number_enrolled>=0), instrutor_id char(20), constraint fk_section_instrutor foreign key(instrutor_id) references instrutor,course_code char(20), constraint fk_section_course foreign key (course_code) references course); Table created. SQL> insert into section values (301,'2hrs',5,6,5,5,201,1001); 1 row created. SQL> create table enrolment(student_number char(20),section_id char(20), grade char(20),constraint pk_enrolment primary key(student_number,section_id), constraint fk_enrolment_student foreign key(student_number) references student1, constraint fk_enrolment_section foreign key(section_id) references section); Table created. SQL> insert into enrolment values (101,301,'A'); 1 row created. SQL> create or replace function clac_seats(sectionsize in number,enrolled in number) 2 return number as 3 seats number (20); 4 begin 5 seats: =sectionsize-enrolled; 6 return seats; 7 end; 8 / Function created.
3 enrolled number(20); 4 avalible number(20); 5 begin 6 select class_size,number_enrolled into 7 sectionsize,enrolled from section 8 where section_id=sectionid; 9 avalible:=clac_seats(sectionsize,enrolled); 10 dbms_output.put_line('avalible seats='||avalible); 11 exception 12 when no_data_found then 13 dbms_output.put_line('not a valid section'); 14 when OTHERS then 15 dbms_output.put_line('error-||sqlerrm'); 16 end; 17 / Procedure created.
OUTPUT:
20
SQL> set serveroutput on; SQL> execute disp(301); avalible seats=0 PL/SQL procedure successfully completed. SQL> update section set number_enrolled=3 where section_id=301; 1 row updated. SQL> execute disp(301); avalible seats=2 PL/SQL procedure successfully completed.
21
RESULT: Thus the PL/SQL program to calculate the available seats enrolled for a particular section using function and procedure are created and verified.
Ex no: 5 Date:
TRIGGER IN PL/SQL
22
AIM: To create a trigger in PL/SQL using procedure. ALGORITHM: Step1: Start the program Step2: Open the SQL plus Step3: Create a table for employee details with following attributes such as employee name, salary number, designation, id number Step4: Insert values into a table Step5: Create table for employee details with its attributes Step6: Delete one row from the table Step7: Create a trigger and display table Step8: Delete another row from emp1details Step9: Print the result Step10: Close the SQL plus Step11: End the program
PROGRAM: SQL> create table emp1details (ename varchar2 (20), salary number (6),
23
designation varchar2 (20),empid number(5)); Table created. SQL> insert into emp1details values ('dravid',20000,'manager',4); 1 row created. SQL> insert into emp1details values('kumble',40000,'supervisor',5); 1 row created. SQL> insert into emp1details values('balaji',60000,'clerk',10); 1 row created.varchar SQL> select * from emp1details; ENAME -----------dravid kumble balaji SALARY DESIGNATION ---------------------------20000 manager 40000 supervisor 60000 clerk EMPID --------4 5 10
SQL>create table empd(ename varchar2(20),salary number(6), 2 designation varchar2(20),empid number(5)); SQL> create or replace trigger empd after delete on emp1details 2 for each row 3 begin 4 insert into empd 5 values(:old.ename,:old.salary,:old.designation,:old.empid); 6 end; 7 / Trigger created. OUTPUT: SQL> delete from emp1details where empid=4;
24
1 row deleted. SQL> select * from empd; ENAME SALARY DESIGNATION -------------------- --------- -------------------- --------dravid 20000 manager 4 SQL> select * from emp1details; ENAME SALARY DESIGNATION -------------------- --------- -------------------- --------kumble 40000 supervisor 5 balaji 60000 clerk 10 EMPID EMPID
25
RESULT: Thus the program to create a trigger in PL/SQL are created and verified.
26
CURSOR IN PL/SQL
To create a cursor in PL/SQL program using following procedure. ALGORITHM: Step1:Start the program Step2:Open the SQL plus Step3:Create a table section with its attributes Step4:Insert section values into the table Step5:Declare the following attributes such as section cursorand select classize,number enrolled, course code from thetable Step6:Open the attribute section cursor and fetch the values from Section cursor and insert into table Step7:close the SQL plus Step8: End the program
PROGRAM:
27
SQL> create table section(class_size number(10),number_enrolled number(10),course_code number(10)); Table created. SQL> insert into section values(100,75,03); 1 row created. SQL> set serveroutput on; SQL> declare 2 cursor section_cursor is 3 select class_size,number_enrolled 4 from section 5 where course_code=03; 6 classsize section.class_size%type; 7 numberenrolled section.number_enrolled%type; 8 begin 9 open section_cursor; 10 fetch section_cursor into classsize,numberenrolled; 11 dbms_output.put_line(numberenrolled||'out of'||classsize||'enrolled'); 12 end; 13 /
OUTPUT:
28
29
RESULT: Thus the program to create cursor in PL/SQL are created and verified. Ex no: 7 Date: PACKAGE IN PL/SQL
30
AIM: To write a PL/SQL program to create a table and to update and delete rows in a table using package. ALGORITHM: Step1:Start the program Step2:Open the SQL plus Step3:Create a table route_detail with the fields route_id Place_id&non stop Step4:Insert the corresponding values in the route_details Table Step5:Insert upto four values Step6:Create a package route_pack Step7:Create a package boby Step8:Update the route_details non_stop=n, where Route_id=id Step9:Then delete the route_details where route_id=rid Step10:End the package boby Step11:close the SQL plus Step12:End the program
PROGRAM:
31
SQL> create table route_detail (route_id number (3), place_id number (4), nonstop char (2), constraints pk primary key (route_id)); Table created. SQL> insert into route_detail values (&route_id,&place_id,'&nonstop'); Enter value for route_id: 101 Enter value for place_id: 55 Enter value for nonstop: n old 1: insert into route_detail values(&route_id,&place_id,'&nonstop') new 1: insert into route_detail values(101,55,'n') 1 row created. SQL> / Enter value for route_id: 102 Enter value for place_id: 77 Enter value for nonstop: s old 1: insert into route_detail values(&route_id,&place_id,'&nonstop') new 1: insert into route_detail values(102,77,'s') 1 row created. SQL> / Enter value for route_id: 103 Enter value for place_id: 88 Enter value for nonstop: n old 1: insert into route_detail values(&route_id,&place_id,'&nonstop') new 1: insert into route_detail values(103,88,'n') 1 row created. SQL> / Enter value for route_id: 104 Enter value for place_id: 33 Enter value for nonstop: n old 1: insert into route_detail values(&route_id,&place_id,'&nonstop') new 1: insert into route_detail values(104,33,'n') 1 row created. SQL> select * from route_detail;
32
ROUTE_ID PLACE_ID NO ----------------- -101 55 n 102 77 s 103 88 n 104 33 n SQL> create or replace package route_pack is 2 procedure route_update(rid route_detail.route_id%type); 3 procedure route_delete(rid route_detail.route_id%type); 4 end route_pack; 5/ Package created. SQL> create or replace package body route_pack is 2 procedure route_update(rid route_detail.route_id % type) is 3 begin 4 update route_detail set nonstop='n' where route_id=rid; 5 dbms_output.put_line('update'); 6 end; 7 procedure route_delete(rid route_detail.route_id % type) is 8 begin 9 delete from route_detail where route_id=rid; 10 dbms_output.put_line('deleted'); 11 end; 12 end route_pack; 13 / Package body created.
OUTPUT:
33
SQL> exec route_pack.route_update(102); PL/SQL procedure successfully completed. SQL> select * from route_detail; ROUTE_ID PLACE_ID NO --------- --------- -101 55 n 102 77 n 103 88 n 104 33 n SQL> exec route_pack.route_delete(104); PL/SQL procedure successfully completed.
34
RESULT: Thus the PL/SQL program to create a table and to update and delete rows in a table using packages was written, executed and its outputs were verified. Ex no: 08 Date: DESIGN OF PAYROLL PROCESSING SYSTEM
35
AIM: To write a PL/SQ L program for design of payroll processing system. ALGORITHM: Step1:Start the program Step2:Open the SQL plus Step3:Create the table for employee details and salary Details Step4:Insert the values into tables Step5:Declare the variable Step6:Print the employee details Step7:Initialize the integer i=1 Step8:If c3.cno=c4.eno, then calculate al&d Step9:Calculate gp1 and np1 Step10:Display employee details for each employee Step11;If c1 is not found then exit out from loop Step12:End all the loop Step13:Close the SQL plus Step14:End the program
PROGRAM:
36
SQL> create table employeedetails(eno1 number(4) constraint ep primary key,ename varchar2(12),dob date,sex varchar2(1) constraint ep1 check(sex='f' or sex='m'),add1 varchar2(10),add2 varchar2(10), Phon number(6)); Table created. SQL> create table salarydetails(eno number(4) constraint ep3 references employeedetails(eno1),cdob date,basicp number(5),hra number(3),da number(3), ta number(3),ma number(3),lic number(4),ded number(4), gp number(8,2),np number(8,2)); Table created. SQL> insert into employeedetails values(111,'RAMA','07-MAY-80','','RAJA NAGER','SALEM',554433); 1 row created. SQL> insert into employeedetails values(222,'RAVI','07-MAY-80','','RAM NAGER','SALEM',554437); 1 row created. SQL> insert into employeedetails values(333,'SELVI','08-MAY80','','G_NAGER','RASIPURAM',554439); 1 row created. SQL> select * from employeedetails; ENO1 ENAME DOB SEX --------- ------------ --------- - ------111 RAMA 07-MAY-80 M 222 RAVI 07-MAY-80 M 333 SELVI 08-MAY-80 F ADD1 ADD2 -----------------RAJA NAGER SALEM RAM NAGER SALEM G_NAGER RASIPURAM PHONE 554433 554437 554439
37
SQL> insert into salarydetails values(111,'01-sep -99',5500,300,150,50,36,78,250,0,0); 1 row created. SQL> insert into salarydetails values(222,'01-feb99',5000,500,300,200,190,110,200,0,0); 1 row created. SQL> insert into salarydetails values(333,'01-sep-99',9000,33,55,22,34,345,434,0,0); 1 row created. SQL> select * from salarydetails; ENO CDOB BASICP HRA DA TA MA LIC DED GP -------- --------- --------- --------- --------- --------- --------- --------- --------- --------NP -------111 01-SEP-99 5500 300 150 50 36 78 250 0 0 222 01-FEB-99 0 0 333 01-SEP-99 0 0 9000 33 55 22 34 345 434 5000 500 300 200 190 110 200
SQL> set serveroutput on; SQL> declare 2 cursor c1 is select * from salarydetails; 3 cursor c2 is select * from employeedetails;
38
4 c3 c1%rowtype; 5 c4 c2%rowtype; 6 gp1 integer; 7 np1 integer; 8 d integer; 9 al integer; 10 i integer :=1; 11 begin 12 dbms_output.put_line(' '||' Employee Details'); 13 dbms_output.put_line(' '||' ******************'); 14 dbms_output.put_line(' '); 15 for c3 in c1 loop 16 for c4 in c2 loop 17 if c3.eno=c4.eno1 then 18 al:=c3.hra+c3.da+c3.ta; 19 d:=c3.lic+c3.ded; 20 exit when c2% notfound; 21 dbms_output.put_line(' '||' Rec.no:'||i); 22 dbms_output.put_line('------'); 23 dbms_output.put_line(' '); 24 gp1:=c3.basicp+c3.hra+c3.da+c3.ta; 25 np1:=gp1-c3.ded-c3.lic; 26 i:=i+1; 27 dbms_output.put_line('Empname :'|| c4.ename); 28 dbms_output.put_line('Empno :'|| c4.eno1); 29 dbms_output.put_line('Basicpay :'|| c3.basicp); 30 dbms_output.put_line('allowances :'|| al); 31 dbms_output.put_line('Deductions :'|| d); 32 dbms_output.put_line('Net_paye :'|| np1); 33 update salarydetails set gp=gp1,np=np1 where c3.eno=eno; 34 dbms_output.put_line('------------------------'); 35 end if; 36 end loop; 37 exit when c1% notfound; 38 end loop; 39 end; 40 / OUTPUT:
39
Employee Details ****************** Rec.no:1 -----Empname :RAMA Empno :111 Basicpay :5500 allowances :500 Deductions :328 Net_paye :5672 -----------------------Rec.no:2 -----Empname :RAVI Empno :222 Basicpay :5000 allowances :1000 Deductions :310 Net_paye :5690 -----------------------Rec.no:3 -----Empname :SELVI Empno :333 Basicpay :9000 allowances :110 Deductions :779 Net_paye :8331 -----------------------PL/SQL procedure successfully completed.
40
ENO CDOB
BASICP
HRA
DA
TA
MA
LIC
DED
GP --------- --------- --------- --------- --------- --------- --------- --------- --------- --------NP --------111 01-SEP-99 5500 300 150 50 36 78 250 6000 5672 222 01-FEB-99 6000 5690 333 01-SEP-99 8331 5000 9000 500 33 300 55 200 22 190 34 110 345 200 434 9110
41
RESULT: Thus the PL/SQ L program for design of payroll processing system was written, executed and its output was verified. EXNO: 9 DATE: LIBRARY INFORMATION SYSTEM
42
AIM: To write a PL/SQL program to design a library information system. ALGORITHM: Step1:Start the program Step2:Open the SQL plus Step3:Create a table for library information that Include book name,author,publisher, Book_copies,library_branch Step4:Insert values into the table Step5:Create a cursor to display all the fields of a particular Second Step6:Close the SQL plus Step7:End the program
43
2 varchar2(10),publishers varchar2(10),book_copies number(10), 3 library_branch varchar2(10)); Table created. SQL> insert into libraryinformation values('vb','herbert','TMG',50,'cse'); 1 row created. SQL> insert into libraryinformation values('c','balaguru','TMG',100,'cse'); 1 row created. SQL> insert into libraryinformation values('c++','krishnan','TMG',10,'cse'); 1 row created. SQL> set serveroutput on; SQL> declare 2 cursor c1 is select * from libraryinformation; 3 c2 c1%rowtype; 4 i integer:=1; 5 begin 6 dbms_output.put_line(''||'libraryinformationsystem'); 7 dbms_output.put_line(''||'****************') 8 dbms_output.put_line(''); 9 for c2 in c1 loop 10 dbms_output.put_line('Record no:'||i); 11 dbms_output.put_line('Book name:'||c2.book_name); 12 dbms_output.put_line('Book author'||c2.book_author); 13 dbms_output.put_line('publisher:'||c2.publishers); 14 dbms_output.put_line('Book copies:'||c2.book_copies); 15 dbms_output.put_line('library branch:'||c2.library_branch); 16 exit when c1%notfound; 17 end loop; 18 end; 19 / OUTPUT:
44
Libraryinformationsystem **************** Record no:1 Book name:vb Book authorherbert publisher:TMG Book copies:50 library branch:cse Record no:1 Book name:c Book authorbalaguru publisher:TMG Book copies:100 library branch:cse Record no:1 Book name:c++ Book authorkrishnan publisher:TMG Book copies:10 library branch:cse PL/SQL procedure successfully completed.
45
RESULT: Thus the PL/SQL program to design a library information system was written, executed and its output was verified. EX: NO: 10 DATE: STUDENTINFORMATIONSYSTEM
46
AIM: To create student information table and write PL/SQL block to find the total, average and result. ALGORITHM: Step1:Start the program Step2:Open the SQL plus Step3:Create a table student that include fields rollno, Name,subject,total,average and result Step4:Insert values inot the table Step5:Declare the variables Step6:Create a cursor to display the name and marks of a particular student Step7:Calculate total and average Step8:If all the marks are greater than or equal to 40 then Result is pass,else fail Step9:Update the table with total,average and result Step10:Display total,average and result Step11:Close the SQL plus Step12:End the program.
2 tamil number(10),eng number(10), 3 mat number(10),total number(10),average number(10),result varchar2(10)); Table created. SQL> insert into studentinformation values(101,'muruga',90,96,93,NULL,NULL,''); 1 row created. SQL> insert into studentinformation values(102,'arun',89,98,97,NULL,NULL,''); 1 row created. SQL> set serveroutput on; SQL> declare 2 tot number(10); 3 averg number(10,2); 4 res varchar2(10); 5 na studentinformation.name%type; 6 a studentinformation.tamil%type; 7 b studentinformation.eng%type; 8 c studentinformation.mat%type; 9 cursor s is select name,tamil,eng,mat from studentinformation; 10 begin 11 open s; 12 loop 13 fetch s into na,a,b,c; 14 exit when s%notfound; 15 tot:=a+b+c; 16 averg:=tot/3; 17 if((a>=40)and(b>=40)and(c>=40))then 18 res:='pass'; 19 else res:='fail'; 20 end if; 21 update studentinformation set total=tot,average=averg,result=res 22 where name=na; 23 dbms_output.put_line('tot'||tot); 24 dbms_output.put_line('average'||averg); 25 dbms_output.put_line('result'||res); 26 end loop;
48
27 close s; 28 end; 29 /
OUTPUT:
49
Tot:279 Average:93 Result:pass Tot:284 Average:94.67 Result:pass PL/SQL procedure successfully completed
50
RESULT: Thus the program to create a student information table and write PL/SQL block to find the total, average and result was written, executed and its output was verified. EX NO: 11 DATE:
51
ELECTRICITY BILL
AIM: To write a PL/SQL program to design an electricity bill system using cursor. ALGORITHM: Step1:Start the program Step2:Open the SQL plus Step3:Create a table bill with fields cno,Cname,units,punits And cunits Step4:Insert values into table Step5:Declare the variables Step6:Cursor ss and w are created Step7:Select cno,punit,cunit for ss and punit,cunit for w Step8:Begin the cursor Step9:If unit<=100,then display tot:=un*.50 Step10:If unit<=200,then display tot:=un*1 Step11:If unit<=300,then display tot:=un*2 Step12:If unit<=400,then display tot:=un*3 Step13:Else,tot:=un*3.update amount=tot Step14:Close the SQL plus Step15:End the program
PROGRAM:
52
SQL> create table ebills(cno number(5),cname varchar(10),units number(6), 2 amount number(10),punit number(6),cunit number(6)); Table created. SQL> insert into ebills values(1,'Liju',4300,null,null,null); 1 row created. SQL> set serveroutput on; SQL> declare 2 tot number(8,2); 3 un number(6); 4 cnoo number(5); 5 cun number(5); 6 na ebills.cname%type; 7 a ebills.cno%type; 8 b ebills.units%type; 9 c ebills.punit%type; 10 d ebills.cunit%type; 11 pu ebills.punit%type; 12 cu ebills.cunit%type; 13 cursor ss is select cno,cname,punit,cunit from ebills; 14 cursor w is select punit,cunit from ebills where cno=cnoo; 15 begin 16 cnoo:=&temp; 17 cun:=&temp; 18 open ss; 19 loop 20 fetch ss into a,na,c,d; 21 exit when ss%NOTFOUND; 22 if(a=cnoo)then 23 update ebills set punit=cunit,cunit=cun where cno=cnoo; 24 open w; 25 fetch w into pu,cu; 26 un:=cu-pu; 27 update ebills set units=un where cno=cnoo; 28 if(un<=100)then 29 tot:=un*.50; 30 else 31 if(un<=200)then
53
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
tot:=un*1; else if(un<=300)then tot:=un*2; else if(un<=400)then tot:=un*3; else tot:=un*4; end if; end if; end if; end if; update ebills set amount=tot where cno=cnoo; dbms_output.put_line('tot'||tot); end if; end loop; close w; close ss; end; /
old 16: cnoo:=&temp; new 16: cnoo:=1; Enter value for temp: 4000 old 17: cun:=&temp; new 17: cun:=4000; tot0 PL/SQL procedure successfully completed. enter value for temp: 1 old 16: cnoo:=&temp; new 16: cnoo:=1; enter value for temp: 5000 old 17: cun:=&temp; new 17: cun:=5000; tot:4000 PL/SQL procedure successfully completed. SQL> select*from ebills; CNO CNAME UNITS AMOUNT PUNIT -------- ---------- --------- --------- --------- --------1 Liju 1000 4000 4000 CUNIT 5000
55
RESULT: Thus the PL/SQL program to design an electricity bill system using cursor was written, executed and its output was verified.
Ex.no:12 Date:
56
AIM: To design a banking system using E-R Model. SYMBOLS USED IN E-R MODEL:
57
58
59