Sei sulla pagina 1di 7

Writing Basic SQL Queries

Exercise 1
Code:
-- Lab 5
-- Exercise 1

-- Drop Previous Database


DROP DATABASE university_campus;

-- Create New Database


create schema University_Campus;

-- Step 1
create table University_Campus.Campus(
CampusID int(5) not null,
CampusName varchar(30) not null,
CampusAddress varchar(50) null,
Country varchar(20) null,
City varchar(20) null,
isOpen bit not null,
primary key(CampusID));

-- Step 2
create table University_Campus.Building(
BuildingID int(5) not null,
BuildingName varchar(30) null,
Address varchar(30) null,
primary key(BuildingID));
-- Step 3
alter table University_Campus.Building
add column F_CampusID int(5) null,
add foreign key(F_CampusID) references University_Campus.Campus(CampusID)
on delete set null
on update cascade;

-- Step 4
insert into University_Campus.Campus(CampusID, CampusName, CampusAddress, Country, City,
isOpen)
values
(1, 'Main', 'G.T.Road', 'Pakistan', 'Lahore', 0b1),
(2, 'Old', 'Neelum Block', 'Pakistan', 'Lahore', 0b1),
(3, 'Shadbagh', 'Shadbagh', 'Pakistan', 'Lahore', 0b1),
(4, 'Noon Avenue', 'Muslim Town', 'Pakistan', 'Lahore', 0b1),
(5, 'New', 'Gulberg', 'Pakistan', 'Lahore', 0b1);
insert into University_Campus.Building(BuildingID, BuildingName, Address, F_CampusID)
values
(1, 'Research Department', 'G.T.Road', 1),
(2, 'EE Department', 'G.T.Road', 1),
(3, 'Students Service Centre', 'G.T.Road', 1),
(4, 'ME Department', 'G.T.Road', 1),
(5, 'EE Department', 'G.T.Road', 2);

-- Step 5
select 'Campus Table' as '';
select * from University_Campus.Campus;
select 'Building Table' as '';
select * from University_Campus.Building;
-- Step 6
-- There are already at least two buildings belonging to the same campus.
select 'All Buildings of Campus 1' as '';
select * from University_Campus.Building where F_CampusID = 1;

-- Step 7
update University_Campus.Campus
set CampusName = replace(CampusName, 'Main', 'myCampus');
select 'Campus Table on Replacing "Main" with "myCampus"' as '';
select * from University_Campus.Campus;

-- Step 8
delete from University_Campus.Campus where CampusName = 'myCampus';
select 'Campus Table after deleting "myCampus"' as '';
select * from University_Campus.Campus;
select 'University Table after deleting "myCampus"' as '';
select * from University_Campus.Building;
Output:
Exercise 2
Code:
-- Lab 5
-- Exercise 2

-- Drop Previous Database


DROP DATABASE Gym_Record;

-- Create New Database


create schema Gym_Record;

-- Gym Table
create table Gym_Record.Gym(
gymName varchar(30) not null,
gymOwner varchar(20) null,
gymStreet int(5) null,
primary key(gymName));

-- Customer Table
create table Gym_Record.Customer(
customerName varchar(20) not null,
customerStreet int(5) null,
customerAge int(3) null,
primary key(customerName));

-- Frequents Table
create table Gym_Record.Frequents(
F_customerName varchar(20) not null,
F_gymName varchar(30) not null,
primary key(F_customerName, F_gymName),
foreign key(F_gymName) references Gym_Record.Gym(gymName) on delete restrict on update cascade,
foreign key(F_customerName) references Gym_Record.Customer(customerName) on delete restrict on
update cascade);

-- Populating Gym Table


insert into Gym_Record.Gym(gymName, gymOwner, gymStreet)
values
('Fitness First Gym', 'Ramzan', 1),
('Genesis Fitness Club', 'Irfan', 2),
('Pakistan Gym Club', 'Sadaqat', 3);

-- Populating Customer Table


insert into Gym_Record.Customer(customerName, customerStreet, customerAge)
values
('Usman', 1, 18),
('Waqar', 2, 19),
('Haider', 3, 20);

-- Populating Frequents Table


insert into Gym_Record.Frequents(F_customerName, F_gymName)
values
('Usman', 'Genesis Fitness Club'),
('Haider', 'Pakistan Gym Club'),
('Waqar', 'Fitness First Gym');

-- Printing the three tables


select 'Gym Table' as '';
select * from Gym_Record.Gym;
select 'Customer Table' as '';
select * from Gym_Record.Customer;
select 'Frequents Table' as '';
select * from Gym_Record.Frequents;

-- Task 1
select 'Gyms that Usman Frequents' as '';
select F_gymName from Gym_Record.Frequents where F_customerName = 'Usman';

-- Task 2
select 'Customers who frequent only gyms on the same street that (s)he lives on' as '';
select F_customerName
from Gym_Record.Frequents
inner join Gym_Record.Gym on F_gymName = gymName
inner join Gym_Record.Customer on F_customerName = customerName
where customerStreet = gymStreet;

Output:

Potrebbero piacerti anche