DBMS-SQL And PL/SQL- 2.3 -Assignment-2 SPPU (Insert, Select, Update, Delete, operators, functions, set operator, all constraints, synonym, sequence)
SQL Queries:
a. Design and Develop SQL DDL statements which demonstrate the use of SQL objects such as Table, View, Index, Sequence, Synonym, different constraints etc.
b. Write at least 10 SQL queries on the suitable database application using SQL DML
statements.
Note: Instructor will design the queries which demonstrate the use of concepts like Insert, Select,
Update, Delete with operators, functions, and set operator etc.
Assignment (Insert, Select, Update, Delete, operators, functions, setoperator, all constraints, synonym, sequence)
Create following tables with appropriate constraints like primary key, foreign key, check constrains ,not null etc.
Account(Acc_no, branch_name,balance)
branch(branch_name,branch_city,assets)
customer(cust_name,cust_street,cust_city)
Depositor(cust_name,acc_no)
Loan(loan_no,branch_name,amount)
Borrower(cust_name,loan_no)
Solve following query:
SQL> create table branch(branch_name varchar(10) primary key,branch_city varchar(10),assets varchar(10));
Table created.
SQL> create table account(account_no number(10) primary key,branch_name varchar(10) references branch(branch_name),balance number(10));
Table created.
SQL> create table customer(cust_name varchar(10) primary key,cust_strect varchar(10),custy_city varchar(10));
Table created.
SQL> create table depositer(account_no number(10)references account(account_no),cust_name varchar(10) references customer(cust_name));
Table created.
SQL> create table loan(loan_no number(10) primarykey,branch_name varchar(10) references branch(branch_name),amount number(10));
Table created.
SQL> create table borrowera(cust_name varchar(10) references customer(cust_name),loan_no number(10) references loan);
Table created.
SQL> alter table account add check(balance>=500);
Table altered.
SQL> insert into branch values('shirdi','nagar','building');
1 row created.
SQL> insert into branch values('akluj','nagar','building');
1 row created.
SQL> insert into branch values('velapur','nagar','building');
1 row created.
SQL> insert into branch values('akrudi','pune','building');
1 row created.
SQL> insert into branch values('nigdi','pune','building');
1 row created.
SQL> insert into account values(1,'shirdi',1000);
1 row created.
SQL> insert into account values(2,'akluj',100100);
1 row created.
SQL> insert into account values(3,'velapur',100100);
1 row created.
SQL> insert into account values(4,'akrudi',15000);
1 row created.
SQL> insert into account values(5,'nigdi',1500);
1 row created.
SQL> insert into customer values('sakshi','old_house','nanded');
1 row created.
SQL> insert into customer values('shweta','sam_nivas','nanded');
1 row created.
SQL> insert into customer values('aditi','adi_nivas','lukhnow');
1 row created.
SQL> insert into customer values('priyi','sai_nivas','amravati');
1 row created.
SQL> insert into customer values('anki','new_house','hydrabad');
1 row created.
SQL> insert into depositer values(1,'sakshi');
1 row created.
SQL> insert into depositer values(2,'shweta');
1 row created.
SQL> insert into depositer values(3,'aditi');
1 row created.
SQL> insert into depositer values(4,'priyi');
1 row created.
SQL> insert into depositer values(5,'anki');
1 row created.
SQL> insert into loan values(101,'shirdi',1020000);
1 row created.
SQL> insert into loan values(102,'akluj',100500);
1 row created.
SQL> insert into loan values(103,'velapur',15550000);
1 row created.
SQL> insert into loan values(104,'akrudi',15550000);
1 row created.
SQL> insert into loan values(105,'nigdi',152000);
1 row created.
SQL> insert into borrowera values('sakshi',101);
1 row created.
SQL> insert into borrowera values('shweta',102);
1 row created.
SQL> insert into borrowera values('aditi',103);
1 row created.
SQL> insert into borrowera values('priyi',104);
1 row created.
SQL> insert into borrowera values('anki',105);
1 row created.
SQL> select * from account;
ACCOUNT_NO BRANCH_NAM BALANCE
---------- ---------- ----------
1 shirdi 1000
2 akluj 100100
3 velapur 100100
4 akrudi 15000
5 nigdi 1500
SQL> select * from branch;
BRANCH_NAM BRANCH_CIT ASSETS
---------- ---------- ----------
shirdi nagar building
akluj nagar building
velapur nagar building
akrudi pune building
nigdi pune building
SQL> select * from customer;
CUST_NAME CUST_STREC CUSTY_CITY
---------- ---------- ----------
sakshi old_house nanded
shweta sam_nivas nanded
aditi adi_nivas lukhnow
priyi sai_nivas amravati
anki new_house hydrabad
SQL> select * from depositer;
ACCOUNT_NO CUST_NAME
---------- ----------
1 sakshi
2 shweta
3 aditi
4 priyi
5 anki
SQL> select * from loan;
LOAN_NO BRANCH_NAM AMOUNT
---------- ---------- ----------
101 shirdi 1020000
102 akluj 100500
103 velapur 15550000
104 akrudi 15550000
105 nigdi 152000
SQL> select * from borrowera;
CUST_NAME LOAN_NO
---------- ----------
sakshi 101
shweta 102
aditi 103
priyi 104
anki 105
Q.1)Find the names of all branches in loan relation.
SQL> select branch_name from loan group by branch_name;
BRANCH_NAM
----------
shirdi
akluj
velapur
akrudi
nigdi
Q.2)Find all loan numbers for loans made at Akurdi Branch with loan amount > 12000.
SQL> select loan_no from loan where branch_name='akrudi' and amount>1200;
LOAN_NO
----------
104
Q.3)Find all customers who have a loan from bank. Find their names, loan_no and loan amount.
SQL> select A.loan_no , A.branch_name , A.amount ,B.cust_name from loan A inner join borrower B
on A.loan_no = B.loan_no;
LOAN_NO BRANCH_NAM AMOUNT CUST_NAME
---------- ---------- ---------- ----------
101 shirdi 1020000 sakshi
102 akluj 100500 shweta
103 velapur 15550000 aditi
104 akrudi 15550000 priyi
105 nigdi 152000 anki
Q.4)List all customers in alphabetical order who have loan from Akurdi branch.
SQL> select cust_name from borrowera where loan_no IN (select loan_no from loan where
branch_name ='akrudi')order by cust_name;
CUST_NAME
----------
priyi
Q.5)Find all customers who have an account or loan or both at bank.
SQL> select cust_name from customer union select cust_name from borrowera;
CUST_NAME
----------
sakshi
shweta
priyi
aditi
anki
Q.6)Find all customers who have both account and loan at bank.
SQL> select cust_name from customer intersect select cust_name from borrowera;
CUST_NAME
----------
sakshi
shweta
priyi
aditi
anki
Q7. Find all customer who have account but no loan at the bank.
SQL> select cust_name from customer where cust_name NOT IN (select cust_name from borrowera);
no rows selected
Q8. Find average account balance at Akurdi branch.
SQL> select avg(balance) from account where
branch_name ='akrudi';
AVG(BALANCE)
------------
15000
Q9. Find the average account balance at each branch
SQL> select branch_name , avg(balance) from
account group by branch_name;
BRANCH_NAM AVG(BALANCE)
---------- ------------
shirdi 1000
akluj 100100
velapur 100100
akrudi 15000
nigdi 1500
Q.10)Find no. of depositors at each branch.
SQL> select distinct branch_name,count(account_no) from account where account_no IN(select account_no from depositer) group by branch_name;
BRANCH_NAM COUNT(ACCOUNT_NO)
---------- -----------------
shirdi 1
akluj 1
velapur 1
akrudi 1
nigdi 1
Q.11)Find the branches where average account balance > 12000.
SQL> select branch_name from account having avg(balance)>12000 group by branch_name;
BRANCH_NAM
----------
akluj
velapur
akrudi
Q12. Find number of tuples in customer relation.
SQL> select count(*) from customer;
COUNT(*)
----------
5
Q13. Calculate total loan amount given by bank.
SQL> select branch_name , sum(amount) from loan group by branch_name;
BRANCH_NAM SUM(AMOUNT)
---------- -----------
shirdi 1020000
akluj 100500
velapur 15550000
akrudi 15550000
nigdi 152000
Q.14) Delete all loans with loan amount between 1300 and 1500.
SQL> update loan set amount = 1400 where loan_no= 102;
1 row updated.
SQL> select * from loan;
LOAN_NO BRANCH_NAM AMOUNT
---------- ---------- ----------
101 shirdi 1020000
102 akluj 1400
103 velapur 15550000
104 akrudi 15550000
105 nigdi 152000
SQL> delete from borrowera where loan_no IN (select loan_no from loan where amount between
1300 AND 1500);
1 row deleted.
SQL> select * from borrowera;
CUST_NAME LOAN_NO
---------- ----------
sakshi 101
aditi 103
priyi 104
anki 105
SQL> delete from loan where amount between 1300
AND 1500;
1 row deleted.
SQL> select * from loan;
LOAN_NO BRANCH_NAM AMOUNT
---------- ---------- ----------
101 shirdi 1020000
103 velapur 15550000
104 akrudi 15550000
105 nigdi 152000
Q.16. Create synonym for customer table as cust.
SQL> create synonym cust for customer;
Synonym created.
SQL> select * from cust;
CUST_NAME CUST_STREC CUSTY_CITY
---------- ---------- ----------
sakshi old_house nanded
shweta sam_nivas nanded
aditi adi_nivas lukhnow
priyi sai_nivas amravati
anki ss new_house hydrabad
Q.17. Create sequence roll_seq and use in student table for roll_no column.
SQL> create sequence roll_seq start with 1
increment by 1 maxvalue 5 nocycle;
Sequence created.
SQL> create table stud123 (roll number(10) , name
varchar(10));
Table created.
SQL> insert into stud123
values(roll_seq.nextval,'priyi');
1 row created.
SQL> select * from stud123;
ROLL NAME
---------- ----------
1 priyi
Comments
Post a Comment