0% found this document useful (0 votes)
7 views5 pages

DBMS Ass2B

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views5 pages

DBMS Ass2B

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

TA64

Assignment 2B

Consider Following banking database Schema

Branch = (branch_id, branch_name, branch_city, assets)


Customer = (customer_id, customer_name, customer_street, customer_city)
Loan = (loan_number, amount, customer_id (FK))
Account = (account_number, balance, customer_id (FK))

use Banking;

-- Create Tables

CREATE TABLE Branch (


branch_id INT PRIMARY KEY,
branch_name VARCHAR(50),
branch_city VARCHAR(50),
assets DECIMAL(12,2)
);

CREATE TABLE Customer (


customer_id INT PRIMARY KEY,
customer_name VARCHAR(50),
customer_street VARCHAR(100),
customer_city VARCHAR(50)
);

CREATE TABLE Account (


account_number INT PRIMARY KEY,
balance DECIMAL(10,2),
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES Customer(customer_id)
);

CREATE TABLE Loan (


loan_number INT PRIMARY KEY,
amount DECIMAL(10,2),
customer_id INT,
FOREIGN KEY (customer_id) REFERENCES Customer(customer_id)
);
DESCRIBE Branch;
DESCRIBE Customer;
DESCRIBE Account;
DESCRIBE Loan;

-- Insert Sample Data

-- Branches
INSERT INTO Branch VALUES
(1, 'Pune_Main', 'Pune', 800000),
(2, 'Pune_West', 'Pune', 500000),
(3, 'Mumbai_Main', 'Mumbai', 1200000),
(4, 'Delhi_Central', 'Delhi', 1500000);

-- Customers
INSERT INTO Customer VALUES
(101, 'Amit Sharma', 'MG Road', 'Pune'),
(102, 'Neha Verma', 'FC Road', 'Pune'),
(103, 'Ravi Kumar', 'Bandra', 'Mumbai'),
(104, 'Sunita Patil', 'Andheri', 'Mumbai'),
(105, 'Manoj Singh', 'Connaught Place', 'Delhi');

-- Accounts
INSERT INTO Account VALUES
(2001, 50000, 101),
(2002, 75000, 102),
(2003, 120000, 103),
(2004, 30000, 104);

-- Loans
INSERT INTO Loan VALUES
(3001, 200000, 101),
(3002, 150000, 103),
(3003, 250000, 105);
-- Queries

-- 1. Customers who have both an account and a loan


SELECT DISTINCT c.customer_name
FROM Customer c
JOIN Account a ON c.customer_id = a.customer_id
JOIN Loan l ON c.customer_id = l.customer_id;

-- 2. Customers who have a loan but no account


SELECT DISTINCT c.customer_name
FROM Customer c
JOIN Loan l ON c.customer_id = l.customer_id
WHERE c.customer_id NOT IN (SELECT customer_id FROM Account);

-- 3. Customers who have an account but no loan


SELECT DISTINCT c.customer_name
FROM Customer c
JOIN Account a ON c.customer_id = a.customer_id
WHERE c.customer_id NOT IN (SELECT customer_id FROM Loan);
-- 4. Branches with greater assets than some branches in Pune
SELECT DISTINCT b1.branch_name, b1.assets
FROM Branch b1
WHERE b1.assets > ANY (SELECT b2.assets FROM Branch b2 WHERE b2.branch_city = 'Pune');

-- 5a. Branch with greater assets than ALL Pune branches (Using Tuple Variable)
SELECT b1.branch_name, b1.assets
FROM Branch b1
WHERE b1.assets > ALL (SELECT b2.assets FROM Branch b2 WHERE b2.branch_city = 'Pune');

-- 5b. Branch with greater assets than ALL Pune branches (Without Tuple Variable)
SELECT b1.branch_name, b1.assets
FROM Branch b1, Branch b2
WHERE b2.branch_city = 'Pune'
GROUP BY b1.branch_name, b1.assets
HAVING b1.assets > MAX(b2.assets);
-- 6. Display customer id, customer name, account number, and balance
SELECT c.customer_id, c.customer_name, a.account_number, a.balance
FROM Customer c
JOIN Account a ON c.customer_id = a.customer_id;

-- 7. Display customer id, customer name, loan number, and loan amount
SELECT c.customer_id, c.customer_name, l.loan_number, l.amount
FROM Customer c
JOIN Loan l ON c.customer_id = l.customer_id;

You might also like