Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/main/resources/db/migration/V1__create_client_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
CREATE TABLE client (
clientID int PRIMARY KEY AUTO_INCREMENT NOT NULL,
name varchar(100) NOT NULL,
address varchar(60),
phoneNo varchar(15)
);
8 changes: 8 additions & 0 deletions src/main/resources/db/migration/V2__create_sales_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
CREATE TABLE sales (
salesID int PRIMARY KEY AUTO_INCREMENT NOT NULL,
name varchar(50) NOT NULL,
salary decimal(11,2) NOT NULL,
bankAcc_No varchar(12) NOT NULL,
nino varchar(9) NOT NULL ,
commission decimal(7,2)
);
6 changes: 6 additions & 0 deletions src/main/resources/db/migration/V3__create_project_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
CREATE TABLE project (
projectID INT PRIMARY KEY AUTO_INCREMENT,
`value` DECIMAL(10, 2) NOT NULL,
technologyList SET('Java', 'PHP', 'SQL', 'Other'),
leadName varchar(50) NOT NULL
);
7 changes: 7 additions & 0 deletions src/main/resources/db/migration/V4__create_delivery_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CREATE TABLE delivery (
deliveryID int PRIMARY KEY AUTO_INCREMENT NOT NULL,
name varchar(50) NOT NULL,
salary decimal(11,2) NOT NULL,
bankAcc_No varchar(12) NOT NULL,
nino varchar(9) NOT NULL
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
CREATE TABLE projectHistory (
projectHistoryID int,
`value` DECIMAL(10, 2) NOT NULL,
technologyList SET('Java', 'PHP', 'SQL', 'Other'),
leadName varchar(50) NOT NULL
);

create table projectDelivery (
projectID int ,
deliveryID int,
PRIMARY KEY (projectID, deliveryID)
);

ALTER TABLE client
ADD salesID int,
ADD CONSTRAINT FK_ClientSales
FOREIGN KEY (salesID) references sales(salesID);
8 changes: 8 additions & 0 deletions src/main/resources/db/migration/V6__alter_project_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
ALTER TABLE project
ADD salesID int,
ADD deliveryID int,
ADD clientID int,
ADD CONSTRAINT FOREIGN KEY (salesID) REFERENCES sales(salesID),
ADD CONSTRAINT FOREIGN KEY (deliveryID) REFERENCES delivery(deliveryID),
ADD CONSTRAINT FOREIGN KEY (clientID) REFERENCES client(clientID)

54 changes: 54 additions & 0 deletions src/main/resources/db/migration/V7__insert_data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
insert into client(clientID, name, address, phoneNo) values (1, 'james', 'address', '0308400308');
insert into client(clientID, name, address, phoneNo) values (2, 'john', 'address3', '0308400304');
insert into sales (Name, salary, bankAcc_No, nino) values ('Luke', 10000.00, 1002034, 'Mick');
insert into client(clientID, name, address, phoneNo) values (3, 'frank', 'address', '0308400308');
insert into client(clientID, name, address, phoneNo) values (4, 'John', 'address', '0308400308');
insert into client(clientID, name, address, phoneNo) values (5, 'jason', 'address', '0308400308');
insert into client(clientID, name, address, phoneNo) values (6, 'shea', 'address', '0308400308');

Select `value`, client.name
from project
join client ON client.clientID
having max(`value`);

Select `value`, client.name
from project
join client ON client.clientID
having min(`value`);

INSERT INTO sales (name, salary, bankAcc_No, nino, commission) VALUES
('Alice Johnson', 55000.00, '123456789012', 'AB123456C', 5000.00),
('Bob Smith', 60000.00, '987654321098', 'CD234567D', 7000.00),
('Carol White', 58000.00, '567890123456', 'EF345678E', 6500.00),
('David Brown', 62000.00, '210987654321', 'GH456789F', 8000.00),
('Eva Green', 54000.00, '345678901234', 'IJ567890G', 4500.00);

INSERT INTO delivery (name, salary, bankAcc_No, nino) VALUES
('Tom Wilson', 32000.00, '123456789012', 'ZW123456A'),
('Nancy Drew', 35000.00, '987654321098', 'XY234567B'),
('Jake Harris', 30000.00, '567890123456', 'CD345678C'),
('Laura King', 33000.00, '210987654321', 'EF456789D'),
('Sam Brown', 31000.00, '345678901234', 'GH567890E');

INSERT INTO project (`value`, technologyList, leadName) VALUES
(25000.00, 'Java,SQL', 'Alice Johnson'),
(35000.00, PHP, Java, 'Bob Smith'),
(15000.00, 'Java', 'Carol White'),
(45000.00, 'Java,PHP,SQL', 'David Brown'),
(30000.00, 'SQL', 'Eva Green');

SELECT s.salesID, s.name, s.salary, s.bankAcc_No, s.nino, s.commission
FROM sales s
LEFT JOIN client c ON s.salesID = c.salesID
WHERE c.salesID IS NULL;

Select client.name, `value`
from project
join client ON client.clientID
group by client.name
having avg(`value`);

SELECT
salesID, name, commission
FROM
sales;