Added queries for Assignment-A3. Need to test one query, rest all working fine.
This commit is contained in:
parent
e49567421b
commit
1dfea309ef
270
Practical/Assignment-A3/Queries-A3.md
Executable file
270
Practical/Assignment-A3/Queries-A3.md
Executable file
@ -0,0 +1,270 @@
|
||||
## Creating database
|
||||
|
||||
```sql
|
||||
CREATE DATABASE Database_A3;
|
||||
USE Database_A3;
|
||||
|
||||
```
|
||||
|
||||
## Creating tables and specify primary keys:
|
||||
|
||||
```sql
|
||||
CREATE TABLE Account(acc_no INT, branch_name VARCHAR(50), balance INT, PRIMARY KEY (acc_no));
|
||||
CREATE TABLE Branch(branch_name VARCHAR(50), branch_city VARCHAR(50), assets INT, PRIMARY KEY (branch_name));
|
||||
CREATE TABLE Customer (cust_name VARCHAR(50), cust_street VARCHAR(50), cust_city VARCHAR(50), PRIMARY KEY (cust_name));
|
||||
CREATE TABLE Depositor (cust_name VARCHAR(50), acc_no INT);
|
||||
CREATE TABLE Loan (loan_no INT, branch_name VARCHAR(50), amount INT, PRIMARY KEY (loan_no));
|
||||
CREATE TABLE Borrower (cust_name VARCHAR(50), loan_no INT);
|
||||
|
||||
```
|
||||
|
||||
## Altering tables to specify foreign keys
|
||||
|
||||
```sql
|
||||
ALTER TABLE Account ADD FOREIGN KEY (branch_name) REFERENCES Branch(branch_name);
|
||||
ALTER TABLE Depositor ADD FOREIGN KEY (cust_name) REFERENCES Customer (cust_name);
|
||||
ALTER TABLE Depositor ADD FOREIGN KEY (acc_no) REFERENCES Account (acc_no);
|
||||
ALTER TABLE Loan ADD FOREIGN KEY (branch_name) REFERENCES Branch (branch_name);
|
||||
ALTER TABLE Borrower ADD FOREIGN KEY (cust_name) REFERENCES Customer (cust_name);
|
||||
ALTER TABLE Borrower ADD FOREIGN KEY (loan_no) REFERENCES Loan (loan_no);
|
||||
|
||||
```
|
||||
|
||||
## Adding data
|
||||
|
||||
```sql
|
||||
INSERT INTO Branch (branch_name, branch_city, assets) VALUES
|
||||
("Pune_Station", "Pune", 5000),
|
||||
("Hadapsar", "Pune", 20000),
|
||||
("Dhole_Patil", "Mumbai", 7500),
|
||||
("Nagarwala", "Nandurbar", 3200);
|
||||
|
||||
INSERT INTO Customer (cust_name, cust_street, cust_city) VALUES
|
||||
("Kalas", "Airport Road", "Pune"),
|
||||
("Mehul", "Shahdha", "Nandurbar"),
|
||||
("Tanmay", "Porwal Road", "Pune"),
|
||||
("Kshitij", "Hadapasar", "Pune"),
|
||||
("Aditya", "Mira RD", "Mumbai"),
|
||||
("Himanshu", "Smart City", "Nandurbar");
|
||||
|
||||
INSERT INTO Account (acc_no, branch_name, balance) VALUES
|
||||
(2501, "Dhole_Patil", 5000),
|
||||
(2511, "Pune_Station", 1500),
|
||||
(2521, "Hadapsar", 2000),
|
||||
(2512, "Nagarwala", 5000),
|
||||
(2531, "Pune_Station", 1000);
|
||||
|
||||
INSERT INTO Loan (loan_no, branch_name, amount) VALUES
|
||||
(155, "Dhole_Patil", 500),
|
||||
(156, "Pune_Station", 250),
|
||||
(157, "Hadapsar", 600),
|
||||
(158, "Nagarwala", 1400),
|
||||
(159, "Pune_Station", 25000);
|
||||
|
||||
INSERT INTO Borrower VALUES
|
||||
("Kalas", 156),
|
||||
("Mehul", 158),
|
||||
("Tanmay", 155),
|
||||
("Kshitij", 157),
|
||||
("Aditya", 159),
|
||||
("Himanshu", 158);
|
||||
|
||||
INSERT INTO Depositor VALUES
|
||||
("Kalas", 2511),
|
||||
("Mehul", 2512),
|
||||
("Tanmay", 2501),
|
||||
("Kshitij", 2521),
|
||||
("Aditya", 2531),
|
||||
("Himanshu", 2512);
|
||||
|
||||
```
|
||||
|
||||
## Queries
|
||||
|
||||
### Part 1 (Borrower):
|
||||
|
||||
1. Create a View1 to display List all customers in alphabetical order who have loan from
|
||||
Pune_Station branch
|
||||
```sql
|
||||
CREATE VIEW View1 AS
|
||||
SELECT cust_name
|
||||
FROM Borrower
|
||||
INNER JOIN Loan ON Borrower.loan_no = Loan.loan_no
|
||||
WHERE branch_name = "Pune_Station"
|
||||
ORDER BY cust_name;
|
||||
SELECT * FROM View1;
|
||||
|
||||
```
|
||||
|
||||
2. Create View2 on branch table by selecting any two columns and perform insert
|
||||
update delete operations.
|
||||
```sql
|
||||
CREATE VIEW View2 AS
|
||||
SELECT branch_name, branch_city
|
||||
FROM Branch;
|
||||
SELECT * FROM View2;
|
||||
|
||||
-- Insert operation
|
||||
INSERT INTO View2 (branch_name, branch_city) VALUES ('Yerwada', 'Pune');
|
||||
SELECT * FROM View2;
|
||||
|
||||
-- Update operation
|
||||
UPDATE View2 SET branch_name = 'Peachtree' WHERE branch_name = 'Yerwada';
|
||||
SELECT * FROM View2;
|
||||
|
||||
-- Delete operation
|
||||
DELETE FROM View2 WHERE branch_name = 'Peachtree';
|
||||
SELECT * FROM View2;
|
||||
|
||||
```
|
||||
|
||||
3. Create View3 on borrower and depositor table by selecting any one column from each
|
||||
table perform insert update delete operations.
|
||||
```sql
|
||||
CREATE VIEW View3 AS
|
||||
SELECT Borrower.cust_name, Depositor.acc_no
|
||||
FROM Borrower JOIN Depositor ON Borrower.cust_name = Depositor.cust_name;
|
||||
SELECT * FROM View3;
|
||||
|
||||
-- Insert operation
|
||||
// NEED TO FIX THIS
|
||||
INSERT INTO Customer (cust_name, cust_street, cust_city) VALUES ("Sandy", "Pedgaon", "Ahemadnagar");
|
||||
INSERT INTO Borrower (cust_name, loan_no) VALUES ("Sandy", 160);
|
||||
INSERT INTO Depositor(cust_name, Acc_no) VALUES("Sandy", 2502);
|
||||
SELECT * FROM View3;
|
||||
|
||||
-- Update operation
|
||||
UPDATE View3 SET acc_no = 102 WHERE cust_name = 'John_Doe';
|
||||
SELECT * FROM View3;
|
||||
|
||||
-- Delete operation
|
||||
DELETE FROM View3 WHERE cust_name = 'John_Doe';
|
||||
SELECT * FROM View3;
|
||||
//
|
||||
```
|
||||
|
||||
4. Create Union of left and right joint for all customers who have an account or loan or both at bank
|
||||
```sql
|
||||
SELECT DISTINCT Customer.cust_name
|
||||
FROM Customer
|
||||
LEFT JOIN Depositor ON Customer.cust_name = Depositor.cust_name
|
||||
LEFT JOIN Borrower ON Customer.cust_name = Borrower.cust_name
|
||||
WHERE Depositor.acc_no IS NOT NULL OR Borrower.loan_no IS NOT NULL;
|
||||
|
||||
```
|
||||
|
||||
5. Display content of View1, View2, View3
|
||||
```sql
|
||||
SELECT * FROM View1;
|
||||
SELECT * FROM View2;
|
||||
SELECT * FROM View3;
|
||||
|
||||
```
|
||||
|
||||
6. Create Simple and Unique index
|
||||
```sql
|
||||
-- Simple Index
|
||||
CREATE INDEX cust_ind ON Customer (cust_city);
|
||||
|
||||
-- Unique Index
|
||||
CREATE UNIQUE INDEX branch_ind ON Branch (branch_name);
|
||||
|
||||
```
|
||||
|
||||
7. Display index Information
|
||||
```sql
|
||||
SHOW INDEX FROM Customer;
|
||||
SHOW INDEX FROM Branch;
|
||||
|
||||
```
|
||||
|
||||
8. Truncate table Customer
|
||||
```sql
|
||||
DROP TABLE Depositor;
|
||||
DROP TABLE Borrower;
|
||||
TRUNCATE TABLE Customer;
|
||||
|
||||
```
|
||||
|
||||
### Part 2:
|
||||
|
||||
#### Create tables
|
||||
```sql
|
||||
CREATE TABLE Companies(comp_id varchar(50), name varchar(50), cost int, year int);
|
||||
CREATE TABLE Orders(comp_id varchar(50), domain varchar(50), quantity int);
|
||||
|
||||
```
|
||||
|
||||
#### Insert values
|
||||
```sql
|
||||
INSERT INTO Companies (comp_id, name, cost, year) VALUES
|
||||
("C001", "ONGC", 2000, 2010),
|
||||
("C002", "HPCL", 2500, 2012),
|
||||
("C005", "IOCL", 1000, 2014),
|
||||
("C006", "BHEL", 3000, 2015);
|
||||
|
||||
INSERT INTO Orders (comp_id, domain, quantity) VALUES
|
||||
("C001", "Oil", 109),
|
||||
("C002", "Gas", 121),
|
||||
("C005", "Telecom", 115);
|
||||
|
||||
```
|
||||
|
||||
#### Queries
|
||||
1. Find names, costs, domains and quantities for companies using inner join.
|
||||
```sql
|
||||
SELECT name, cost, domain, quantity FROM Companies INNER JOIN Orders on Companies.comp_id = Orders.comp_id;
|
||||
|
||||
```
|
||||
|
||||
2. Find names, costs, domains and quantities for companies using left outer join.
|
||||
```sql
|
||||
SELECT name, cost, domain, quantity FROM Companies lEFT OUTER JOIN Orders ON Companies.comp_id = Orders.comp_id;
|
||||
|
||||
```
|
||||
|
||||
3. Find names, costs, domains and quantities for companies using right outer join.
|
||||
```sql
|
||||
SELECT name, cost, domain, quantity FROM Companies RIGHT OUTER JOIN Orders ON Companies.comp_id = Orders.comp_id;
|
||||
|
||||
```
|
||||
|
||||
4. Find names, costs, domains and quantities for companies using Union operator.
|
||||
```sql
|
||||
SELECT name, cost FROM Companies UNION SELECT domain, quantity FROM Orders;
|
||||
|
||||
```
|
||||
|
||||
5. Create View View1 by selecting both tables to show company name and quantities.
|
||||
```sql
|
||||
CREATE VIEW view1 AS SELECT name, quantity FROM Companies JOIN Orders ON Companies.comp_id = Orders.comp_id;
|
||||
|
||||
```
|
||||
|
||||
6. Create View2 on branch table by selecting any two columns and perform insert update delete operations.
|
||||
```sql
|
||||
CREATE VIEW view2 AS SELECT name, cost FROM Companies;
|
||||
SELECT * FROM view2;
|
||||
|
||||
-- Insert operation
|
||||
INSERT INTO view2 (name, cost) VALUES ("BCCC", 3100);
|
||||
SELECT * FROM view2;
|
||||
|
||||
-- Update operation
|
||||
UPDATE view2 SET cost = 3500 WHERE name = "BCCC";
|
||||
SELECT * FROM view2;
|
||||
|
||||
-- Delete operation
|
||||
DELETE FROM view2 WHERE name = "BCCC";
|
||||
SELECT * FROM view2;
|
||||
|
||||
```
|
||||
|
||||
7. Display content of View1, View2.
|
||||
```sql
|
||||
SELECT * from view1;
|
||||
SELECT * FROM view2;
|
||||
|
||||
```
|
||||
|
||||
---
|
Loading…
Reference in New Issue
Block a user