├── Labs ├── LAB TASKS USING MYSQL.sql └── LAB 2 BASIC OF SQL.sql ├── Online Retail Segmentation Using MYSQL.sql ├── README.md ├── Sub Quries ├── sub_queries_2.sql └── sub_queries.sql └── Joins ├── join_revise.table.sql ├── left_join_table.sql └── join_tables.sql /Labs/LAB TASKS USING MYSQL.sql: -------------------------------------------------------------------------------- 1 | #select actor_id from actor; 2 | 3 | #select title from film where title like 't%' 4 | 5 | #select release_year from film WHERE release_year = 2006; 6 | 7 | #select username, password from staff where username in ('Mike'); 8 | 9 | #select first_name from actor where first_name like 'T%' 10 | 11 | #select first_name,last_name,actor_id from actor where actor_id >= 50 and actor_id <=150; 12 | #select last_name from actor where last_name like 'A%' 13 | 14 | #select title , description from film; 15 | 16 | -------------------------------------------------------------------------------- /Online Retail Segmentation Using MYSQL.sql: -------------------------------------------------------------------------------- 1 | use retail_data; 2 | select * from online_retail; 3 | SELECT CustomerID, SUM(Quantity * UnitPrice) AS TotalInvoiceValue 4 | FROM online_retail 5 | GROUP BY CustomerID 6 | order by TotalInvoiceValue desc; 7 | 8 | 9 | # number of unique products has each customer purchased 10 | 11 | select CustomerID, COUNT(DISTINCT StockCode) AS UniqueProductsPurchased 12 | from online_retail 13 | GROUP BY CustomerID; 14 | 15 | # Customer with only single purchsed 16 | 17 | select Customerid from online_retail 18 | group by customerid 19 | having count(distinct invoiceno) = 1; 20 | 21 | # Products most commonly purchase together 22 | 23 | SELECT t1.StockCode AS Product_1, t2.StockCode AS Product_2, COUNT(*) AS PurchasedCount 24 | FROM online_retail t1 25 | JOIN online_retail t2 ON t1.InvoiceNo = t2.InvoiceNo AND t1.StockCode < t2.StockCode -- Ensure distinct pairs and avoid self-join 26 | GROUP BY t1.StockCode, t2.StockCode 27 | ORDER BY 28 | PurchasedCount DESC; 29 | 30 | # Customer Segmentation By Purchased Frequency; 31 | 32 | SELECT 33 | CustomerID, 34 | CASE 35 | WHEN COUNT(DISTINCT InvoiceNo) > 10 THEN 'High Frequency' 36 | WHEN COUNT(DISTINCT InvoiceNo) > 5 THEN 'Medium Frequency' 37 | ELSE 'Low Frequency' 38 | END AS PurchasedFrequencySegment 39 | FROM 40 | online_retail 41 | GROUP BY 42 | CustomerID; 43 | 44 | # Average Order Value By Country 45 | 46 | SELECT Country, AVG(Quantity * UnitPrice) AS AverageOrderValue 47 | FROM online_retail 48 | GROUP BY Country; 49 | 50 | # Customer Churn Analysis 51 | 52 | SELECT 53 | CustomerID 54 | FROM 55 | online_retail 56 | WHERE 57 | CustomerID NOT IN ( 58 | SELECT DISTINCT 59 | CustomerID 60 | FROM 61 | online_retail 62 | WHERE 63 | InvoiceDate >= CURDATE() - INTERVAL 6 MONTH 64 | ); 65 | 66 | # Product Affinity Analysis: 67 | 68 | 69 | SELECT t1.StockCode AS Product_1,t2.StockCode AS Product_2, 70 | COUNT(*) AS PurchasedCount 71 | FROM online_retail t1 72 | JOIN online_retail t2 ON t1.InvoiceNo = t2.InvoiceNo AND t1.StockCode < t2.StockCode -- Avoid self-joins and duplicate pairs 73 | GROUP BY t1.StockCode, t2.StockCode; 74 | 75 | # Time Based Analysis 76 | 77 | SELECT YEAR(InvoiceDate) AS Year, MONTH(InvoiceDate) AS Month,SUM(Quantity * UnitPrice) AS TotalSales 78 | FROM online_retail 79 | GROUP BY YEAR(InvoiceDate), MONTH(InvoiceDate) 80 | ORDER BY Year, Month; 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Retail Data Analysis Project 2 | ## Objective: 3 | The objective of this project is to analyze retail data to gain insights into customer behavior, product purchasing patterns, and overall business performance. This is achieved through various SQL queries focusing on customer segmentation, product affinity, churn analysis, and time-based sales trends. 4 | 5 | ## Description: 6 | This project uses SQL to perform in-depth analysis on retail data stored in the online_retail table. The analysis is structured to address key business questions and performance metrics, including: 7 | ## Total Invoice Value Per Customer: 8 | 9 | Retrieves the total invoice value for each customer to identify top spenders. 10 | ### Purpose: 11 | Helps in understanding the most valuable customers for the business. 12 | ## Number of Unique Products Purchased by Each Customer: 13 | 14 | Identifies the count of distinct products purchased by each customer. 15 | ### Purpose: 16 | Reveals customer purchasing diversity and product preferences. 17 | ## Customers with a Single Purchase: 18 | 19 | Detects customers who have made only one purchase. 20 | ### Purpose: 21 | Assists in customer retention strategies and churn analysis. 22 | ## Products Most Commonly Purchased Together: 23 | 24 | Finds product pairs that are frequently purchased together. 25 | ### Purpose: 26 | Useful for product bundling strategies and recommendations. 27 | ## Customer Segmentation by Purchase Frequency: 28 | 29 | Segments customers into low, medium, and high-frequency buyers. 30 | ### Purpose: 31 | Enables targeted marketing and personalized customer engagement strategies. 32 | ## Average Order Value by Country: 33 | 34 | Calculates the average order value for each country. 35 | ### Purpose: 36 | Helps in understanding geographical variations in purchasing behavior. 37 | ## Customer Churn Analysis: 38 | 39 | Identifies customers who have not made any purchases in the last six months. 40 | ### Purpose: 41 | Provides insights into customer churn and retention opportunities. 42 | ## Product Affinity Analysis: 43 | 44 | Performs analysis on which products are frequently purchased together. 45 | ### Purpose: 46 | Assists in cross-selling and up-selling strategies. 47 | ## Time-Based Sales Analysis: 48 | 49 | Analyzes sales performance over time, grouped by year and month. 50 | ### Purpose: 51 | Tracks business performance across different time periods for trend analysis. 52 | ## Conclusion: 53 | This project provides a robust framework for performing key business analyses using SQL. The insights gained from this analysis can be applied to enhance customer retention, optimize product offerings, and improve overall sales strategies. By leveraging these SQL queries, businesses can make data-driven decisions to maximize growth and profitability. 54 | -------------------------------------------------------------------------------- /Labs/LAB 2 BASIC OF SQL.sql: -------------------------------------------------------------------------------- 1 | create database company; 2 | 3 | use company; 4 | 5 | create table department 6 | ( 7 | dpt_id int auto_increment primary key not null unique, 8 | dpt_name varchar (100) not null 9 | ); 10 | 11 | create table employees 12 | ( 13 | emp_id int auto_increment primary key not null, 14 | first_name varchar(50) not null unique, 15 | last_name varchar(50) not null unique, 16 | hire_date date, 17 | dpt_id int, 18 | foreign key(dpt_id) REFERENCES department(dpt_id) 19 | ); 20 | 21 | insert into department VALUES 22 | (1, 'SALES'), 23 | (2,'MARKETING'), 24 | (3,'HR'), 25 | (4, 'FINANCE'), 26 | (5,'IT'), 27 | (6, 'OPERATIONS'); 28 | 29 | 30 | insert into employees VALUES 31 | (1,'Jhon' ,'Doe', '2023-01-15',1), 32 | (2,'Jane','Smith','2022-05-22',2), 33 | (3,'Michael','Jhonson','2021-09-10',3), 34 | (4,'Alice' ,'Williams', '2023-02-10',4), 35 | (5,'Bob','Dog','2023-03-15',5), 36 | (6,'Charlie' ,'Johnson', '2023-04-20',6), 37 | (7,'David','Brown','2023-05-25',4), 38 | (8,'Eva' ,'Jones', '2023-06-30',5); 39 | 40 | 41 | select * from department; 42 | select * from employees; 43 | 44 | select first_name, last_name from employees where dpt_id = 4; 45 | select first_name, last_name from employees where dpt_id in (4); 46 | select first_name, last_name from employees where dpt_id between 4 and 4; 47 | 48 | select first_name, last_name,hire_date from employees where hire_date between '2023-01-15' and '2023-06-30' order by hire_date desc; 49 | select first_name, last_name from employees where hire_date != '2022-05-22' and hire_date != '2021-09-10'; 50 | select first_name, last_name from employees where dpt_id not in (2, 3) order by first_name desc, last_name desc; 51 | 52 | select * from department order by dpt_name desc; 53 | select * from employees where dpt_id = 4 order by last_name desc; 54 | select * from employees where dpt_id = 5 order by first_name asc; 55 | 56 | select count(dpt_id) from employees where dpt_id = 4; 57 | select sum(dpt_id) from employees; 58 | select avg(dpt_id) from employees; 59 | select min(dpt_id) from employees; 60 | select max(dpt_id) from employees; 61 | 62 | select count(dpt_name) from department; 63 | select * from department order by dpt_name desc; 64 | 65 | UPDATE department SET dpt_name = 'Operations and Logistics' where dpt_id = 6; 66 | 67 | DELETE from employees where emp_id = 8; 68 | 69 | select * from employees where dpt_id = 4; 70 | select * from department where dpt_name = 'FINANCE'; 71 | 72 | 73 | select dpt_id, dpt_name from department where dpt_id = 3 ; 74 | 75 | select dpt_id, dpt_name from department where dpt_id in(1 ,3,5) ; 76 | 77 | select first_name,last_name from employees where emp_id = 5; 78 | 79 | select first_name,last_name from employees where first_name like "j%"; 80 | 81 | select first_name,last_name from employees where last_name like "%h"; 82 | 83 | select first_name,last_name, hire_date from employees where last_name like "%_h_%"; 84 | 85 | select first_name,last_name from employees where last_name != 'MARKETING'; 86 | 87 | select first_name,last_name from employees where hire_date > '2020-01-15'; 88 | 89 | select dpt_id , count(*) as num_employees from employees group by dpt_id; 90 | 91 | select min(hire_date) as Hire_Date from employees group by hire_date; 92 | -------------------------------------------------------------------------------- /Sub Quries/sub_queries_2.sql: -------------------------------------------------------------------------------- 1 | create database joins_demo_2; 2 | 3 | use joins_demo_2; 4 | 5 | CREATE TABLE dataofcustomer 6 | ( 7 | custid VARCHAR(6) PRIMARY KEY, 8 | fname VARCHAR(50), 9 | mname VARCHAR(30), 10 | ltname VARCHAR(30), 11 | city VARCHAR(15), 12 | age int(10), 13 | mobileno VARCHAR(10), 14 | occupation VARCHAR(10), 15 | dob DATE 16 | 17 | ); 18 | 19 | show tables; 20 | 21 | INSERT INTO dataofcustomer VALUES('C00001','Ramesh','Chandra','Sharma','Delhi',45,'9543198345','Service','1976-12-06'); 22 | INSERT INTO dataofcustomer VALUES('C00002','Avinash','Sunder','Minha','Delhi',32,'9876532109','Service','1974-10-16'); 23 | INSERT INTO dataofcustomer VALUES('C00003','Rahul',null,'Rastogi','Delhi',24,'9765178901','Student','1981-09-26'); 24 | INSERT INTO dataofcustomer VALUES('C00004','Parul',null,'Gandhi','Delhi',46,'9876532109','Housewife','1976-11-03'); 25 | INSERT INTO dataofcustomer VALUES('C00005','Naveen','Chandra','Aedekar','Mumbai',23,'8976523190','Service','1976-09-19'); 26 | INSERT INTO dataofcustomer VALUES('C00006','Chitresh',null,'Barwe','Mumbai',18,'7651298321','Student','1992-11-06'); 27 | INSERT INTO dataofcustomer VALUES('C00007','Amit','Kumar','Borkar','Mumbai',76,'9875189761','Student','1981-09-06'); 28 | INSERT INTO dataofcustomer VALUES('C00008','Nisha',null,'Damle','Mumbai',43,'7954198761','Service','1975-12-03'); 29 | INSERT INTO dataofcustomer VALUES('C00009','Abhishek',null,'Dutta','Kolkata',67,'9856198761','Service','1973-05-22'); 30 | INSERT INTO dataofcustomer VALUES('C00010','Shankar',null,'Nair','Chennai',90,'8765489076','Service','1976-07-12'); 31 | 32 | show tables; 33 | 34 | CREATE TABLE account 35 | ( 36 | acnumber VARCHAR(6), 37 | custid VARCHAR(6), 38 | bid VARCHAR(6), 39 | opening_balance INT(7), 40 | aod DATE, 41 | atype VARCHAR(10), 42 | astatus VARCHAR(10), 43 | CONSTRAINT account_acnumber_pk PRIMARY KEY(acnumber), 44 | CONSTRAINT account_custid_fk FOREIGN KEY(custid) REFERENCES dataofcustomer(custid) 45 | 46 | 47 | ); 48 | 49 | INSERT INTO account VALUES('A00001','C00001','B00001',1000,'2012-12-15','Saving','Active'); 50 | INSERT INTO account VALUES('A00002','C00002','B00001',1000,'2012-06-12','Saving','Active'); 51 | INSERT INTO account VALUES('A00003','C00003','B00002',1000,'2012-05-17','Saving','Active'); 52 | INSERT INTO account VALUES('A00004','C00002','B00005',1000,'2013-01-27','Saving','Active'); 53 | INSERT INTO account VALUES('A00005','C00006','B00006',1000,'2012-12-17','Saving','Active'); 54 | INSERT INTO account VALUES('A00006','C00007','B00007',1000,'2010-08-12','Saving','Suspended'); 55 | INSERT INTO account VALUES('A00007','C00007','B00001',1000,'2012-10-02','Saving','Active'); 56 | INSERT INTO account VALUES('A00008','C00001','B00003',1000,'2009-11-09','Saving','Terminated'); 57 | INSERT INTO account VALUES('A00009','C00003','B00007',1000,'2008-11-30','Saving','Terminated'); 58 | INSERT INTO account VALUES('A00010','C00004','B00002',1000,'2013-03-01','Saving','Active'); 59 | 60 | show tables; 61 | select count( *) from dataofcustomer; 62 | 63 | select * from dataofcustomer where custid in (select custid from dataofcustomer where age>=45); 64 | 65 | SELECT fname, city,age FROM dataofcustomer 66 | WHERE custid IN (SELECT custid FROM dataofcustomer); 67 | 68 | 69 | SELECT fname, city,age FROM dataofcustomer 70 | WHERE custid IN (SELECT custid FROM account); 71 | 72 | 73 | SELECT * FROM dataofcustomer 74 | WHERE custid IN (SELECT custid FROM dataofcustomer 75 | WHERE age > 45); 76 | 77 | 78 | SELECT* FROM dataofcustomer 79 | WHERE age = (SELECT MAX(age) FROM dataofcustomer); 80 | 81 | SELECT fname, city, age 82 | FROM dataofcustomer 83 | ORDER BY 84 | (CASE 85 | WHEN City IS NULL THEN "no city" 86 | ELSE City 87 | END); -------------------------------------------------------------------------------- /Joins/join_revise.table.sql: -------------------------------------------------------------------------------- 1 | create database joins_demo_1; 2 | 3 | use joins_demo_1; 4 | 5 | CREATE TABLE dataofcustomer 6 | ( 7 | custid VARCHAR(6) PRIMARY KEY, 8 | fname VARCHAR(50), 9 | mname VARCHAR(30), 10 | ltname VARCHAR(30), 11 | city VARCHAR(15), 12 | age int(10), 13 | mobileno VARCHAR(10), 14 | occupation VARCHAR(10), 15 | dob DATE 16 | 17 | ); 18 | 19 | show tables; 20 | 21 | INSERT INTO dataofcustomer VALUES('C00001','Ehtijad','ali','Shah','Thoi','21','9543198345','Service','2002-12-06'); 22 | INSERT INTO dataofcustomer VALUES('C00002','Muzafar','Ali','Shah','Thoi','22','9876532109','Service','1974-10-16'); 23 | INSERT INTO dataofcustomer VALUES('C00003','Sartaj',null,'Taj','Thoi','23','9765178901','Student','1981-09-26'); 24 | INSERT INTO dataofcustomer VALUES('C00004','Aliyan',null,'Shah','Thoi','21','9876532109','Housewife','1976-11-03'); 25 | INSERT INTO dataofcustomer VALUES('C00005','Hilbee','Badar','Muneem','Barkolti','22','8976523190','Service','1976-09-19'); 26 | INSERT INTO dataofcustomer VALUES('C00006','Fakhar',null,'Abass','Barkilti','20','7651298321','Student','1992-11-06'); 27 | INSERT INTO dataofcustomer VALUES('C00007','Sami','Ullah','Mughal','Barkilti','19','9875189761','Student','1981-09-06'); 28 | INSERT INTO dataofcustomer VALUES('C00008','Basharat',null,'Husain','Yasin','31','7954198761','Service','1975-12-03'); 29 | INSERT INTO dataofcustomer VALUES('C00009','Asair',null,'Malik','Thous','22','9856198761','Service','1973-05-22'); 30 | INSERT INTO dataofcustomer VALUES('C00010','Azhar',null,'Qureshii','Thous','18','8765489076','Service','1976-07-12'); 31 | 32 | show tables; 33 | 34 | CREATE TABLE account 35 | ( 36 | acnumber VARCHAR(6), 37 | custid VARCHAR(6), 38 | bid VARCHAR(6), 39 | opening_balance INT(7), 40 | aod DATE, 41 | atype VARCHAR(10), 42 | astatus VARCHAR(10), 43 | CONSTRAINT account_acnumber_pk PRIMARY KEY(acnumber), 44 | CONSTRAINT account_custid_fk FOREIGN KEY(custid) REFERENCES dataofcustomer(custid) 45 | 46 | 47 | ); 48 | 49 | INSERT INTO account VALUES('A00001','C00001','B00001',1000,'2012-12-15','Saving','Active'); 50 | INSERT INTO account VALUES('A00002','C00002','B00001',1000,'2012-06-12','Saving','Active'); 51 | INSERT INTO account VALUES('A00003','C00003','B00002',1000,'2012-05-17','Saving','Active'); 52 | INSERT INTO account VALUES('A00004','C00002','B00005',1000,'2013-01-27','Saving','Active'); 53 | INSERT INTO account VALUES('A00005','C00006','B00006',1000,'2012-12-17','Saving','Active'); 54 | INSERT INTO account VALUES('A00006','C00007','B00007',1000,'2010-08-12','Saving','Suspended'); 55 | INSERT INTO account VALUES('A00007','C00007','B00001',1000,'2012-10-02','Saving','Active'); 56 | INSERT INTO account VALUES('A00008','C00001','B00003',1000,'2009-11-09','Saving','Terminated'); 57 | INSERT INTO account VALUES('A00009','C00003','B00007',1000,'2008-11-30','Saving','Terminated'); 58 | INSERT INTO account VALUES('A00010','C00004','B00002',1000,'2013-03-01','Saving','Active'); 59 | 60 | show tables; 61 | select count( *) from dataofcustomer; 62 | 63 | select fname,acnumber from dataofcustomer inner join account on dataofcustomer.custid = account.custid; 64 | 65 | 66 | 67 | select fname,acnumber from dataofcustomer right join account on dataofcustomer.custid = account.custid; 68 | 69 | 70 | 71 | 72 | select fname,acnumber from dataofcustomer left join account on dataofcustomer.custid = account.custid; 73 | 74 | SELECT dataofcustomer.fname, account.acnumber 75 | FROM dataofcustomer 76 | LEFT JOIN account ON dataofcustomer.custid = account.custid 77 | 78 | UNION 79 | 80 | SELECT dataofcustomer.fname, account.acnumber 81 | FROM dataofcustomer 82 | RIGHT JOIN account ON dataofcustomer.custid = account.custid; 83 | 84 | 85 | 86 | SELECT * FROM dataofcustomer 87 | LEFT JOIN account ON dataofcustomer.custid = account.custid 88 | UNION 89 | SELECT * FROM dataofcustomer 90 | RIGHT JOIN account ON dataofcustomer.custid = account.custid -------------------------------------------------------------------------------- /Joins/left_join_table.sql: -------------------------------------------------------------------------------- 1 | create database my_demo_database2; 2 | 3 | use my_demo_database2; 4 | 5 | CREATE TABLE customer 6 | ( 7 | custid VARCHAR(6), 8 | fname VARCHAR(30), 9 | mname VARCHAR(30), 10 | ltname VARCHAR(30), 11 | city VARCHAR(15), 12 | mobileno VARCHAR(10), 13 | occupation VARCHAR(10), 14 | dob DATE, 15 | CONSTRAINT customer_custid_pk PRIMARY KEY(custid) 16 | ); 17 | 18 | show tables; 19 | 20 | CREATE TABLE branch 21 | ( 22 | bid VARCHAR(6), 23 | bname VARCHAR(30), 24 | bcity VARCHAR(30), 25 | CONSTRAINT branch_bid_pk PRIMARY KEY(bid) 26 | ); 27 | 28 | show tables; 29 | CREATE TABLE account 30 | ( 31 | acnumber VARCHAR(6), 32 | custid VARCHAR(6), 33 | bid VARCHAR(6), 34 | opening_balance INT(7), 35 | aod DATE, 36 | atype VARCHAR(10), 37 | astatus VARCHAR(10), 38 | CONSTRAINT account_acnumber_pk PRIMARY KEY(acnumber), 39 | CONSTRAINT account_custid_fk FOREIGN KEY(custid) REFERENCES customer(custid), 40 | CONSTRAINT account_bid_fk FOREIGN KEY(bid) REFERENCES branch(bid) 41 | ); 42 | 43 | show tables; 44 | 45 | select * from customer; 46 | 47 | INSERT INTO customer VALUES('C00001','Ehtijad','ali','Shah','Thoi','9543198345','Service','2002-12-06'); 48 | INSERT INTO customer VALUES('C00002','Muzafar','Ali','Shah','Thoi','9876532109','Service','1974-10-16'); 49 | INSERT INTO customer VALUES('C00003','Sartaj',null,'Taj','Thoi','9765178901','Student','1981-09-26'); 50 | INSERT INTO customer VALUES('C00004','Aliyan',null,'Shah','Thoi','9876532109','Housewife','1976-11-03'); 51 | INSERT INTO customer VALUES('C00005','Hilbee','Badar','Muneem','Barkolti','8976523190','Service','1976-09-19'); 52 | INSERT INTO customer VALUES('C00006','Fakhar',null,'Abass','Barkilti','7651298321','Student','1992-11-06'); 53 | INSERT INTO customer VALUES('C00007','Sami','Ullah','Mughal','Barkilti','9875189761','Student','1981-09-06'); 54 | INSERT INTO customer VALUES('C00008','Basharat',null,'Husain','Yasin','7954198761','Service','1975-12-03'); 55 | INSERT INTO customer VALUES('C00009','Asair',null,'Malik','Thous','9856198761','Service','1973-05-22'); 56 | INSERT INTO customer VALUES('C00010','Azhar',null,'Qureshii','Thous','8765489076','Service','1976-07-12'); 57 | 58 | select * from customer; 59 | 60 | 61 | INSERT INTO branch VALUES('B00001','Thoi Harp','Thoi'); 62 | INSERT INTO branch VALUES('B00002','Thoi Harp','Thoi'); 63 | INSERT INTO branch VALUES('B00003','Thoi Draskin','Thoi'); 64 | INSERT INTO branch VALUES('B00004','Thoi Nialti','Thoi'); 65 | INSERT INTO branch VALUES('B00005','Barkolti Center','Barkoti'); 66 | INSERT INTO branch VALUES('B00006','Barkolti Main','Barkolti'); 67 | INSERT INTO branch VALUES('B00007','Center Yasin','Yasin'); 68 | INSERT INTO branch VALUES('B00008','Thous Center','Thous'); 69 | INSERT INTO branch VALUES('B00009','Thous Center','Thous'); 70 | 71 | select * from branch; 72 | 73 | INSERT INTO account VALUES('A00001','C00001','B00001',1000,'2012-12-15','Saving','Active'); 74 | INSERT INTO account VALUES('A00002','C00002','B00001',1000,'2012-06-12','Saving','Active'); 75 | INSERT INTO account VALUES('A00003','C00003','B00002',1000,'2012-05-17','Saving','Active'); 76 | INSERT INTO account VALUES('A00004','C00002','B00005',1000,'2013-01-27','Saving','Active'); 77 | INSERT INTO account VALUES('A00005','C00006','B00006',1000,'2012-12-17','Saving','Active'); 78 | INSERT INTO account VALUES('A00006','C00007','B00007',1000,'2010-08-12','Saving','Suspended'); 79 | INSERT INTO account VALUES('A00007','C00007','B00001',1000,'2012-10-02','Saving','Active'); 80 | INSERT INTO account VALUES('A00008','C00001','B00003',1000,'2009-11-09','Saving','Terminated'); 81 | INSERT INTO account VALUES('A00009','C00003','B00007',1000,'2008-11-30','Saving','Terminated'); 82 | INSERT INTO account VALUES('A00010','C00004','B00002',1000,'2013-03-01','Saving','Active'); 83 | 84 | select * from account; 85 | 86 | select count(custid) from customer; 87 | select count(acnumber) from account; 88 | 89 | 90 | SELECT * FROM account 91 | LEFT JOIN customer 92 | ON account.custid = customer.custid; 93 | 94 | show tables; 95 | 96 | 97 | SELECT * FROM customer 98 | right JOIN account 99 | ON account.custid = customer.custid; 100 | 101 | 102 | SELECT * FROM account 103 | LEFT JOIN customer ON account.custid = customer.custid 104 | UNION 105 | SELECT * FROM account 106 | RIGHT JOIN customer ON account.custid = customer.custid; 107 | 108 | CREATE TABLE student 109 | ( 110 | student_id VARCHAR(6), 111 | name VARCHAR(30), 112 | course_id VARCHAR(30), 113 | duration int(4) 114 | ); 115 | 116 | drop table student; 117 | INSERT INTO student VALUES('1','Asif',2,4); 118 | INSERT INTO student VALUES('2','Atul',1,4); 119 | INSERT INTO student VALUES('1','Asif',1,4); 120 | INSERT INTO student VALUES('2','Atul',3,4); 121 | INSERT INTO student VALUES('5','Jasmin',1,4); 122 | INSERT INTO student VALUES('6','Saima',1,4); 123 | 124 | SELECT s1.student_id, s1.name,s1.course_id 125 | FROM student AS s1, student s2 126 | WHERE s1.student_id=s2.student_id and s1.course_id<>s2.course_id ; 127 | 128 | 129 | -------------------------------------------------------------------------------- /Joins/join_tables.sql: -------------------------------------------------------------------------------- 1 | create database mydemo_final; 2 | 3 | use mydemo_final; 4 | 5 | show tables; 6 | 7 | CREATE TABLE dataofcustomer 8 | ( 9 | custid VARCHAR(6) PRIMARY KEY, 10 | fname VARCHAR(50), 11 | mname VARCHAR(30), 12 | ltname VARCHAR(30), 13 | city VARCHAR(15), 14 | age int(10), 15 | mobileno VARCHAR(10), 16 | occupation VARCHAR(10), 17 | dob DATE 18 | 19 | ); 20 | 21 | show tables; 22 | 23 | INSERT INTO dataofcustomer VALUES('C00001','Ehtijad','ali','Shah','Thoi','21','9543198345','Service','2002-12-06'); 24 | INSERT INTO dataofcustomer VALUES('C00002','Muzafar','Ali','Shah','Thoi','22','9876532109','Service','1974-10-16'); 25 | INSERT INTO dataofcustomer VALUES('C00003','Sartaj',null,'Taj','Thoi','23','9765178901','Student','1981-09-26'); 26 | INSERT INTO dataofcustomer VALUES('C00004','Aliyan',null,'Shah','Thoi','21','9876532109','Housewife','1976-11-03'); 27 | INSERT INTO dataofcustomer VALUES('C00005','Hilbee','Badar','Muneem','Barkolti','22','8976523190','Service','1976-09-19'); 28 | INSERT INTO dataofcustomer VALUES('C00006','Fakhar',null,'Abass','Barkilti','20','7651298321','Student','1992-11-06'); 29 | INSERT INTO dataofcustomer VALUES('C00007','Sami','Ullah','Mughal','Barkilti','19','9875189761','Student','1981-09-06'); 30 | INSERT INTO dataofcustomer VALUES('C00008','Basharat',null,'Husain','Yasin','31','7954198761','Service','1975-12-03'); 31 | INSERT INTO dataofcustomer VALUES('C00009','Asair',null,'Malik','Thous','22','9856198761','Service','1973-05-22'); 32 | INSERT INTO dataofcustomer VALUES('C00010','Azhar',null,'Qureshii','Thous','18','8765489076','Service','1976-07-12'); 33 | 34 | show tables; 35 | 36 | select * from dataofcustomer; 37 | 38 | select min(age) from dataofcustomer; 39 | 40 | select fname from dataofcustomer where age = 18; 41 | select max(age) from dataofcustomer; 42 | select fname from dataofcustomer where age = 90; 43 | 44 | select count(*) from dataofcustomer; 45 | 46 | 47 | select count(age) as total_customer from dataofcustomer; 48 | 49 | select count(age) as customer_from_Delhi from dataofcustomer where city ="Delhi"; 50 | 51 | select avg(age) as average_age from dataofcustomer; 52 | 53 | select sum(age) as sum_of_age from dataofcustomer; 54 | select count(fname),city from dataofcustomer group by city; 55 | 56 | select count(fname),city from dataofcustomer group by city having count(fname)>2; 57 | 58 | select count(fname),city from dataofcustomer group by city having count(fname)=2; 59 | 60 | select count(fname),city from dataofcustomer group by city having count(fname)=1; 61 | 62 | select count(fname),city from dataofcustomer group by city having count(fname)>2; 63 | select count(fname),city from dataofcustomer group by city having count(fname)<2; 64 | 65 | select count(fname),city from dataofcustomer group by city having count(fname)!=4; 66 | 67 | 68 | CREATE TABLE customer 69 | ( 70 | custid VARCHAR(6), 71 | fname VARCHAR(30), 72 | mname VARCHAR(30), 73 | ltname VARCHAR(30), 74 | city VARCHAR(15), 75 | mobileno VARCHAR(10), 76 | occupation VARCHAR(10), 77 | dob DATE, 78 | CONSTRAINT customer_custid_pk PRIMARY KEY(custid) 79 | ); 80 | 81 | 82 | 83 | CREATE TABLE account 84 | ( 85 | acnumber VARCHAR(6), 86 | custid VARCHAR(6), 87 | bid VARCHAR(6), 88 | opening_balance INT(7), 89 | aod DATE, 90 | atype VARCHAR(10), 91 | astatus VARCHAR(10), 92 | CONSTRAINT account_acnumber_pk PRIMARY KEY(acnumber), 93 | CONSTRAINT account_custid_fk FOREIGN KEY(custid) REFERENCES dataofcustomer(custid) 94 | 95 | 96 | ); 97 | 98 | INSERT INTO account VALUES('A00001','C00001','B00001',1000,'2012-12-15','Saving','Active'); 99 | INSERT INTO account VALUES('A00002','C00002','B00001',1000,'2012-06-12','Saving','Active'); 100 | INSERT INTO account VALUES('A00003','C00003','B00002',1000,'2012-05-17','Saving','Active'); 101 | INSERT INTO account VALUES('A00004','C00002','B00005',1000,'2013-01-27','Saving','Active'); 102 | INSERT INTO account VALUES('A00005','C00006','B00006',1000,'2012-12-17','Saving','Active'); 103 | INSERT INTO account VALUES('A00006','C00007','B00007',1000,'2010-08-12','Saving','Suspended'); 104 | INSERT INTO account VALUES('A00007','C00007','B00001',1000,'2012-10-02','Saving','Active'); 105 | INSERT INTO account VALUES('A00008','C00001','B00003',1000,'2009-11-09','Saving','Terminated'); 106 | INSERT INTO account VALUES('A00009','C00003','B00007',1000,'2008-11-30','Saving','Terminated'); 107 | INSERT INTO account VALUES('A00010','C00004','B00002',1000,'2013-03-01','Saving','Active'); 108 | 109 | show tables; 110 | 111 | 112 | select * from account; 113 | 114 | 115 | select count(*), astatus from account group by astatus ; 116 | 117 | 118 | 119 | select count(*), astatus from account group by astatus having count(atype)=7; 120 | 121 | select count(*) from account; 122 | 123 | 124 | 125 | select count(*) from customer; 126 | select count(*) from account; 127 | select fname,acnumber from customer inner join account on customer.custid = account.custid; 128 | select count(fname) from customer inner join account on customer.custid = account.custid; 129 | 130 | 131 | select count(custid) from customer group by city; 132 | 133 | 134 | 135 | 136 | select * from dataofcustomer; 137 | 138 | 139 | 140 | select * from dataofcustomer where custid in (select custid from dataofcustomer where age>=45); 141 | 142 | CREATE TABLE customer 143 | ( 144 | custid VARCHAR(6) PRIMARY KEY, 145 | fname VARCHAR(50), 146 | mname VARCHAR(30), 147 | ltname VARCHAR(30), 148 | city VARCHAR(15), 149 | age int(10), 150 | mobileno VARCHAR(10), 151 | occupation VARCHAR(10), 152 | dob DATE 153 | 154 | ); 155 | 156 | drop table customer; 157 | show tables; 158 | 159 | INSERT INTO customer 160 | SELECT * FROM dataofcustomer 161 | WHERE age>=45; 162 | 163 | 164 | select * from customer; 165 | 166 | select * from dataofcustomer; 167 | 168 | UPDATE customer 169 | SET age = 47 170 | WHERE age in (select age from dataofcustomer where age=45); 171 | 172 | 173 | DELETE FROM customer 174 | WHERE AGE IN (SELECT AGE FROM dataofCUSTOMER 175 | WHERE AGE >= 27 ); 176 | 177 | 178 | select * from dataofcustomer; 179 | select * from democustomer; 180 | 181 | SELECT * FROM customer 182 | WHERE custid IN (SELECT custid FROM customer 183 | WHERE age>25); 184 | 185 | 186 | SELECT custid,fname FROM customer 187 | WHERE age>25; 188 | 189 | 190 | select * from dataofcustomer; 191 | 192 | select custid from account where custid = any (select custid from dataofcustomer where city = 'Delhi'); 193 | 194 | select custid from account where custid = all (select custid from dataofcustomer where city = 'Delhi'); 195 | 196 | 197 | select custid from dataofcustomer where city = 'Delhi'; 198 | 199 | select * from account; 200 | 201 | 202 | SELECT custid, fname,age, 203 | CASE 204 | WHEN age > 30 THEN 'The age is greater than 30' 205 | WHEN age = 30 THEN 'The age is 30' 206 | ELSE 'The age is not group of 30' 207 | END AS Age 208 | FROM dataofcustomer; 209 | 210 | 211 | SELECT fname, city, age 212 | FROM dataofcustomer 213 | ORDER BY 214 | (CASE 215 | WHEN City IS NULL THEN "no city" 216 | ELSE City 217 | END); 218 | 219 | 220 | -------------------------------------------------------------------------------- /Sub Quries/sub_queries.sql: -------------------------------------------------------------------------------- 1 | create database hr2; 2 | use hr2; 3 | 4 | CREATE TABLE IF NOT EXISTS `countries` ( 5 | `COUNTRY_ID` varchar(2) NOT NULL, 6 | `COUNTRY_NAME` varchar(40) DEFAULT NULL, 7 | `REGION_ID` decimal(10,0) DEFAULT NULL, 8 | PRIMARY KEY (`COUNTRY_ID`), 9 | KEY `COUNTR_REG_FK` (`REGION_ID`) 10 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 11 | 12 | -- 13 | -- Dumping data for table `countries` 14 | -- 15 | 16 | INSERT INTO `countries` (`COUNTRY_ID`, `COUNTRY_NAME`, `REGION_ID`) VALUES 17 | ('AR', 'Argentina', '2'), 18 | ('AU', 'Australia', '3'), 19 | ('BE', 'Belgium', '1'), 20 | ('BR', 'Brazil', '2'), 21 | ('CA', 'Canada', '2'), 22 | ('CH', 'Switzerland', '1'), 23 | ('CN', 'China', '3'), 24 | ('DE', 'Germany', '1'), 25 | ('DK', 'Denmark', '1'), 26 | ('EG', 'Egypt', '4'), 27 | ('FR', 'France', '1'), 28 | ('HK', 'HongKong', '3'), 29 | ('IL', 'Israel', '4'), 30 | ('IN', 'India', '3'), 31 | ('IT', 'Italy', '1'), 32 | ('JP', 'Japan', '3'), 33 | ('KW', 'Kuwait', '4'), 34 | ('MX', 'Mexico', '2'), 35 | ('NG', 'Nigeria', '4'), 36 | ('NL', 'Netherlands', '1'), 37 | ('SG', 'Singapore', '3'), 38 | ('UK', 'United Kingdom', '1'), 39 | ('US', 'United States of America', '2'), 40 | ('ZM', 'Zambia', '4'), 41 | ('ZW', 'Zimbabwe', '4'); 42 | 43 | -- -------------------------------------------------------- 44 | 45 | -- 46 | -- Table structure for table `departments` 47 | -- 48 | 49 | CREATE TABLE IF NOT EXISTS `departments` ( 50 | `DEPARTMENT_ID` decimal(4,0) NOT NULL DEFAULT '0', 51 | `DEPARTMENT_NAME` varchar(30) NOT NULL, 52 | `MANAGER_ID` decimal(6,0) DEFAULT NULL, 53 | `LOCATION_ID` decimal(4,0) DEFAULT NULL, 54 | PRIMARY KEY (`DEPARTMENT_ID`), 55 | KEY `DEPT_MGR_FK` (`MANAGER_ID`), 56 | KEY `DEPT_LOCATION_IX` (`LOCATION_ID`) 57 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 58 | 59 | -- 60 | -- Dumping data for table `departments` 61 | -- 62 | 63 | INSERT INTO `departments` (`DEPARTMENT_ID`, `DEPARTMENT_NAME`, `MANAGER_ID`, `LOCATION_ID`) VALUES 64 | ('10', 'Administration', '200', '1700'), 65 | ('20', 'Marketing', '201', '1800'), 66 | ('30', 'Purchasing', '114', '1700'), 67 | ('40', 'Human Resources', '203', '2400'), 68 | ('50', 'Shipping', '121', '1500'), 69 | ('60', 'IT', '103', '1400'), 70 | ('70', 'Public Relations', '204', '2700'), 71 | ('80', 'Sales', '145', '2500'), 72 | ('90', 'Executive', '100', '1700'), 73 | ('100', 'Finance', '108', '1700'), 74 | ('110', 'Accounting', '205', '1700'), 75 | ('120', 'Treasury', '0', '1700'), 76 | ('130', 'Corporate Tax', '0', '1700'), 77 | ('140', 'Control And Credit', '0', '1700'), 78 | ('150', 'Shareholder Services', '0', '1700'), 79 | ('160', 'Benefits', '0', '1700'), 80 | ('170', 'Manufacturing', '0', '1700'), 81 | ('180', 'Construction', '0', '1700'), 82 | ('190', 'Contracting', '0', '1700'), 83 | ('200', 'Operations', '0', '1700'), 84 | ('210', 'IT Support', '0', '1700'), 85 | ('220', 'NOC', '0', '1700'), 86 | ('230', 'IT Helpdesk', '0', '1700'), 87 | ('240', 'Government Sales', '0', '1700'), 88 | ('250', 'Retail Sales', '0', '1700'), 89 | ('260', 'Recruiting', '0', '1700'), 90 | ('270', 'Payroll', '0', '1700'); 91 | 92 | -- -------------------------------------------------------- 93 | 94 | -- 95 | -- Table structure for table `employees` 96 | -- 97 | 98 | CREATE TABLE IF NOT EXISTS `employees` ( 99 | `EMPLOYEE_ID` decimal(6,0) NOT NULL DEFAULT '0', 100 | `FIRST_NAME` varchar(20) DEFAULT NULL, 101 | `LAST_NAME` varchar(25) NOT NULL, 102 | `EMAIL` varchar(25) NOT NULL, 103 | `PHONE_NUMBER` varchar(20) DEFAULT NULL, 104 | `HIRE_DATE` date NOT NULL, 105 | `JOB_ID` varchar(10) NOT NULL, 106 | `SALARY` decimal(8,2) DEFAULT NULL, 107 | `COMMISSION_PCT` decimal(2,2) DEFAULT NULL, 108 | `MANAGER_ID` decimal(6,0) DEFAULT NULL, 109 | `DEPARTMENT_ID` decimal(4,0) DEFAULT NULL, 110 | PRIMARY KEY (`EMPLOYEE_ID`), 111 | UNIQUE KEY `EMP_EMAIL_UK` (`EMAIL`), 112 | KEY `EMP_DEPARTMENT_IX` (`DEPARTMENT_ID`), 113 | KEY `EMP_JOB_IX` (`JOB_ID`), 114 | KEY `EMP_MANAGER_IX` (`MANAGER_ID`), 115 | KEY `EMP_NAME_IX` (`LAST_NAME`,`FIRST_NAME`) 116 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 117 | 118 | -- 119 | -- Dumping data for table `employees` 120 | -- 121 | 122 | INSERT INTO `employees` (`EMPLOYEE_ID`, `FIRST_NAME`, `LAST_NAME`, `EMAIL`, `PHONE_NUMBER`, `HIRE_DATE`, `JOB_ID`, `SALARY`, `COMMISSION_PCT`, `MANAGER_ID`, `DEPARTMENT_ID`) VALUES 123 | ('100', 'Steven', 'King', 'SKING', '515.123.4567', '1987-06-17', 'AD_PRES', '24000.00', '0.00', '0', '90'), 124 | ('101', 'Neena', 'Kochhar', 'NKOCHHAR', '515.123.4568', '1987-06-18', 'AD_VP', '17000.00', '0.00', '100', '90'), 125 | ('102', 'Lex', 'De Haan', 'LDEHAAN', '515.123.4569', '1987-06-19', 'AD_VP', '17000.00', '0.00', '100', '90'), 126 | ('103', 'Alexander', 'Hunold', 'AHUNOLD', '590.423.4567', '1987-06-20', 'IT_PROG', '9000.00', '0.00', '102', '60'), 127 | ('104', 'Bruce', 'Ernst', 'BERNST', '590.423.4568', '1987-06-21', 'IT_PROG', '6000.00', '0.00', '103', '60'), 128 | ('105', 'David', 'Austin', 'DAUSTIN', '590.423.4569', '1987-06-22', 'IT_PROG', '4800.00', '0.00', '103', '60'), 129 | ('106', 'Valli', 'Pataballa', 'VPATABAL', '590.423.4560', '1987-06-23', 'IT_PROG', '4800.00', '0.00', '103', '60'), 130 | ('107', 'Diana', 'Lorentz', 'DLORENTZ', '590.423.5567', '1987-06-24', 'IT_PROG', '4200.00', '0.00', '103', '60'), 131 | ('108', 'Nancy', 'Greenberg', 'NGREENBE', '515.124.4569', '1987-06-25', 'FI_MGR', '12000.00', '0.00', '101', '100'), 132 | ('109', 'Daniel', 'Faviet', 'DFAVIET', '515.124.4169', '1987-06-26', 'FI_ACCOUNT', '9000.00', '0.00', '108', '100'), 133 | ('110', 'John', 'Chen', 'JCHEN', '515.124.4269', '1987-06-27', 'FI_ACCOUNT', '8200.00', '0.00', '108', '100'), 134 | ('111', 'Ismael', 'Sciarra', 'ISCIARRA', '515.124.4369', '1987-06-28', 'FI_ACCOUNT', '7700.00', '0.00', '108', '100'), 135 | ('112', 'Jose Manuel', 'Urman', 'JMURMAN', '515.124.4469', '1987-06-29', 'FI_ACCOUNT', '7800.00', '0.00', '108', '100'), 136 | ('113', 'Luis', 'Popp', 'LPOPP', '515.124.4567', '1987-06-30', 'FI_ACCOUNT', '6900.00', '0.00', '108', '100'), 137 | ('114', 'Den', 'Raphaely', 'DRAPHEAL', '515.127.4561', '1987-07-01', 'PU_MAN', '11000.00', '0.00', '100', '30'), 138 | ('115', 'Alexander', 'Khoo', 'AKHOO', '515.127.4562', '1987-07-02', 'PU_CLERK', '3100.00', '0.00', '114', '30'), 139 | ('116', 'Shelli', 'Baida', 'SBAIDA', '515.127.4563', '1987-07-03', 'PU_CLERK', '2900.00', '0.00', '114', '30'), 140 | ('117', 'Sigal', 'Tobias', 'STOBIAS', '515.127.4564', '1987-07-04', 'PU_CLERK', '2800.00', '0.00', '114', '30'), 141 | ('118', 'Guy', 'Himuro', 'GHIMURO', '515.127.4565', '1987-07-05', 'PU_CLERK', '2600.00', '0.00', '114', '30'), 142 | ('119', 'Karen', 'Colmenares', 'KCOLMENA', '515.127.4566', '1987-07-06', 'PU_CLERK', '2500.00', '0.00', '114', '30'), 143 | ('120', 'Matthew', 'Weiss', 'MWEISS', '650.123.1234', '1987-07-07', 'ST_MAN', '8000.00', '0.00', '100', '50'), 144 | ('121', 'Adam', 'Fripp', 'AFRIPP', '650.123.2234', '1987-07-08', 'ST_MAN', '8200.00', '0.00', '100', '50'), 145 | ('122', 'Payam', 'Kaufling', 'PKAUFLIN', '650.123.3234', '1987-07-09', 'ST_MAN', '7900.00', '0.00', '100', '50'), 146 | ('123', 'Shanta', 'Vollman', 'SVOLLMAN', '650.123.4234', '1987-07-10', 'ST_MAN', '6500.00', '0.00', '100', '50'), 147 | ('124', 'Kevin', 'Mourgos', 'KMOURGOS', '650.123.5234', '1987-07-11', 'ST_MAN', '5800.00', '0.00', '100', '50'), 148 | ('125', 'Julia', 'Nayer', 'JNAYER', '650.124.1214', '1987-07-12', 'ST_CLERK', '3200.00', '0.00', '120', '50'), 149 | ('126', 'Irene', 'Mikkilineni', 'IMIKKILI', '650.124.1224', '1987-07-13', 'ST_CLERK', '2700.00', '0.00', '120', '50'), 150 | ('127', 'James', 'Landry', 'JLANDRY', '650.124.1334', '1987-07-14', 'ST_CLERK', '2400.00', '0.00', '120', '50'), 151 | ('128', 'Steven', 'Markle', 'SMARKLE', '650.124.1434', '1987-07-15', 'ST_CLERK', '2200.00', '0.00', '120', '50'), 152 | ('129', 'Laura', 'Bissot', 'LBISSOT', '650.124.5234', '1987-07-16', 'ST_CLERK', '3300.00', '0.00', '121', '50'), 153 | ('130', 'Mozhe', 'Atkinson', 'MATKINSO', '650.124.6234', '1987-07-17', 'ST_CLERK', '2800.00', '0.00', '121', '50'), 154 | ('131', 'James', 'Marlow', 'JAMRLOW', '650.124.7234', '1987-07-18', 'ST_CLERK', '2500.00', '0.00', '121', '50'), 155 | ('132', 'TJ', 'Olson', 'TJOLSON', '650.124.8234', '1987-07-19', 'ST_CLERK', '2100.00', '0.00', '121', '50'), 156 | ('133', 'Jason', 'Mallin', 'JMALLIN', '650.127.1934', '1987-07-20', 'ST_CLERK', '3300.00', '0.00', '122', '50'), 157 | ('134', 'Michael', 'Rogers', 'MROGERS', '650.127.1834', '1987-07-21', 'ST_CLERK', '2900.00', '0.00', '122', '50'), 158 | ('135', 'Ki', 'Gee', 'KGEE', '650.127.1734', '1987-07-22', 'ST_CLERK', '2400.00', '0.00', '122', '50'), 159 | ('136', 'Hazel', 'Philtanker', 'HPHILTAN', '650.127.1634', '1987-07-23', 'ST_CLERK', '2200.00', '0.00', '122', '50'), 160 | ('137', 'Renske', 'Ladwig', 'RLADWIG', '650.121.1234', '1987-07-24', 'ST_CLERK', '3600.00', '0.00', '123', '50'), 161 | ('138', 'Stephen', 'Stiles', 'SSTILES', '650.121.2034', '1987-07-25', 'ST_CLERK', '3200.00', '0.00', '123', '50'), 162 | ('139', 'John', 'Seo', 'JSEO', '650.121.2019', '1987-07-26', 'ST_CLERK', '2700.00', '0.00', '123', '50'), 163 | ('140', 'Joshua', 'Patel', 'JPATEL', '650.121.1834', '1987-07-27', 'ST_CLERK', '2500.00', '0.00', '123', '50'), 164 | ('141', 'Trenna', 'Rajs', 'TRAJS', '650.121.8009', '1987-07-28', 'ST_CLERK', '3500.00', '0.00', '124', '50'), 165 | ('142', 'Curtis', 'Davies', 'CDAVIES', '650.121.2994', '1987-07-29', 'ST_CLERK', '3100.00', '0.00', '124', '50'), 166 | ('143', 'Randall', 'Matos', 'RMATOS', '650.121.2874', '1987-07-30', 'ST_CLERK', '2600.00', '0.00', '124', '50'), 167 | ('144', 'Peter', 'Vargas', 'PVARGAS', '650.121.2004', '1987-07-31', 'ST_CLERK', '2500.00', '0.00', '124', '50'), 168 | ('145', 'John', 'Russell', 'JRUSSEL', '011.44.1344.429268', '1987-08-01', 'SA_MAN', '14000.00', '0.40', '100', '80'), 169 | ('146', 'Karen', 'Partners', 'KPARTNER', '011.44.1344.467268', '1987-08-02', 'SA_MAN', '13500.00', '0.30', '100', '80'), 170 | ('147', 'Alberto', 'Errazuriz', 'AERRAZUR', '011.44.1344.429278', '1987-08-03', 'SA_MAN', '12000.00', '0.30', '100', '80'), 171 | ('148', 'Gerald', 'Cambrault', 'GCAMBRAU', '011.44.1344.619268', '1987-08-04', 'SA_MAN', '11000.00', '0.30', '100', '80'), 172 | ('149', 'Eleni', 'Zlotkey', 'EZLOTKEY', '011.44.1344.429018', '1987-08-05', 'SA_MAN', '10500.00', '0.20', '100', '80'), 173 | ('150', 'Peter', 'Tucker', 'PTUCKER', '011.44.1344.129268', '1987-08-06', 'SA_REP', '10000.00', '0.30', '145', '80'), 174 | ('151', 'David', 'Bernstein', 'DBERNSTE', '011.44.1344.345268', '1987-08-07', 'SA_REP', '9500.00', '0.25', '145', '80'), 175 | ('152', 'Peter', 'Hall', 'PHALL', '011.44.1344.478968', '1987-08-08', 'SA_REP', '9000.00', '0.25', '145', '80'), 176 | ('153', 'Christopher', 'Olsen', 'COLSEN', '011.44.1344.498718', '1987-08-09', 'SA_REP', '8000.00', '0.20', '145', '80'), 177 | ('154', 'Nanette', 'Cambrault', 'NCAMBRAU', '011.44.1344.987668', '1987-08-10', 'SA_REP', '7500.00', '0.20', '145', '80'), 178 | ('155', 'Oliver', 'Tuvault', 'OTUVAULT', '011.44.1344.486508', '1987-08-11', 'SA_REP', '7000.00', '0.15', '145', '80'), 179 | ('156', 'Janette', 'King', 'JKING', '011.44.1345.429268', '1987-08-12', 'SA_REP', '10000.00', '0.35', '146', '80'), 180 | ('157', 'Patrick', 'Sully', 'PSULLY', '011.44.1345.929268', '1987-08-13', 'SA_REP', '9500.00', '0.35', '146', '80'), 181 | ('158', 'Allan', 'McEwen', 'AMCEWEN', '011.44.1345.829268', '1987-08-14', 'SA_REP', '9000.00', '0.35', '146', '80'), 182 | ('159', 'Lindsey', 'Smith', 'LSMITH', '011.44.1345.729268', '1987-08-15', 'SA_REP', '8000.00', '0.30', '146', '80'), 183 | ('160', 'Louise', 'Doran', 'LDORAN', '011.44.1345.629268', '1987-08-16', 'SA_REP', '7500.00', '0.30', '146', '80'), 184 | ('161', 'Sarath', 'Sewall', 'SSEWALL', '011.44.1345.529268', '1987-08-17', 'SA_REP', '7000.00', '0.25', '146', '80'), 185 | ('162', 'Clara', 'Vishney', 'CVISHNEY', '011.44.1346.129268', '1987-08-18', 'SA_REP', '10500.00', '0.25', '147', '80'), 186 | ('163', 'Danielle', 'Greene', 'DGREENE', '011.44.1346.229268', '1987-08-19', 'SA_REP', '9500.00', '0.15', '147', '80'), 187 | ('164', 'Mattea', 'Marvins', 'MMARVINS', '011.44.1346.329268', '1987-08-20', 'SA_REP', '7200.00', '0.10', '147', '80'), 188 | ('165', 'David', 'Lee', 'DLEE', '011.44.1346.529268', '1987-08-21', 'SA_REP', '6800.00', '0.10', '147', '80'), 189 | ('166', 'Sundar', 'Ande', 'SANDE', '011.44.1346.629268', '1987-08-22', 'SA_REP', '6400.00', '0.10', '147', '80'), 190 | ('167', 'Amit', 'Banda', 'ABANDA', '011.44.1346.729268', '1987-08-23', 'SA_REP', '6200.00', '0.10', '147', '80'), 191 | ('168', 'Lisa', 'Ozer', 'LOZER', '011.44.1343.929268', '1987-08-24', 'SA_REP', '11500.00', '0.25', '148', '80'), 192 | ('169', 'Harrison', 'Bloom', 'HBLOOM', '011.44.1343.829268', '1987-08-25', 'SA_REP', '10000.00', '0.20', '148', '80'), 193 | ('170', 'Tayler', 'Fox', 'TFOX', '011.44.1343.729268', '1987-08-26', 'SA_REP', '9600.00', '0.20', '148', '80'), 194 | ('171', 'William', 'Smith', 'WSMITH', '011.44.1343.629268', '1987-08-27', 'SA_REP', '7400.00', '0.15', '148', '80'), 195 | ('172', 'Elizabeth', 'Bates', 'EBATES', '011.44.1343.529268', '1987-08-28', 'SA_REP', '7300.00', '0.15', '148', '80'), 196 | ('173', 'Sundita', 'Kumar', 'SKUMAR', '011.44.1343.329268', '1987-08-29', 'SA_REP', '6100.00', '0.10', '148', '80'), 197 | ('174', 'Ellen', 'Abel', 'EABEL', '011.44.1644.429267', '1987-08-30', 'SA_REP', '11000.00', '0.30', '149', '80'), 198 | ('175', 'Alyssa', 'Hutton', 'AHUTTON', '011.44.1644.429266', '1987-08-31', 'SA_REP', '8800.00', '0.25', '149', '80'), 199 | ('176', 'Jonathon', 'Taylor', 'JTAYLOR', '011.44.1644.429265', '1987-09-01', 'SA_REP', '8600.00', '0.20', '149', '80'), 200 | ('177', 'Jack', 'Livingston', 'JLIVINGS', '011.44.1644.429264', '1987-09-02', 'SA_REP', '8400.00', '0.20', '149', '80'), 201 | ('178', 'Kimberely', 'Grant', 'KGRANT', '011.44.1644.429263', '1987-09-03', 'SA_REP', '7000.00', '0.15', '149', '0'), 202 | ('179', 'Charles', 'Johnson', 'CJOHNSON', '011.44.1644.429262', '1987-09-04', 'SA_REP', '6200.00', '0.10', '149', '80'), 203 | ('180', 'Winston', 'Taylor', 'WTAYLOR', '650.507.9876', '1987-09-05', 'SH_CLERK', '3200.00', '0.00', '120', '50'), 204 | ('181', 'Jean', 'Fleaur', 'JFLEAUR', '650.507.9877', '1987-09-06', 'SH_CLERK', '3100.00', '0.00', '120', '50'), 205 | ('182', 'Martha', 'Sullivan', 'MSULLIVA', '650.507.9878', '1987-09-07', 'SH_CLERK', '2500.00', '0.00', '120', '50'), 206 | ('183', 'Girard', 'Geoni', 'GGEONI', '650.507.9879', '1987-09-08', 'SH_CLERK', '2800.00', '0.00', '120', '50'), 207 | ('184', 'Nandita', 'Sarchand', 'NSARCHAN', '650.509.1876', '1987-09-09', 'SH_CLERK', '4200.00', '0.00', '121', '50'), 208 | ('185', 'Alexis', 'Bull', 'ABULL', '650.509.2876', '1987-09-10', 'SH_CLERK', '4100.00', '0.00', '121', '50'), 209 | ('186', 'Julia', 'Dellinger', 'JDELLING', '650.509.3876', '1987-09-11', 'SH_CLERK', '3400.00', '0.00', '121', '50'), 210 | ('187', 'Anthony', 'Cabrio', 'ACABRIO', '650.509.4876', '1987-09-12', 'SH_CLERK', '3000.00', '0.00', '121', '50'), 211 | ('188', 'Kelly', 'Chung', 'KCHUNG', '650.505.1876', '1987-09-13', 'SH_CLERK', '3800.00', '0.00', '122', '50'), 212 | ('189', 'Jennifer', 'Dilly', 'JDILLY', '650.505.2876', '1987-09-14', 'SH_CLERK', '3600.00', '0.00', '122', '50'), 213 | ('190', 'Timothy', 'Gates', 'TGATES', '650.505.3876', '1987-09-15', 'SH_CLERK', '2900.00', '0.00', '122', '50'), 214 | ('191', 'Randall', 'Perkins', 'RPERKINS', '650.505.4876', '1987-09-16', 'SH_CLERK', '2500.00', '0.00', '122', '50'), 215 | ('192', 'Sarah', 'Bell', 'SBELL', '650.501.1876', '1987-09-17', 'SH_CLERK', '4000.00', '0.00', '123', '50'), 216 | ('193', 'Britney', 'Everett', 'BEVERETT', '650.501.2876', '1987-09-18', 'SH_CLERK', '3900.00', '0.00', '123', '50'), 217 | ('194', 'Samuel', 'McCain', 'SMCCAIN', '650.501.3876', '1987-09-19', 'SH_CLERK', '3200.00', '0.00', '123', '50'), 218 | ('195', 'Vance', 'Jones', 'VJONES', '650.501.4876', '1987-09-20', 'SH_CLERK', '2800.00', '0.00', '123', '50'), 219 | ('196', 'Alana', 'Walsh', 'AWALSH', '650.507.9811', '1987-09-21', 'SH_CLERK', '3100.00', '0.00', '124', '50'), 220 | ('197', 'Kevin', 'Feeney', 'KFEENEY', '650.507.9822', '1987-09-22', 'SH_CLERK', '3000.00', '0.00', '124', '50'), 221 | ('198', 'Donald', 'OConnell', 'DOCONNEL', '650.507.9833', '1987-09-23', 'SH_CLERK', '2600.00', '0.00', '124', '50'), 222 | ('199', 'Douglas', 'Grant', 'DGRANT', '650.507.9844', '1987-09-24', 'SH_CLERK', '2600.00', '0.00', '124', '50'), 223 | ('200', 'Jennifer', 'Whalen', 'JWHALEN', '515.123.4444', '1987-09-25', 'AD_ASST', '4400.00', '0.00', '101', '10'), 224 | ('201', 'Michael', 'Hartstein', 'MHARTSTE', '515.123.5555', '1987-09-26', 'MK_MAN', '13000.00', '0.00', '100', '20'), 225 | ('202', 'Pat', 'Fay', 'PFAY', '603.123.6666', '1987-09-27', 'MK_REP', '6000.00', '0.00', '201', '20'), 226 | ('203', 'Susan', 'Mavris', 'SMAVRIS', '515.123.7777', '1987-09-28', 'HR_REP', '6500.00', '0.00', '101', '40'), 227 | ('204', 'Hermann', 'Baer', 'HBAER', '515.123.8888', '1987-09-29', 'PR_REP', '10000.00', '0.00', '101', '70'), 228 | ('205', 'Shelley', 'Higgins', 'SHIGGINS', '515.123.8080', '1987-09-30', 'AC_MGR', '12000.00', '0.00', '101', '110'), 229 | ('206', 'William', 'Gietz', 'WGIETZ', '515.123.8181', '1987-10-01', 'AC_ACCOUNT', '8300.00', '0.00', '205', '110'); 230 | 231 | -- -------------------------------------------------------- 232 | 233 | -- 234 | -- Table structure for table `job_history` 235 | -- 236 | 237 | CREATE TABLE IF NOT EXISTS `job_history` ( 238 | `EMPLOYEE_ID` decimal(6,0) NOT NULL, 239 | `START_DATE` date NOT NULL, 240 | `END_DATE` date NOT NULL, 241 | `JOB_ID` varchar(10) NOT NULL, 242 | `DEPARTMENT_ID` decimal(4,0) DEFAULT NULL, 243 | PRIMARY KEY (`EMPLOYEE_ID`,`START_DATE`), 244 | KEY `JHIST_DEPARTMENT_IX` (`DEPARTMENT_ID`), 245 | KEY `JHIST_EMPLOYEE_IX` (`EMPLOYEE_ID`), 246 | KEY `JHIST_JOB_IX` (`JOB_ID`) 247 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 248 | 249 | -- 250 | -- Dumping data for table `job_history` 251 | -- 252 | 253 | INSERT INTO `job_history` (`EMPLOYEE_ID`, `START_DATE`, `END_DATE`, `JOB_ID`, `DEPARTMENT_ID`) VALUES 254 | ('102', '1993-01-13', '1998-07-24', 'IT_PROG', '60'), 255 | ('101', '1989-09-21', '1993-10-27', 'AC_ACCOUNT', '110'), 256 | ('101', '1993-10-28', '1997-03-15', 'AC_MGR', '110'), 257 | ('201', '1996-02-17', '1999-12-19', 'MK_REP', '20'), 258 | ('114', '1998-03-24', '1999-12-31', 'ST_CLERK', '50'), 259 | ('122', '1999-01-01', '1999-12-31', 'ST_CLERK', '50'), 260 | ('200', '1987-09-17', '1993-06-17', 'AD_ASST', '90'), 261 | ('176', '1998-03-24', '1998-12-31', 'SA_REP', '80'), 262 | ('176', '1999-01-01', '1999-12-31', 'SA_MAN', '80'), 263 | ('200', '1994-07-01', '1998-12-31', 'AC_ACCOUNT', '90'), 264 | ('0', '0000-00-00', '0000-00-00', '', '0'); 265 | 266 | -- -------------------------------------------------------- 267 | 268 | -- 269 | -- Table structure for table `jobs` 270 | -- 271 | 272 | CREATE TABLE IF NOT EXISTS `jobs` ( 273 | `JOB_ID` varchar(10) NOT NULL DEFAULT '', 274 | `JOB_TITLE` varchar(35) NOT NULL, 275 | `MIN_SALARY` decimal(6,0) DEFAULT NULL, 276 | `MAX_SALARY` decimal(6,0) DEFAULT NULL, 277 | PRIMARY KEY (`JOB_ID`) 278 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 279 | 280 | -- 281 | -- Dumping data for table `jobs` 282 | -- 283 | 284 | INSERT INTO `jobs` (`JOB_ID`, `JOB_TITLE`, `MIN_SALARY`, `MAX_SALARY`) VALUES 285 | ('AD_PRES', 'President', '20000', '40000'), 286 | ('AD_VP', 'Administration Vice President', '15000', '30000'), 287 | ('AD_ASST', 'Administration Assistant', '3000', '6000'), 288 | ('FI_MGR', 'Finance Manager', '8200', '16000'), 289 | ('FI_ACCOUNT', 'Accountant', '4200', '9000'), 290 | ('AC_MGR', 'Accounting Manager', '8200', '16000'), 291 | ('AC_ACCOUNT', 'Public Accountant', '4200', '9000'), 292 | ('SA_MAN', 'Sales Manager', '10000', '20000'), 293 | ('SA_REP', 'Sales Representative', '6000', '12000'), 294 | ('PU_MAN', 'Purchasing Manager', '8000', '15000'), 295 | ('PU_CLERK', 'Purchasing Clerk', '2500', '5500'), 296 | ('ST_MAN', 'Stock Manager', '5500', '8500'), 297 | ('ST_CLERK', 'Stock Clerk', '2000', '5000'), 298 | ('SH_CLERK', 'Shipping Clerk', '2500', '5500'), 299 | ('IT_PROG', 'Programmer', '4000', '10000'), 300 | ('MK_MAN', 'Marketing Manager', '9000', '15000'), 301 | ('MK_REP', 'Marketing Representative', '4000', '9000'), 302 | ('HR_REP', 'Human Resources Representative', '4000', '9000'), 303 | ('PR_REP', 'Public Relations Representative', '4500', '10500'); 304 | 305 | -- -------------------------------------------------------- 306 | 307 | -- 308 | -- Table structure for table `locations` 309 | -- 310 | 311 | CREATE TABLE IF NOT EXISTS `locations` ( 312 | `LOCATION_ID` decimal(4,0) NOT NULL DEFAULT '0', 313 | `STREET_ADDRESS` varchar(40) DEFAULT NULL, 314 | `POSTAL_CODE` varchar(12) DEFAULT NULL, 315 | `CITY` varchar(30) NOT NULL, 316 | `STATE_PROVINCE` varchar(25) DEFAULT NULL, 317 | `COUNTRY_ID` varchar(2) DEFAULT NULL, 318 | PRIMARY KEY (`LOCATION_ID`), 319 | KEY `LOC_CITY_IX` (`CITY`), 320 | KEY `LOC_COUNTRY_IX` (`COUNTRY_ID`), 321 | KEY `LOC_STATE_PROVINCE_IX` (`STATE_PROVINCE`) 322 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 323 | 324 | -- 325 | -- Dumping data for table `locations` 326 | -- 327 | 328 | INSERT INTO `locations` (`LOCATION_ID`, `STREET_ADDRESS`, `POSTAL_CODE`, `CITY`, `STATE_PROVINCE`, `COUNTRY_ID`) VALUES 329 | ('1000', '1297 Via Cola di Rie', '989', 'Roma', '', 'IT'), 330 | ('1100', '93091 Calle della Testa', '10934', 'Venice', '', 'IT'), 331 | ('1200', '2017 Shinjuku-ku', '1689', 'Tokyo', 'Tokyo Prefecture', 'JP'), 332 | ('1300', '9450 Kamiya-cho', '6823', 'Hiroshima', '', 'JP'), 333 | ('1400', '2014 Jabberwocky Rd', '26192', 'Southlake', 'Texas', 'US'), 334 | ('1500', '2011 Interiors Blvd', '99236', 'South San Francisco', 'California', 'US'), 335 | ('1600', '2007 Zagora St', '50090', 'South Brunswick', 'New Jersey', 'US'), 336 | ('1700', '2004 Charade Rd', '98199', 'Seattle', 'Washington', 'US'), 337 | ('1800', '147 Spadina Ave', 'M5V 2L7', 'Toronto', 'Ontario', 'CA'), 338 | ('1900', '6092 Boxwood St', 'YSW 9T2', 'Whitehorse', 'Yukon', 'CA'), 339 | ('2000', '40-5-12 Laogianggen', '190518', 'Beijing', '', 'CN'), 340 | ('2100', '1298 Vileparle (E)', '490231', 'Bombay', 'Maharashtra', 'IN'), 341 | ('2200', '12-98 Victoria Street', '2901', 'Sydney', 'New South Wales', 'AU'), 342 | ('2300', '198 Clementi North', '540198', 'Singapore', '', 'SG'), 343 | ('2400', '8204 Arthur St', '', 'London', '', 'UK'), 344 | ('2500', '"Magdalen Centre', ' The Oxford ', 'OX9 9ZB', 'Oxford', 'Ox'), 345 | ('2600', '9702 Chester Road', '9629850293', 'Stretford', 'Manchester', 'UK'), 346 | ('2700', 'Schwanthalerstr. 7031', '80925', 'Munich', 'Bavaria', 'DE'), 347 | ('2800', 'Rua Frei Caneca 1360', '01307-002', 'Sao Paulo', 'Sao Paulo', 'BR'), 348 | ('2900', '20 Rue des Corps-Saints', '1730', 'Geneva', 'Geneve', 'CH'), 349 | ('3000', 'Murtenstrasse 921', '3095', 'Bern', 'BE', 'CH'), 350 | ('3100', 'Pieter Breughelstraat 837', '3029SK', 'Utrecht', 'Utrecht', 'NL'), 351 | ('3200', 'Mariano Escobedo 9991', '11932', 'Mexico City', '"Distrito Federal', '"'); 352 | 353 | -- -------------------------------------------------------- 354 | 355 | -- 356 | -- Table structure for table `regions` 357 | -- 358 | 359 | CREATE TABLE IF NOT EXISTS `regions` ( 360 | `REGION_ID` decimal(5,0) NOT NULL, 361 | `REGION_NAME` varchar(25) DEFAULT NULL, 362 | PRIMARY KEY (`REGION_ID`), 363 | UNIQUE KEY `sss` (`REGION_NAME`) 364 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 365 | 366 | -- 367 | -- Dumping data for table `regions` 368 | -- 369 | 370 | INSERT INTO `regions` (`REGION_ID`, `REGION_NAME`) VALUES 371 | ('1', 'Europe\r'), 372 | ('2', 'Americas\r'), 373 | ('3', 'Asia\r'), 374 | ('4', 'Middle East and Africa\r'); 375 | 376 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 377 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 378 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 379 | 380 | 381 | show tables; 382 | use hr2; 383 | 384 | 385 | /*MySQL Restricting and Sorting data: [11 exercises with solution] 386 | 1. Write a query to display the name (first_name, last_name) and salary for all employees whose salary is not in the range $10,000 through $15,000. Go to the editor 387 | 388 | Sample table: employees 389 | */ 390 | SELECT first_name, last_name, salary, department_id 391 | FROM employees 392 | WHERE salary NOT BETWEEN 10000 AND 15000 ; 393 | /*2. Write a query to display the name (first_name, last_name) and department ID of all employees in departments 30 or 100 in ascending order. Go to the editor 394 | 395 | Sample table: employees*/ 396 | 397 | SELECT first_name, last_name, department_id 398 | FROM employees 399 | WHERE department_id IN (30, 100) 400 | ORDER BY department_id; 401 | 402 | /*3. Write a query to display the name (first_name, last_name) and salary for all employees whose salary is not in the range $10,000 through $15,000 and are in department 30 or 100. Go to the editor 403 | 404 | Sample table: employees*/ 405 | 406 | SELECT first_name, last_name, salary, department_id 407 | FROM employees 408 | WHERE salary NOT BETWEEN 10000 AND 15000 409 | AND department_id IN (30, 100); 410 | 411 | /*4. Write a query to display the name (first_name, last_name) and hire date for all employees who were hired in 1987. Go to the editor 412 | select * from employees;*/ 413 | 414 | select * from employees where year(hire_date) = "1987"; 415 | 416 | /*Sample table: employees 417 | 5. Write a query to display the first_name of all employees who have both "b" and "c" in their first name. Go to the editor 418 | 419 | Sample table: employees*/ 420 | 421 | SELECT first_name 422 | FROM employees 423 | WHERE first_name LIKE '%b%' 424 | AND first_name LIKE '%c%'; 425 | 426 | /*6. Write a query to display the last name, job, and salary for all employees whose job is that of a Programmer or a Shipping Clerk, and whose salary is not equal to $4,500, $10,000, or $15,000. Go to the editor 427 | 428 | Sample table: employees*/ 429 | 430 | SELECT last_name, job_id, salary 431 | FROM employees 432 | WHERE job_id IN ('IT_PROG', 'SH_CLERK') 433 | AND salary NOT IN (4500,10000, 15000); 434 | --------------------------------------------------------------------------------