Saturday, March 10, 2012

DBMS LAB Complete Exercises


Exercise II

Employee and department table

SQL> create table employee(empno number(5)primary key,ename varchar(20),job varchar(20),mgr number(5),doj date,salary number(7),deptno number(2),age number(3));

Table created.

SQL> create table department(deptno number(2) primary key,dname varchar(20),location varchar(20));

Table created.

SQL> alter table employee add constraint fk foreign key(deptno) references department(deptno);

Table altered.

SQL>

SQL> desc employee;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------
 EMPNO                                     NOT NULL NUMBER(5)
 ENAME                                              VARCHAR2(20)
 JOB                                                VARCHAR2(20)
 MGR                                                NUMBER(5)
 DOJ                                                DATE
 SALARY                                             NUMBER(7)
 DEPTNO                                             NUMBER(2)
 AGE                                                NUMBER(3)

SQL> desc department;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------
 DEPTNO                                    NOT NULL NUMBER(2)
 DNAME                                              VARCHAR2(20)
 LOCATION                                           VARCHAR2(20)

SQL>
SQL> insert into department values(&deptno,'&dname','&location');
Enter value for deptno: 1
Enter value for dname: account
Enter value for location: madurai
old   1: insert into department values(&deptno,'&dname','&location')
new   1: insert into department values(1,'account','madurai')

1 row created.

SQL> /
Enter value for deptno: 2
Enter value for dname: sales
Enter value for location: madurai
old   1: insert into department values(&deptno,'&dname','&location')
new   1: insert into department values(2,'sales','madurai')

1 row created.

SQL> /
Enter value for deptno: 3
Enter value for dname: production
Enter value for location: sivakasi
old   1: insert into department values(&deptno,'&dname','&location')
new   1: insert into department values(3,'production','sivakasi')

1 row created.
SQL> select * from department;

    DEPTNO DNAME                LOCATION
---------- -------------------- --------------------
         1 account              madurai
         2 sales                madurai
         3 production           sivakasi

SQL>
SQL> insert into employee values(&empno,'&ename','&job',&mgr,'&doj',&salary,&deptno,&age);
Enter value for empno: 101
Enter value for ename: siva
Enter value for job: manager
Enter value for mgr: 0
Enter value for doj: 01-mar-2005
Enter value for salary: 24000
Enter value for deptno: 1
Enter value for age: 23
old   1: insert into employee values(&empno,'&ename','&job',&mgr,'&doj',&salary,&deptno,&age)
new   1: insert into employee values(101,'siva','manager',0,'01-mar-2005',24000,1,23)

1 row created.

SQL> /
Enter value for empno: 102
Enter value for ename: mani
Enter value for job: clerk
Enter value for mgr: 101
Enter value for doj: 01-sep-2005
Enter value for salary: 10000
Enter value for deptno: 1
Enter value for age: 34
old   1: insert into employee values(&empno,'&ename','&job',&mgr,'&doj',&salary,&deptno,&age)
new   1: insert into employee values(102,'mani','clerk',101,'01-sep-2005',10000,1,34)

1 row created.

SQL> /
Enter value for empno: 103
Enter value for ename: sarpa
Enter value for job: manager
Enter value for mgr: 0
Enter value for doj: 23-mar-2006
Enter value for salary: 250000
Enter value for deptno: 3
Enter value for age: 24
old   1: insert into employee values(&empno,'&ename','&job',&mgr,'&doj',&salary,&deptno,&age)
new   1: insert into employee values(103,'sarpa','manager',0,'23-mar-2006',250000,3,24)

1 row created.

SQL> /
Enter value for empno: 104
Enter value for ename: rajan
Enter value for job: supervisor
Enter value for mgr: 103
Enter value for doj: 10-oct-2007
Enter value for salary: 14000
Enter value for deptno: 3
Enter value for age: 30
old   1: insert into employee values(&empno,'&ename','&job',&mgr,'&doj',&salary,&deptno,&age)
new   1: insert into employee values(104,'rajan','supervisor',103,'10-oct-2007',14000,3,30)

1 row created.

SQL> /
Enter value for empno: 105
Enter value for ename: viji
Enter value for job: manager
Enter value for mgr: 0
Enter value for doj: 04-jun-2000
Enter value for salary: 20000
Enter value for deptno: 2
Enter value for age: 25
old   1: insert into employee values(&empno,'&ename','&job',&mgr,'&doj',&salary,&deptno,&age)
new   1: insert into employee values(105,'viji','manager',0,'04-jun-2000',20000,2,25)

1 row created.

SQL> /
Enter value for empno: 106
Enter value for ename: ramya
Enter value for job: salesrep
Enter value for mgr: 105
Enter value for doj: 01-jul-2001
Enter value for salary: 14000
Enter value for deptno: 2
Enter value for age: 27
old   1: insert into employee values(&empno,'&ename','&job',&mgr,'&doj',&salary,&deptno,&age)
new   1: insert into employee values(106,'ramya','salesrep',105,'01-jul-2001',14000,2,27)

1 row created.

SQL>

SQL> select * from employee;

     EMPNO ENAME                JOB                         MGR DOJ
---------- -------------------- -------------------- ---------- ---------
    SALARY     DEPTNO        AGE
---------- ---------- ----------
       101 siva                 manager                       0 01-MAR-05
     24000          1         23

       102 mani                 clerk                       101 01-SEP-05
     10000          1         34

       103 sarpa                manager                       0 23-MAR-06
    250000          3         24


     EMPNO ENAME                JOB                         MGR DOJ
---------- -------------------- -------------------- ---------- ---------
    SALARY     DEPTNO        AGE
---------- ---------- ----------
       104 rajan                supervisor                  103 10-OCT-07
     14000          3         30

       105 viji                 manager                       0 04-JUN-00
     20000          2         25

       106 ramya                salesrep                    105 01-JUL-01
     14000          2         27


     EMPNO ENAME                JOB                         MGR DOJ
---------- -------------------- -------------------- ---------- ---------
    SALARY     DEPTNO        AGE
---------- ---------- ----------
       107 kalai                worker                      103 02-APR-03
      1600          2         26


7 rows selected.

SQL>SQL> select ename from employee where salary between 1500 and 3500;

ENAME
--------------------
kalai

SQL> select ename from employee where mgr in(101,103);

ENAME
--------------------
mani
rajan
kalai

SQL>
SQL> select ename from employee where ename like 'k%' or ename like 'r%';

ENAME
--------------------
rajan
ramya
kalai

SQL> select distinct job from employee;

JOB
--------------------
clerk
manager
salesrep
supervisor
worker

SQL> select ename,salary,salary+0.15*salary from employee;

ENAME                    SALARY SALARY+0.15*SALARY
-------------------- ---------- ------------------
siva                      24000              27600
mani                      10000              11500
sarpa                    250000             287500
rajan                     14000              16100
viji                      20000              23000
ramya                     14000              16100
kalai                      1600               1840

7 rows selected.

SQL> select count(distinct job) from employee;

COUNT(DISTINCTJOB)
------------------
                 5

SQL>SQL> select max(salary)-min(salary) from employee;

MAX(SALARY)-MIN(SALARY)
-----------------------
                 248400

SQL>SQL> select ename,salary from employee where job like 'm%' and salary>(select min(salary) from employee);

ENAME                    SALARY
-------------------- ----------
siva                      24000
sarpa                    250000
viji                      20000

SQL> select dname,count(ename) from employee,department where employee.deptno=department.deptno group by dname;

DNAME                COUNT(ENAME)
-------------------- ------------
account                         2
production                      2
sales                           3

SQL> select ename from employee where job='manager' and extract(year from doj)>2000;

ENAME
--------------------
siva
sarpa

SQL> select ename from employee where job='manager' and age>35 and salary>100000;

ENAME
--------------------
Sarpa











Exercise II

Employee, department, project, workson and dependent

SQL> create table deptmt(depno number(3) primary key,dname varchar(20),mssn number(4),deptloc varchar(20));

Table created.

SQL> create table emp(essn number(4) primary key,sname varchar(20),mname varchar(10),lname varchar(20),dob date,address varchar(25),gender varchar(1),salary number(5),depno number(3) references deptmt (depno));

Table created.

SQL> create table project(prono number(3) primary key,proname varchar(20),proloc varchar(20),depno number(3) references deptmt(depno));

Table created.

SQL> create table workson(essn number(4) references emp(essn),prono number(5) references project,hoursperweek number(2));

Table created.

SQL> create table dependent(essn number(4) references emp(essn),depname varchar(20),gender varchar(1),dob date,relationship varchar(20));

Table created.
SQL> insert into deptmt values(&depno,'&dname',&mssn,'&deptloc');
Enter value for depno: 1
Enter value for dname: research
Enter value for mssn: 1001
Enter value for deptloc: madurai
old   1: insert into deptmt values(&depno,'&dname',&mssn,'&deptloc')
new   1: insert into deptmt values(1,'research',1001,'madurai')

1 row created.

SQL> /
Enter value for depno: 2
Enter value for dname: sales
Enter value for mssn: 2001
Enter value for deptloc: sivakasi
old   1: insert into deptmt values(&depno,'&dname',&mssn,'&deptloc')
new   1: insert into deptmt values(2,'sales',2001,'sivakasi')

1 row created.

SQL> /
Enter value for depno: 3
Enter value for dname: accounts
Enter value for mssn: 3001
Enter value for deptloc: theni
old   1: insert into deptmt values(&depno,'&dname',&mssn,'&deptloc')
new   1: insert into deptmt values(3,'accounts',3001,'theni')

1 row created.

SQL> insert into emp values(&essn,'&sname','&mname','&lname','&dob','&address','&gender',&salary,&de
pno);
Enter value for essn: 1001
Enter value for sname: john
Enter value for mname: b
Enter value for lname: smith
Enter value for dob: 10-jan-1990
Enter value for address: madurai
Enter value for gender: m
Enter value for salary: 20000
Enter value for depno: 1
old   1: insert into emp values(&essn,'&sname','&mname','&lname','&dob','&address','&gender',&salary
new   1: insert into emp values(1001,'john','b','smith','10-jan-1990','madurai','m',20000,1)

1 row created.

SQL> /
Enter value for essn: 2001
Enter value for sname: sam
Enter value for mname: b
Enter value for lname: raj
Enter value for dob: 18-aug-1981
Enter value for address: sivakasi
Enter value for gender: m
Enter value for salary: 30000
Enter value for depno: 2
old   1: insert into emp values(&essn,'&sname','&mname','&lname','&dob','&address','&gender',&salary
new   1: insert into emp values(2001,'sam','b','raj','18-aug-1981','sivakasi','m',30000,2)

1 row created.

SQL> /
Enter value for essn: 3001
Enter value for sname: siva
Enter value for mname: e
Enter value for lname: raja
Enter value for dob: 10-dec-1992
Enter value for address: theni
Enter value for gender: m
Enter value for salary: 15000
Enter value for depno: 3
old   1: insert into emp values(&essn,'&sname','&mname','&lname','&dob','&address','&gender',&salary
new   1: insert into emp values(3001,'siva','e','raja','10-dec-1992','theni','m',15000,3)

1 row created.
SQL> insert into project values(&prono,'&proname','&proloc',&depno);
Enter value for prono: 101
Enter value for proname: securityservice
Enter value for proloc: madurai
Enter value for depno: 1
old   1: insert into project values(&prono,'&proname','&proloc',&depno)
new   1: insert into project values(101,'securityservice','madurai',1)

1 row created.

SQL> /
Enter value for prono: 102
Enter value for proname: renewablesource
Enter value for proloc: sivakasi
Enter value for depno: 1
old   1: insert into project values(&prono,'&proname','&proloc',&depno)
new   1: insert into project values(102,'renewablesource','sivakasi',1)

1 row created.

SQL> /
Enter value for prono: 103
Enter value for proname: payrollprocessing
Enter value for proloc: theni
Enter value for depno: 3
old   1: insert into project values(&prono,'&proname','&proloc',&depno)
new   1: insert into project values(103,'payrollprocessing','theni',3)

1 row created.

SQL> insert into workson values(&essn,&prono,&hoursperweek);
Enter value for essn: 1001
Enter value for prono: 101
Enter value for hoursperweek: 5
old   1: insert into workson values(&essn,&prono,&hoursperweek)
new   1: insert into workson values(1001,101,5)

1 row created.

SQL> /
Enter value for essn: 1001
Enter value for prono: 102
Enter value for hoursperweek: 8
old   1: insert into workson values(&essn,&prono,&hoursperweek)
new   1: insert into workson values(1001,102,8)

1 row created.

SQL> /
Enter value for essn: 3001
Enter value for prono: 103
Enter value for hoursperweek: 7
old   1: insert into workson values(&essn,&prono,&hoursperweek)
new   1: insert into workson values(3001,103,7)

1 row created.

SQL> insert into dependent values(&essn,'&depname','&gender','&dob','&relationship');
Enter value for essn: 1001
Enter value for depname: kalai
Enter value for gender: f
Enter value for dob: 29-jan-1984
Enter value for relationship: daughter
old   1: insert into dependent values(&essn,'&depname','&gender','&dob','&relationship')
new   1: insert into dependent values(1001,'kalai','f','29-jan-1984','daughter')

1 row created.

SQL> /
Enter value for essn: 2001
Enter value for depname: prakash
Enter value for gender: m
Enter value for dob: 02-mar-1990
Enter value for relationship: son
old   1: insert into dependent values(&essn,'&depname','&gender','&dob','&relationship')
new   1: insert into dependent values(2001,'prakash','m','02-mar-1990','son')

1 row created.

SQL> /
Enter value for essn: 3001
Enter value for depname: fathima
Enter value for gender: f
Enter value for dob: 03-june-1976
Enter value for relationship: wife
old   1: insert into dependent values(&essn,'&depname','&gender','&dob','&relationship')
new   1: insert into dependent values(3001,'fathima','f','03-june-1976','wife')

1 row created.

SQL> desc deptmt;
 Name                                      Null?    Type
 ----------------------------------------- -------- --------------------
 DEPNO                                     NOT NULL NUMBER(3)
 DNAME                                              VARCHAR2(20)
 MSSN                                               NUMBER(4)
 DEPTLOC                                            VARCHAR2(20)

SQL> desc emp;
 Name                                      Null?    Type
 ----------------------------------------- -------- --------------------
 ESSN                                      NOT NULL NUMBER(4)
 SNAME                                              VARCHAR2(20)
 MNAME                                              VARCHAR2(10)
 LNAME                                              VARCHAR2(20)
 DOB                                                DATE
 ADDRESS                                            VARCHAR2(25)
 GENDER                                             VARCHAR2(1)
 SALARY                                             NUMBER(5)
 DEPNO                                              NUMBER(3)

SQL> desc project;
 Name                                      Null?    Type
 ----------------------------------------- -------- --------------------
 PRONO                                     NOT NULL NUMBER(3)
 PRONAME                                            VARCHAR2(20)
 PROLOC                                             VARCHAR2(20)
 DEPNO                                              NUMBER(3)

SQL> desc workson;
 Name                                      Null?    Type
 ----------------------------------------- -------- --------------------
 ESSN                                               NUMBER(4)
 PRONO                                              NUMBER(5)
 HOURSPERWEEK                                       NUMBER(2)

SQL> desc dependent;
 Name                                      Null?    Type
 ----------------------------------------- -------- --------------------
 ESSN                                               NUMBER(4)
 DEPNAME                                            VARCHAR2(20)
 GENDER                                             VARCHAR2(1)
 DOB                                                DATE
 RELATIONSHIP                                       VARCHAR2(20)

SQL> select * from emp;

      ESSN SNAME                MNAME      LNAME                DOB
---------- -------------------- ---------- -------------------- ---------
ADDRESS                   G     SALARY      DEPNO
------------------------- - ---------- ----------
      1001 john                 b          smith                10-JAN-50
madurai                   m      20000          1

      2001 sam                  b          raj                  18-AUG-81
sivakasi                  m      30000          2

      3001 siva                 e          raja                 10-DEC-92
new houston               m      15000          3


SQL> select * from deptmt;

     DEPNO DNAME                      MSSN DEPTLOC
---------- -------------------- ---------- --------------------
         1 research                   1001 madurai
         2 sales                      2001 sivakasi
         3 accounts                   3001 theni

SQL> select * from project;

     PRONO PRONAME              PROLOC                    DEPNO
---------- -------------------- -------------------- ----------
       101 securityservice      madurai                       1
       102 productx             stafford                      1
       103 payrollprocessing    theni                         3

SQL> select * from workson;

      ESSN      PRONO HOURSPERWEEK
---------- ---------- ------------
      1001        101            5
      1001        102            8
      3001        103            7

SQL> select * from dependent;

      ESSN DEPNAME              G DOB       RELATIONSHIP
---------- -------------------- - --------- --------------------
      1001 kalai                f 29-JAN-84 daughter
      2001 sam                  m 02-MAR-90 son
      3001 fathima              f 03-JUN-76 wife

1. Retrieve the birthdate and address of the employee(s) whose name is ‘John B. Smith’
SQL> select dob,address from emp where sname='john' and mname='b' and lname='smith';

DOB       ADDRESS
--------- -------------------------
10-JAN-90 madurai

2. Retrieve the name and address of all employees who work for the ‘Research’ department

SQL> select sname,lname,address from emp,deptmt where dname='research' and emp.depno=deptmt.depno;

SNAME                LNAME                ADDRESS
-------------------- -------------------- -------------------------
john                 smith                madurai

3. For every project located in ‘Stafford’, list the project number, the controlling department number, and the department manager’s last name, address, and birthdate.

SQL> select p.prono,d.depno,e.lname,e.address,e.dob from emp e,project p,deptmt d where p.proloc='stafford' and e.depno=d.depno and e.depno=p.depno and d.mssn=e.essn;

     PRONO      DEPNO LNAME                ADDRESS                   DOB
---------- ---------- -------------------- ------------------------- ---------
       102          1 smith                madurai                   10-JAN-90
4.Retrieve all employees whose address is in Houston
SQL> select sname,lname from emp where address like '%houston';

SNAME                LNAME
-------------------- --------------------
siva                 raja

5. Show the resulting salaries if every employee working on the ‘ProductX’ project is given a 10 percent raise.

SQL> select sname,lname,1.1*salary from emp e,workson w,project p where e.essn=w.essn and p.prono=w.prono and p.proname='productx';

SNAME                LNAME                1.1*SALARY
-------------------- -------------------- ----------
john                 smith                     22000

6. Retrieve all employees in department 5 whose salary is between $30,000 and $40,000.
SQL> select * from emp where salary between 30000 and 40000 and depno=5;

      ESSN SNAME                MNAME      LNAME                DOB
---------- -------------------- ---------- -------------------- ---------
ADDRESS                   G     SALARY      DEPNO
------------------------- - ---------- ----------
      3001 siva                 e          raja                 10-DEC-92
new houston               m      15000          3

7. Retrieve a list of employees and the projects they are working on, ordered by department and, within each department, ordered alphabetically by last name, first name.
SQL>  select d.dname,e.lname,e.sname,p.proname from deptmt d,emp e,workson w,project p where e.depno=d.depno and e.essn=w.essn and p.prono=w.prono order by d.dname,e.lname,e.sname;

DNAME                LNAME                SNAME
-------------------- -------------------- --------------------
PRONAME
--------------------
accounts             raja                 siva
payrollprocessing

research             smith                john
securityservice

research             smith                john
productx
8. Retrieve the name of each employee who has a dependent with the same first name and same sex as the employee
SQL> select e.sname,e.lname from emp e where e.essn in(select essn from dependent where e.sname=depname and e.gender=gender);

SNAME                LNAME
-------------------- --------------------
sam                  raj

9. Find the sum of the salaries of all employees of the ‘Research’ department, as well as the maximum salary, the minimum salary, and the average salary in this department.
SQL> select sum(salary),max(salary),min(salary),avg(salary) from emp,deptmt where deptmt.depno=emp.depno and deptmt.dname='research';

SUM(SALARY) MAX(SALARY) MIN(SALARY) AVG(SALARY)
----------- ----------- ----------- -----------
      20000       20000       20000       20000

10. Count the number of distinct salary values in the database
SQL> select count(distinct salary) from emp;

COUNT(DISTINCTSALARY)
---------------------
                    3

11. Retrieve the total number of employees in the company and the number of employees in the ‘Research’ department.
SQL> select count(*) from emp,deptmt where deptmt.depno=emp.depno and deptmt.dname='research';

  COUNT(*)
----------
         1

12. Find all employees who were born during the 1950s
SQL> select sname,lname from emp where extract(year from dob)=1950;

SNAME                LNAME
-------------------- --------------------
john                 smith




















Exercise IV   ( Triggers)
Create the following table
1.      Books(ISBN,Title,Author,Price,Pub_year)
2.      Stock(ISBN,Stock_quantity,reorderlevel,reorderquantity)
3.      Customers(Custid,custname,address)
4.      Orders(orderno,custid,orderdate)
5.      Orderlist(orderno,ISBN,quantity,totalprice,shipdate)
SQL> create table books(isbn number(5) primary key,title varchar(25),author varchar(20),price number (5,2),pubyear number(4));
Table created.
SQL> create table stock(isbn number(5) references books(isbn));
Table created.
SQL> alter table stock add(stockquantity number(4),reorderlevel number(3),reorderquantity number(4));
Table altered.
SQL> create table customers(custid number(5) primary key,cname varchar(25),address varchar(25));
Table created.
SQL> create table orders(orderno number(4) primary key,custid number(5) references customers(custid) ,orderdate date);
Table created.
SQL> create table orderlist(orderno number(4) references orders(orderno),isbn number(5) primary key, quantity number(5),totalprice number(5,2),shipdate date);
Table created.
SQL> insert into books values(&isbn,'&title','&author',&price,&pubyear);
Enter value for isbn: 10001
Enter value for title: dbms
Enter value for author: date
Enter value for price: 500
Enter value for pubyear: 2005
old   1: insert into books values(&isbn,'&title','&author',&price,&pubyear)
new   1: insert into books values(10001,'dbms','date',500,2005)

1 row created.

SQL> /
Enter value for isbn: 10002
Enter value for title: data structure
Enter value for author: weiss
Enter value for price: 700
Enter value for pubyear: 2002
old   1: insert into books values(&isbn,'&title','&author',&price,&pubyear)
new   1: insert into books values(10002,'data structure','weiss',700,2002)

1 row created.

SQL> /
Enter value for isbn: 10003
Enter value for title: cryptography
Enter value for author: stallings
Enter value for price: 400
Enter value for pubyear: 2006
old   1: insert into books values(&isbn,'&title','&author',&price,&pubyear)
new   1: insert into books values(10003,'cryptography','stallings',400,2006)

1 row created.

SQL> select * from books;

      ISBN TITLE                     AUTHOR                    PRICE    PUBYEAR
---------- ------------------------- -------------------- ---------- ----------
     10001 dbms                      date                        500       2005
     10002 data structure            weiss                       700       2002
     10003 cryptography              stallings                   400       2006

SQL>
SQL> insert into stock values(&isbn,&stockquantity,&reorderlevel,&reorderquantity);
Enter value for isbn: 10001
Enter value for stockquantity: 10
Enter value for reorderlevel: 3
Enter value for reorderquantity: 5
old   1: insert into stock values(&isbn,&stockquantity,&reorderlevel,&reorderquantity)
new   1: insert into stock values(10001,10,3,5)

1 row created.

SQL> /
Enter value for isbn: 10002
Enter value for stockquantity: 20
Enter value for reorderlevel: 10
Enter value for reorderquantity: 10
old   1: insert into stock values(&isbn,&stockquantity,&reorderlevel,&reorderquantity)
new   1: insert into stock values(10002,20,10,10)

1 row created.

SQL> /
Enter value for isbn: 10003
Enter value for stockquantity: 15
Enter value for reorderlevel: 7
Enter value for reorderquantity: 8
old   1: insert into stock values(&isbn,&stockquantity,&reorderlevel,&reorderquantity)
new   1: insert into stock values(10003,15,7,8)

1 row created.

SQL> select * from stock;

      ISBN STOCKQUANTITY REORDERLEVEL REORDERQUANTITY
---------- ------------- ------------ ---------------
     10001            10            3               5
     10002            20           10              10
     10003            15            7               8

SQL> 
SQL>  insert into customers values(&custid,'&cname','&address');
Enter value for custid: 1
Enter value for cname: siva
Enter value for address: madurai
old   1:  insert into customers values(&custid,'&cname','&address')
new   1:  insert into customers values(1,'siva','madurai')

1 row created.

SQL> /
Enter value for custid: 2
Enter value for cname: raja
Enter value for address: theni
old   1:  insert into customers values(&custid,'&cname','&address')
new   1:  insert into customers values(2,'raja','theni')

1 row created.

SQL> /
Enter value for custid: 3
Enter value for cname: kalai
Enter value for address: salem
old   1:  insert into customers values(&custid,'&cname','&address')
new   1:  insert into customers values(3,'kalai','salem')

1 row created.

SQL> select * from customers;

    CUSTID CNAME                     ADDRESS
---------- ------------------------- -------------------------
         1 siva                      madurai
         2 raja                      theni
         3 kalai                     salem

SQL>
SQL> insert into orders values(&orderno,&custid,'&orderdate');
Enter value for orderno: 101
Enter value for custid: 1
Enter value for orderdate: 01-jan-2010
old   1: insert into orders values(&orderno,&custid,'&orderdate')
new   1: insert into orders values(101,1,'01-jan-2010')

1 row created.

SQL> /
Enter value for orderno: 102
Enter value for custid: 1
Enter value for orderdate: 05-jun-2010
old   1: insert into orders values(&orderno,&custid,'&orderdate')
new   1: insert into orders values(102,1,'05-jun-2010')

1 row created.

SQL> /
Enter value for orderno: 103
Enter value for custid: 3
Enter value for orderdate: 18-aug-2010
old   1: insert into orders values(&orderno,&custid,'&orderdate')
new   1: insert into orders values(103,3,'18-aug-2010')

1 row created.

SQL> select * from orders;

   ORDERNO     CUSTID ORDERDATE
---------- ---------- ---------
       101          1 01-JAN-10
       102          1 05-JUN-10
       103          3 18-AUG-10

SQL>
a.       Fire a trigger before insert whenever the ordered quantity is less than the available stock quantity or the shipdate is less than the orderdate then display the message “The ordered quantity is not available” or “shipping date should be greater than order date” respectively.
SQL> set serveroutput on;
SQL> create or replace trigger trigger1
  2  before insert on orderlist for each row
  3  declare
  4  qn number(5);
  5  dat date;
  6  begin
  7  select stockquantity into qn from stock where isbn=:new.isbn;
  8  select orderdate into dat from orders where orderno=:new.orderno;
  9  if :new.quantity>qn then
 10  dbms_output.put_line('ordered quantity is not available');
 11  end if;
 12  if months_between(:new.shipdate,dat)<0 then
 13  dbms_output.put_line('ordered date is greater than shipment date');
 14  end if;
 15  end;
 16  /
Trigger created.

SQL> insert into orderlist values(&orderno,&quantity,&totalprice,'&shipdate',&isbn);
Enter value for orderno: 102
Enter value for quantity: 15
Enter value for totalprice: 1000
Enter value for shipdate: 01-mar-2010
Enter value for isbn: 10001
old   1: insert into orderlist values(&orderno,&quantity,&totalprice,'&shipdate',&isbn)
new   1: insert into orderlist values(102,15,1000,'01-mar-2010',10001)

1 row created.
b.      Fire a trigger after update of price, when the new price is greater than the old price, update the total price of the corresponding isbn number.
SQL>  Create or replace trigger trigger3
  2   After update on books for each row
  3   When(new.price>old.price)
  4   Begin
  5   Update orderlist set totalprice=:new.price*quantity where isbn=:new.isbn;
  6   End;
  7 
  8  /

Trigger created.

SQL> update books set price=600 where isbn=10001;

1 row updated.

SQL> select * from orderlist;

   ORDERNO   QUANTITY TOTALPRICE SHIPDATE        ISBN
---------- ---------- ---------- --------- ----------
       101          3       1800 01-MAR-10      10001
       102         15       9000 01-MAR-10      10001
       101          2       1200 01-JAN-09      10001

c.       Fire a trigger after delete of an order from the orders table, which would delete the corresponding order from the orderlist table.
SQL> Create or replace trigger trigger4
  2  After delete on orders for each row
  3  Begin
  4  Delete from orderlist where orderno=:old.orderno;
  5  End;
  6  /

Trigger created.
SQL> select * from orders;

   ORDERNO     CUSTID ORDERDATE
---------- ---------- ---------
       101          1 01-JAN-10
       102          1 05-JUN-10
       103          3 18-AUG-10

SQL> delete from orders where orderno=102;

1 row deleted.

SQL> select * from orderlist;

   ORDERNO   QUANTITY TOTALPRICE SHIPDATE        ISBN
---------- ---------- ---------- --------- ----------
       101          3       1800 01-MAR-10      10001
       101          2       1200 01-JAN-09      10001
















Exercise V
Nested SubQueries
Aim:    To perform nested sub queries in book database.
1. Find the books whose price is between 300 and 400
SQL> select * from books where price between 300 and 400;
      ISBN TITLE                     AUTHOR                    PRICE    PUBYEAR
---------- ------------------------- -------------------- ---------- ----------
     10003 cryptography              stallings                   400       2006
2. Find the title, author name, stock quantity and price and pub year of the books which are ordered.
SQL> select * from books b where exists(select * from orderlist o where b.isbn=o.isbn);
      ISBN TITLE                     AUTHOR                    PRICE    PUBYEAR
---------- ------------------------- -------------------- ---------- ----------
     10001 dbms                      date                        600       2005
3. Find the sum of the price of the books published in the year.
SQL> select sum(price) from books group by pubyear;
SUM(PRICE)
----------
       700
       600
       400
4. Find the sum of the price of the books published in the year and having price >500
SQL> select sum(price),pubyear from books group by pubyear having sum(price)>500;
SUM(PRICE)    PUBYEAR
---------- ----------
       700       2002
       600       2005
5. Find the isbn of the books which may or may not ordered using union operation
SQL> (select isbn from books)union(select isbn from orderlist);
      ISBN
----------
     10001
     10002
     10003
6. Find the isbn of the books which are ordered using intersect operations
SQL> (select isbn from books)intersect(select isbn from orderlist);
      ISBN
----------
     10001
7. Find the customer name,orderdate,orderno using natural join.
SQL> select c.cname,c.address,o.orderdate,o.orderno from customers c,orders o where c.custid=o.custid;
CNAME                     ADDRESS                   ORDERDATE    ORDERNO
------------------------- ------------------------- --------- ----------
siva                      madurai                   01-JAN-10        101
kalai                     salem                     18-AUG-10        103
8. Retrieve customername,orderno using left outer join.
SQL> select c.cname,o.orderno from customers c,orders o where c.custid=o.custid(+);
CNAME                        ORDERNO
------------------------- ----------
siva                             101
raja
kalai                            103
9. Retrieve orderno,customername using right outer join
SQL> select c.cname,o.orderno from customers c,orders o where c.custid(+)=o.custid;
CNAME                        ORDERNO
------------------------- ----------
siva                             101
kalai                            103

Result: Thus the nested sub queries were performed in the books database.

Exercise VI
PL/SQL Procedure and Function

Aim: To write a PL/SQL procedure and functions for various operations
a)      WRITE A PL/SQL PROGRAM TO FIND THE  SUM OF DIGITS IN A GIVEN NUMBER
SQL> ed armstrong.sql
declare
a number;
t number;
arm number;
d number;
begin
a:=&a;
t:=a;
arm:=0;
while t>0
loop
d:=mod(t,10);
arm:=arm+power(d,3);
t:=trunc(t/10);
end loop;
if arm=a then
dbms_output.put_line('given no is an armstrong no'|| a);
else
dbms_output.put_line('given no is not an armstrong no');
end if;
end;
/

SQL> @ armstrong.sql
Input truncated to 1 characters
Enter value for a: 2342
old   7: a:=&a;
new   7: a:=2342;
given no is not an armstrong no

PL/SQL procedure successfully completed.
SQL> /
Enter value for a: 153
old   7: a:=&a;
new   7: a:=153;
given no is an armstrong no153

PL/SQL procedure successfully completed.

b) WRITE A PL/SQL PROGRAM TO DISPLAY THE NUMBER IN REVERSE ORDER

SQL> ed reverse.sql
declare
a number;
rev number;
d number;
begin
a:=&a;
rev:=0;
while a>0
loop
d:=mod(a,10);
rev:=(rev*10)+d;
a:=trunc(a/10);
end loop;
dbms_output.put_line('no is'|| rev);
end;
/
SQL> @ reverse.sql
Input truncated to 1 characters
Enter value for a: 34566
old   6: a:=&a;
new   6: a:=34566;
no is66543

PL/SQL procedure successfully completed.

SQL>
c) WRITE A PL/SQL PROGRAM TO CHECK WHETHER THE GIVEN NUMBER IS PRIME OR NOT
SQL> ed prime.sql
declare
a number;
c number:=0;
i number;
begin
a:=&a;
for i in 1..a
loop
if mod(a,i)=0 then
c:=c+1;
end if;
end loop;
if c=2 then
dbms_output.put_line(a ||'is a prime number');
else
dbms_output.put_line(a ||'is not a prime number');
end if;
end;
/
SQL> @ prime.sql
Input truncated to 1 characters
Enter value for a: 11
old   6: a:=&a;
new   6: a:=11;
11is a prime number

PL/SQL procedure successfully completed.

SQL>
d) WRITE A PL/SQL PROGRAM TO FIND THE FACTORIAL OF A GIVEN NUMBER
SQL> ed factorial.sql
declare
n number;
f number:=1;
begin
n:=&n;
for i in 1..n
loop
f:=f*i;
end loop;
dbms_output.put_line('the factorial is'|| f);
end;
/
SQL> @ factorial.sql
Input truncated to 1 characters
Enter value for n: 5
old   5: n:=&n;
new   5: n:=5;
the factorial is120

PL/SQL procedure successfully completed.

SQL>
e) WRITE A PL/SQL PROGRAM TO GENERATE FIBONACCI SERIES
SQL> ed fibo.sql
declare
a number;
b number;
c number;
n number;
i number;
begin
n:=&n;
a:=0;
b:=1;
dbms_output.put_line(a);
dbms_output.put_line(b);
for i in 1..n-2
loop
c:=a+b;
dbms_output.put_line(c);
a:=b;
b:=c;
end loop;
end;
/
SQL> @ fibo.sql
Input truncated to 1 characters
Enter value for n: 5
old   8: n:=&n;
new   8: n:=5;
0
1
1
2
3

PL/SQL procedure successfully completed.

SQL>
f) WRITE A FUNCTION TO FIND FACTORIAL OF A NUMBER
SQL> ed func.sql
create or replace function fact(n number)return number
as

fac number:=1;
begin
for i in 1..n
loop
fac:=fac*i;
end loop;
return fac;
end;
/
SQL> @ func.sql
Input truncated to 1 characters

Function created.

SQL> select fact(7) from dual;

   FACT(7)
----------
      5040

SQL>
Result: Thus the PL/SQL procedure and function was created and the results were verified.

Exercise VII
PL/SQL Cursor

Aim : To create PL/SQL cursor for payroll processing of an employee.

SQL> create table empl(empno number(5),ename varchar(20),dob date,basicpay number(5),da number(5),allowance number(5),tax number(5),lic number(5),grosspay number(5));

Table created.

SQL> insert into empl values(&empno,'&ename','&dob',&basicpay,&da,&allowance, &tax,&lic,&grosspay);
Enter value for empno: 101
Enter value for ename: siva
Enter value for dob: 01-aug-2000
Enter value for basicpay: 10000
Enter value for da: 4000
Enter value for allowance: 2000
Enter value for tax: 1000
Enter value for lic: 1200
Enter value for grosspay: 0
old   1: insert into empl values(&empno,'&ename','&dob',&basicpay,&da,&allowance,&tax,&lic,&grosspay
new   1: insert into empl values(101,'siva','01-aug-2000',10000,4000,2000,1000,1200,0)

1 row created.

SQL> /
Enter value for empno: 102
Enter value for ename: raja
Enter value for dob: 11-mar-2001
Enter value for basicpay: 20000
Enter value for da: 7000
Enter value for allowance: 3000
Enter value for tax: 2000
Enter value for lic: 2600
Enter value for grosspay: 0
old   1: insert into empl values(&empno,'&ename','&dob',&basicpay,&da,&allowance, &tax,&lic,&grosspay
new   1: insert into empl values(102,'raja','11-mar-2001',20000,7000,3000,2000,2600,0)

1 row created.

SQL> select * from empl;

     EMPNO ENAME                DOB         BASICPAY         DA  ALLOWANCE
---------- -------------------- --------- ---------- ---------- ----------
       TAX        LIC   GROSSPAY
---------- ---------- ----------
       101 siva                 01-AUG-00      10000       4000       2000
      1000       1200          0

       102 raja                 11-MAR-01      20000       7000       3000
      2000       2600          0

SQL> declare
  2  cursor c is select * from empl order by grosspay desc;
  3  rec empl % rowtype;
  4  cnt integer:=0;
  5  begin
  6  open c;
  7  loop
  8  fetch c into rec;
  9  exit when c% notfound;
 10  if(cnt<5) then
 11  update empl set grosspay=(rec.basicpay+rec.da+rec.allowance)-(rec.lic+rec.tax) where empno=empno;
 12  dbms_output.put_line('Employee no:'||rec.empno);
 13  dbms_output.put_line('name:'||rec.ename);
 14  dbms_output.put_line('Basic pay:'||rec.basicpay);
 15  dbms_output.put_line('DA:'||rec.da);
 16  dbms_output.put_line('allowance:'||rec.allowance);
 17  dbms_output.put_line('Tax:'||rec.tax);
 18  dbms_output.put_line('LIC:'||rec.lic);
 19  dbms_output.put_line('Grosspay:'||rec.grosspay);
 20  cnt:=cnt+1;
 21  end if;
 22  end loop;
 23  close c;
 24  end;
 25  /

Employee no:101
name:siva
Basic pay:10000
DA:4000
allowance:2000
Tax:1000
LIC:1200
Grosspay:0
Employee no:102
name:raja
Basic pay:20000
DA:7000
allowance:3000
Tax:2000
LIC:2600
Grosspay:0

PL/SQL procedure successfully completed.

SQL> select * from empl;

     EMPNO ENAME                DOB         BASICPAY         DA  ALLOWANCE
---------- -------------------- --------- ---------- ---------- ----------
       TAX        LIC   GROSSPAY
---------- ---------- ----------
       101 siva                 01-AUG-00      10000       4000       2000
      1000       1200      13800

       102 raja                 11-MAR-01      20000       7000       3000
      2000       2600      25400

SQL>

Result:
Thus the PL/SQL cursor was created and the results were verified.


EX.No.8                     PL/SQL FUNCTIONS & PROCEDURES

AIM
             To write PL/SQL functions and procedures to perform certain Constraints.


QUESTIONS

            1. a) Create the table account with attributes accno, date, balance.
                b) create the table branch with attributes branch name,location,assets.
                c) create the table customer with the attributes ID, name, address.
                d) create the table depositer with the attributes accno, custid, bname.
                e) create the table employee with the attributes empno, name, address,
                     Pay, qualification and department .

            2.  Write a PL/SQL function to display assets if the branch name is given.

            3.  Write a PL/SQL function to calculate income tax for given employee
                  number calculations as
                           a) If pay is between 0 to 10000 then no income tax is charged.
                           b) If pay is between 10000 to 20000 then 20% of pay is charged
                                As tax.
                           c) If pay is between 21000 to 50000 then 35% of pay is charged
                               As tax.
                           d) If pay is greater than 50,000 then 40% of pay is charged as tax.

             4.  Write a PL/SQL function to display the number of accounts in the
                   Particular branch.

             5.  Write a PL/SQL procedure to display the number of accounts opened by
                  Accounts opened by a customer.

             6. Write a PL/SQL procedure to display the total amount deposited in branch.


QUERIES
         1)  a.i) create table branch( bname varchar(30), loc char(20), assets varchar(30));
                ii) insert into branch values(‘&bname’,’&loc’,’&assets’);
            
              b.i) create table account(accno integer, sdate date, balance integer);
                ii) insert into account values(&accno,’&sdate’,&balance);
        
             c .i) create table customer(custid integer, cname char(20), address char(20));

                 ii) insert into customer values(&custid.’&cname’,’&address’);
           
               d. i) create table depositer(accno integer, custid integer, bname char(20));
                   ii) insert into depositer values(&accno, &custid, ‘&bname’);

               e. i) create table employee(empno integer,empname char(20), address char(20),
                        Pay integer, qualification varchar(30));
                  ii) insert into employee values(&empno,’&empname’.’&address’,&pay,
                       ‘&qualification’);

            2)      create or replace function f1(newbname varchar)
                  2  return varchar
                  3  is
                  4  newassets varchar(30);
                  5  BEGIN
                  6  select assets into newassets from branch where bname=newbname;
                  7  return newassets;
                  8  END;
                  9  /

                  Function created

           3)     SQL> create or replace function f2(neweno integer)
                          2  return integer
                          3  is
                          4  newitax integer;
                          5  pay1 integer;
                          6  BEGIN
                          7  select pay into pay1 from employee1 where empno=newwmpno;
                          8  if(pay<10000)then
                          9  newitax=0.1*pay1;
                        10  elsif(10000<pay1<20000)then
                        11  newitax=0.2*pay1;
                        12  elsif(20000<pay1<50000)then
                        13  newitax=0.35*pay1;
                        14  else(pay>50000)
                        15  newitax=0.4*pay1;
                        16 return new tax;
                        17 Endif;
                        18  end;
                        19 /

                        Function created.
         
           4)     create or replace function f3(newbname varchar)
                2  return varchar
                3  is
                4  newaccno varchar(20);
                5   BEGIN
                6  select count(accno) into newaccno from depositer  where bname=newbname;
                7  return newaccno;
                8  END;
                9  /

                Function created.

          5)  SQL> set serveroutput on
               SQL>  create or replace procedure cusa(vcname varchar)
                      2   is
                      3   vno integer;
                      4   BEGIN
                       5   select count(*) into vno from depositer,customer where 
                            depositer.cid=customer.cid and customer.cname=vcname;
                       6   dbms_output.put_line(vno);
                       7   END;
                       8  /

                      Procedure created.
     

          6)  SQL> create or replace procedure p2(newbname varchar)
                     2  is
                     3  nwamount integer;
                     4   BEGIN
                     5  select sum(balance)into nwamount from depositer,account2 where    
                          depositer.bname=newbname and account2.accno=depositer.accno);
                     6  dbms_output.put_line(nwamount);
                     7  END;

                    Procedure created.


OUTPUT
       1) a) i. table created.
               Ii. Enter value for name: tmb
                    Enter value for loc: madurai
                    Enter value for assets: one lakh
                    old   1: insert into branch values('&name','&loc','&assets')
                    new   1: insert into branch1 values('tmb','madurai','one lakh')

                    1 row created.

            B.I)  table created
               Ii)  Enter value for accno: 10002
                     Enter value for sdate: 24-mar-90
                     Enter value for balance: 30000
                     old   1: insert into account values(&accno,'&sdate',&balance)
                     new   1: insert into account values(10004,'24-mar-90',30000)

                    1 row created
             
             C.I) table created.
               Ii) Enter value for custid: 2
                    Enter value for cname: malar
                    Enter value for address: madurai
                    old   1:  insert into depositer values(&accno,&cid,'&name')
                    New   1:  insert into depositer values(10002,2,'kala')

                    1 row created.

             D.I)  table created.
               Ii)  Enter value for accno: 10002
                     Enter value for custid: 2
                     Enter value for name: kala
                     Old   1:  insert into depositer values(&accno,&cid,'&name')
                     new   1:  insert into depositer values(10002,2,'kala')

                     1 row created.

              E. I)  table created.
                 Ii)  Enter value for empno: 2
                       Enter value for ename: kala
                       Enter value for address: madurai
                       Enter value for pay: 15000
                       Enter value for qualification: M.com
                       Enter value for department: Finance
                       old   1: insert into employee values(&empno,'&ename',
                                  '&address',&pay,'&qualification','&department'
                       new   1: insert into employee1 values(4,'heena',
                                      'madurai',15000,'M>com','Finance')
                       1 row created.

               2)   SQL>  set serveroutput on
                     SQL>  BEGIN
                           2   dbms_output.put_line(f1('tmb'));
                           3  END;
                           4  /
                      one lakh

                       PL/SQL procedure successfully completed.
          
               3)   SQL>  set serveroutput on
                     SQL>  BEGIN
                           2   dbms_output.put_line(f2(15000));
                           3  END;
                           4  /
                      1500

                       PL/SQL procedure successfully completed.

              4)   SQL> set serveroutput on
                    SQL> BEGIN
                    2  dbms_output.put_line(f3('1b'));
                    3  END;
                    4  /
                    0

                    PL/SQL procedure successfully completed.


             5)   SQL>expc p1(‘malar’);
                   1

            6)   SQL>expc p2(‘SBI’);
                  40,000


RESULT
                               Thus the PL/SQL functions and procedures are created and executed.


Ex.9                                                    VIEWS

SQL> create view view4 as(select account.accno,account.balance,depositer.custid,depositer.bname from
account,depositer where account.accno=depositer.accno); 
View created. 
SQL> select * from view4; 
     ACCNO    BALANCE     CUSTID BNAME
---------- ---------- ---------- --------------------
      1701      17859        111 State Bank
      1702      63875        112 TMB
      1703      52985        113 IOB
      1704      75426        114 Syndicate
      1705      42987        115 Baroda 
SQL> create view view5 as select c.custid,c.cname,c.address,d.accno,d.bname from customer c,depositer d where c.custid=d.custid; 
View created. 
SQL> select * from view5; 
    CUSTID CNAME                ADDRESS                   ACCNO
---------- -------------------- -------------------- ----------
BNAME
--------------------
       111 Sunil                1,Nehru St,Erode           1701
State Bank 
       112 Kishore              2,Gandi St,Mdu             1702
TMB 
       113 Harish               3,Rajaji St,Cng            1703
IOB
 
    CUSTID CNAME                ADDRESS                   ACCNO
---------- -------------------- -------------------- ----------
BNAME
--------------------
       114 Akil                 4,Bose St,Vnr              1704
Syndicate 
       115 Angel                5,PT St,Tmm                1705
Baroda
 
SQL> create view view3 as select * from emp1 where address='madurai'
  2 
SQL> create view view6 as select * from empl where address='madurai'; 
View created. 
SQL> select * from view6; 
no rows selected 
SQL> insert into view6 values(&empno,'&empname','&address',&pay,'&qualification');
Enter value for empno: 1000
Enter value for empname: Sunil
Enter value for address: madurai
Enter value for pay: 12000
Enter value for qualification: B.Sc.
old  1: insert into view6 values(&empno,'&empname','&address',&pay,'&qualification')
new   1: insert into view6 values(1000,'Sunil','madurai',12000,'B.Sc.') 
1 row created. 
SQL> select * from view6; 
     EMPNO EMPNAME              ADDRESS                    PAY
---------- -------------------- -------------------- ----------
QUALIFICATION
------------------------------
      1000 Sunil                madurai                   12000
B.Sc.
 
SQL> select * from empl; 
     EMPNO EMPNAME              ADDRESS                     PAY
---------- -------------------- -------------------- ----------
QUALIFICATION
------------------------------
       101 Ashok                6,Lalu St,Mdu              8000
B.com 
       102 Sharan               7,NGO Nagar,Vnr            7500
B.Ed 
       103 Tharun               8,KK Nagar,Ed             12000
B.E.
 
     EMPNO EMPNAME              ADDRESS                     PAY
---------- -------------------- -------------------- ----------
QUALIFICATION
------------------------------
       104 Shailesh             9,PTN St,Tmm              18000
B.E. 
       105 Eashan               5,Raja St,Tmm             42000
B.E. 
      1000 Sunil                madurai                   12000
B.Sc.
 
6 rows selected. 
 SQL> commit; 
Commit complete. 
SQL> alter table account add primary key(accno); 
Table altered. 
SQL> delete from view4 where accno=1704; 
1 row deleted. 
SQL> select * from view4; 
     ACCNO    BALANCE     CUSTID BNAME
---------- ---------- ---------- --------------------
      1701      17859        111 State Bank
      1702      63875        112 TMB
      1703      52985        113 IOB
      1705      42987        115 Baroda 
SQL> alter table depositer add constraint dp foreign key(accno)references account(accno); 
Table altered. 
SQL> alter table customer add primary key (custid); 
Table altered. 
SQL> update view5 set bname='AXIS CHN' where cname='Angel'; 
1 row updated. 
SQL> select * from view5; 
    CUSTID CNAME                ADDRESS                   ACCNO
---------- -------------------- -------------------- ----------
BNAME
--------------------
       111 Sunil                1,Nehru St,Erode           1701
State Bank 
       112 Kishore              2,Gandi St,Mdu             1702
TMB 
       113 Harish               3,Rajaji St,Cng            1703
IOB
 
    CUSTID CNAME                ADDRESS                   ACCNO
---------- -------------------- -------------------- ----------
BNAME
--------------------
       115 Angel                5,PT St,Tmm                1705
AXIS CHN
 
SQL>

Ex. 10                                                 DYNAMIC SQL

COMMAND PROMPT: 
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp. 
C:\Documents and Settings\2910043>cd .. 
C:\Documents and Settings>cd .. 
C:\>cd jdk1.3\bin 
C:\jdk1.3\bin>javac dsql.java 
C:\jdk1.3\bin>java dsql
DB connected
1.insert
2.display
3.exit
1
enter employee id
101
enter employee name
Angel
enter address
Madurai
1.insert
2.display
3.exit
1
enter employee id
102
enter employee name
Ammu
enter address
Madurai
1.insert
2.display
3.exit
1
enter employee id
103
enter employee name
Geetha
enter address
Madurai
1.insert
2.display
3.exit
empid   name    address 
101     Angel   Madurai
102     Ammu    Madurai
103     Geetha  Madurai
1.insert
2.display
3.exit
C:\jdk1.3\bin>

 
NOTEPAD: 
import java.io.*;
import java.sql.*;
class dsql
{
  public static void main(String s[]) throws Exception
{
   Connection con;
   Statement st;
   ResultSet rs;
   PreparedStatement ps,ps1;
  int ch;
   try
      {
      DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
      con=DriverManager.getConnection("jdbc:odbc:ex10","cs2910043","cs2910043");
      BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
      System.out.println("DB connected");
      while(true)
         {
          
        System.out.println("1.insert\n2.display\n3.exit");
      ch=Integer.parseInt(br.readLine());
      switch(ch)
      {
    case 1:
        System.out.println("enter employee id");
            int empid=Integer.parseInt(br.readLine());
            System.out.println("enter employee name");
            String name=br.readLine();
    System.out.println("enter address");
            String address=br.readLine();
            ps=con.prepareStatement("insert into ex10 values(?,?,?)");
            ps1=con.prepareStatement("commit");
            ps.setInt(1,empid);
            ps.setString(2,name);
            ps.setString(3,address);
            ps.executeUpdate();
            ps1.execute();
            break; 
      case 2:
            st=con.createStatement();
            rs=st.executeQuery("select * from ex10");
            System.out.println("\nempid\tname\taddress\n");
            while(rs.next())
            {
            System.out.print(rs.getInt(1)+"\t");
            System.out.print(rs.getString(2)+"\t");
            System.out.print(rs.getString(3)+"\t");
            System.out.println();
            }
st.close();
break;
case 3:
      System.exit(0);
      break;
      default:
      break;
      }
      }
   }
catch(Exception e)
{
   System.out.println(e);
  }
}
}


 ORACLE: 
SQL> create table ex10(empid number(3),empname varchar(15),address varchar(15)); 
Table created. 
SQL> commit; 
Commit complete.


No comments:

Post a Comment