MySQL Queries - Complete Solutions
BASIC QUERIES
SELECT first_name AS "First Name", last_name AS "Last Name" FROM employees;
SELECT DISTINCT department_id FROM employees;
SELECT * FROM employees ORDER BY first_name DESC;
SELECT first_name, last_name, salary, (salary * 0.15) AS PF FROM employees;
SELECT employee_id, first_name, last_name, salary FROM employees ORDER BY salary ASC;
SELECT SUM(salary) AS Total_Salary FROM employees;
SELECT MAX(salary) AS Max_Salary, MIN(salary) AS Min_Salary FROM employees;
SELECT AVG(salary) AS Avg_Salary, COUNT(*) AS Num_Employees FROM employees;
SELECT COUNT(*) AS Num_Employees FROM employees;
SELECT COUNT(DISTINCT job_id) AS Num_Jobs FROM employees;
SELECT UPPER(first_name) AS First_Name FROM employees;
SELECT SUBSTRING(first_name, 1, 3) AS First3Chars FROM employees;
SELECT (171 * 214 + 625) AS Result;
SELECT CONCAT(first_name, ' ', last_name) AS Full_Name FROM employees;
SELECT TRIM(first_name) AS FirstName_Trimmed FROM employees;
SELECT first_name, last_name, LENGTH(first_name) AS FirstName_Length, LENGTH(last_name) AS LastN
SELECT first_name FROM employees WHERE first_name REGEXP '[0-9]';
SELECT * FROM employees LIMIT 10;
SELECT first_name, last_name, ROUND(salary / 12, 2) AS Monthly_Salary FROM employees;
RESTRICTING AND SORTING DATA
SELECT first_name, last_name, salary FROM employees WHERE salary NOT BETWEEN 10000 AND 15000;
SELECT first_name, last_name, department_id FROM employees WHERE department_id IN (30, 100) ORDE
SELECT first_name, last_name, salary FROM employees WHERE salary NOT BETWEEN 10000 AND 15000 AND
SELECT first_name, last_name, hire_date FROM employees WHERE YEAR(hire_date) = 1987;
SELECT first_name FROM employees WHERE first_name LIKE '%b%' AND first_name LIKE '%c%';
SELECT last_name, job_id, salary FROM employees WHERE job_id IN ('PROG','SH_CLERK') AND salary N
SELECT last_name FROM employees WHERE LENGTH(last_name) = 6;
SELECT last_name FROM employees WHERE SUBSTRING(last_name,3,1) = 'e';
SELECT DISTINCT job_id FROM employees;
SELECT first_name, last_name, salary, (salary*0.15) AS PF FROM employees;
SELECT * FROM employees WHERE last_name IN ('BLAKE','SCOTT','KING','FORD');
AGGREGATE FUNCTIONS AND GROUP BY
SELECT COUNT(DISTINCT job_id) AS Num_Jobs FROM employees;
SELECT SUM(salary) AS Total_Salary FROM employees;
SELECT MIN(salary) AS Min_Salary FROM employees;
SELECT MAX(salary) AS Max_Programmer_Salary FROM employees WHERE job_id='PROG';
SELECT AVG(salary) AS Avg_Salary, COUNT(*) AS Num_Employees FROM employees WHERE department_id=9
SELECT MAX(salary) AS Highest, MIN(salary) AS Lowest, SUM(salary) AS Total, AVG(salary) AS Avera
SELECT job_id, COUNT(*) AS Num_Employees FROM employees GROUP BY job_id;
SELECT MAX(salary) - MIN(salary) AS Salary_Diff FROM employees;
SELECT manager_id, MIN(salary) AS Lowest_Salary FROM employees GROUP BY manager_id;
SELECT department_id, SUM(salary) AS Total_Salary FROM employees GROUP BY department_id;
SELECT job_id, AVG(salary) AS Avg_Salary FROM employees WHERE job_id <> 'PROG' GROUP BY job_id;
SELECT job_id, SUM(salary) AS Total, MAX(salary) AS Max, MIN(salary) AS Min, AVG(salary) AS Avg
SELECT job_id, MAX(salary) AS Max_Salary FROM employees GROUP BY job_id HAVING MAX(salary) >= 40
SELECT department_id, AVG(salary) AS Avg_Salary FROM employees GROUP BY department_id HAVING COU
SUBQUERIES
SELECT first_name, last_name, salary FROM employees WHERE salary > (SELECT salary FROM employees
SELECT first_name, last_name FROM employees WHERE department_id=(SELECT department_id FROM depar
SELECT first_name, last_name FROM employees WHERE manager_id IS NOT NULL AND department_id IN (S
SELECT first_name, last_name FROM employees WHERE employee_id IN (SELECT manager_id FROM employe
SELECT first_name, last_name, salary FROM employees WHERE salary > (SELECT AVG(salary) FROM empl
SELECT first_name, last_name, salary FROM employees e WHERE salary = (SELECT MIN(salary) FROM em
SELECT first_name, last_name, salary FROM employees WHERE salary > (SELECT AVG(salary) FROM empl
SELECT first_name, last_name, salary FROM employees WHERE salary > (SELECT salary FROM employees
SELECT first_name, last_name, salary FROM employees e WHERE salary = (SELECT MIN(salary) FROM em
SELECT first_name, last_name, salary FROM employees WHERE salary > ALL (SELECT AVG(salary) FROM
SELECT first_name, last_name, salary FROM employees WHERE salary > ALL (SELECT salary FROM emplo
SELECT first_name, last_name FROM employees WHERE employee_id NOT IN (SELECT DISTINCT manager_id
JOINS
SELECT location_id, street_address, city, state_province, country_name FROM departments NATURAL
SELECT e.first_name, e.last_name, e.department_id, d.department_name FROM employees e JOIN depar
SELECT e.first_name, e.last_name, e.job_id, e.department_id, d.department_name FROM employees e
SELECT e.employee_id, e.last_name AS Employee, e.manager_id, m.last_name AS Manager FROM employe
SELECT first_name, last_name, hire_date FROM employees WHERE hire_date > (SELECT hire_date FROM
SELECT d.department_name, COUNT(e.employee_id) AS Num_Employees FROM employees e JOIN department
SELECT employee_id, job_id, DATEDIFF(end_date,start_date) AS Duration FROM job_history WHERE dep
SELECT d.department_id, d.department_name, e.first_name AS Manager FROM departments d JOIN emplo
SELECT d.department_name, e.first_name AS Manager, l.city FROM departments d JOIN employees e ON
SELECT job_id, AVG(salary) AS Avg_Salary FROM employees GROUP BY job_id;
SELECT job_id, e.first_name, e.last_name, (salary - (SELECT MIN(salary) FROM employees WHERE job
SELECT * FROM job_history WHERE employee_id IN (SELECT employee_id FROM employees WHERE salary >