From 34d7825ea3cf46751274d4e9e1ac1de91374f6fa Mon Sep 17 00:00:00 2001 From: Alvaro Sanchez Date: Tue, 24 Jan 2023 14:39:52 +0100 Subject: [PATCH] first commit --- Diagram.PNG | Bin 0 -> 62865 bytes database.sql | 108 +++++++++++++++++++ query.sql | 295 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 403 insertions(+) create mode 100644 Diagram.PNG create mode 100644 database.sql create mode 100644 query.sql diff --git a/Diagram.PNG b/Diagram.PNG new file mode 100644 index 0000000000000000000000000000000000000000..cfa36df4cbe37912fbaf7cd0de1abdb0adef8737 GIT binary patch literal 62865 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 literal 0 HcmV?d00001 diff --git a/database.sql b/database.sql new file mode 100644 index 0000000..345964d --- /dev/null +++ b/database.sql @@ -0,0 +1,108 @@ +-- Sample employee database +-- See changelog table for details +-- Copyright (C) 2007,2008, MySQL AB +-- +-- Original data created by Fusheng Wang and Carlo Zaniolo +-- http://www.cs.aau.dk/TimeCenter/software.htm +-- http://www.cs.aau.dk/TimeCenter/Data/employeeTemporalDataSet.zip +-- +-- Current schema by Giuseppe Maxia +-- Data conversion from XML to relational by Patrick Crews +-- +-- This work is licensed under the +-- Creative Commons Attribution-Share Alike 3.0 Unported License. +-- To view a copy of this license, visit +-- http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to +-- Creative Commons, 171 Second Street, Suite 300, San Francisco, +-- California, 94105, USA. +-- +-- DISCLAIMER +-- To the best of our knowledge, this data is fabricated, and +-- it does not correspond to real people. +-- Any similarity to existing people is purely coincidental. +-- + +DROP DATABASE IF EXISTS employees; +CREATE DATABASE IF NOT EXISTS employees; +USE employees; + +SELECT 'CREATING DATABASE STRUCTURE' as 'INFO'; + +DROP TABLE IF EXISTS dept_emp, + dept_manager, + titles, + salaries, + employees, + departments; + +/*!50503 set default_storage_engine = InnoDB */; +/*!50503 select CONCAT('storage engine: ', @@default_storage_engine) as INFO */; + +CREATE TABLE employees ( + emp_no INT NOT NULL, + birth_date DATE NOT NULL, + first_name VARCHAR(14) NOT NULL, + last_name VARCHAR(16) NOT NULL, + gender ENUM ('M','F') NOT NULL, + hire_date DATE NOT NULL, + PRIMARY KEY (emp_no) +); + +CREATE TABLE departments ( + dept_no CHAR(4) NOT NULL, + dept_name VARCHAR(40) NOT NULL, + PRIMARY KEY (dept_no), + UNIQUE KEY (dept_name) +); + +CREATE TABLE dept_manager ( + emp_no INT NOT NULL, + dept_no CHAR(4) NOT NULL, + from_date DATE NOT NULL, + to_date DATE NOT NULL, + FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE, + FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE, + PRIMARY KEY (emp_no,dept_no) +); + +CREATE TABLE dept_emp ( + emp_no INT NOT NULL, + dept_no CHAR(4) NOT NULL, + from_date DATE NOT NULL, + to_date DATE NOT NULL, + FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE, + FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE, + PRIMARY KEY (emp_no,dept_no) +); + +CREATE TABLE titles ( + emp_no INT NOT NULL, + title VARCHAR(50) NOT NULL, + from_date DATE NOT NULL, + to_date DATE, + FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE, + PRIMARY KEY (emp_no,title, from_date) +) +; + +CREATE TABLE salaries ( + emp_no INT NOT NULL, + salary INT NOT NULL, + from_date DATE NOT NULL, + to_date DATE NOT NULL, + FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE, + PRIMARY KEY (emp_no, from_date) +) +; + +CREATE OR REPLACE VIEW dept_emp_latest_date AS + SELECT emp_no, MAX(from_date) AS from_date, MAX(to_date) AS to_date + FROM dept_emp + GROUP BY emp_no; + +# shows only the current department for each employee +CREATE OR REPLACE VIEW current_dept_emp AS + SELECT l.emp_no, dept_no, l.from_date, l.to_date + FROM dept_emp d + INNER JOIN dept_emp_latest_date l + ON d.emp_no=l.emp_no AND d.from_date=l.from_date AND l.to_date = d.to_date; \ No newline at end of file diff --git a/query.sql b/query.sql new file mode 100644 index 0000000..764d976 --- /dev/null +++ b/query.sql @@ -0,0 +1,295 @@ +-- 1.INSERT DATA + -- Insert at least 15 new employees: + -- With salaries that are between a range of 5,000 and 50,000 of different gender + -- 5 employees must have at least two salaries in different ranges of dates and different amounts + -- 10 employees belong to more than one department + -- 5 employees are managers + -- All employees have a degree and at least 5 titles are from 2020 + -- At least 3 employees have the same name + +-- 2.UPDATE DATA + -- Update employees: + -- Change the name of an employee. To do this, generate a query that affects only a certain employee based on their name, surname and date of birth. (This will likely throw an 1175 mysql error, mysql by default enables a safe mode for not updating or deleting a row without using a primary key in the where clause. You have to understand why this happens and investigate and disable safe mode temporarily in order to get this query executed) + -- Update departments: + -- Change the name of all departments. + +-- 3.GET DATA + -- Select all employees with a salary greater than 20,000, you must list all employees data and the salary. + -- Select all employees with a salary below 10,000, you must list all employees data and the salary. + -- Select all employees who have a salary between 14,000 and 50,000, you must list all employees data and the salary. + -- Select the total number of employees + -- Select the total number of employees who have worked in more than one department + -- Select the titles of the year 2020 + -- Select the name of all employees with capital letters + -- Select the name, surname and name of the current department of each employee + -- Select the name, surname and number of times the employee has worked as a manager + -- Select the name of employees without any being repeated + +-- 4.DELETE DATA + -- Delete all employees with a salary greater than 20,000 + -- Remove the department that has the most employees. (Let’s assume that only one department is returned in this query, as an extra you can try to write the query for deleting all departments in case there are more than one in the result) + + +-- SOLUTIONS -- + +-- 1. INSERT DATA + +-- Insert at least 15 new employees: +Insert into employees (emp_no, birth_date, first_name, last_name, gender, hire_date) +values + (1,'1964-03-15','Michael','Scott','M','2000-01-20'), + (2,'1970-01-20','Dwight','Schrute','M','2000-01-20'), + (3,'1978-10-01','James','Harper','M','2000-01-20'), + (4,'1979-03-25','Pamela','Beesly','F','2000-01-20'), + (5,'1972-11-29','Kevin','Malone','M','2000-01-20'), + (6,'1974-11-11','Angela','Martin','F','2000-01-20'), + (7,'1972-11-15','Oscar','Martinez','M','2000-01-20'), + (8,'1973-01-24','Andrew','Bernard','M','2000-01-20'), + (9,'1951-07-14','Stanley','Hudson','M','2000-01-20'), + (10,'1965-07-10','Phyllis','Vance','F','2000-01-20'), + (11,'1959-11-12','Meredith','Palmer','F','2000-01-20'), + (12,'1980-02-05','Kelly','Kapoor','F','2000-01-20'), + (13,'1925-11-01','Creed','Bratton','M','2000-01-20'), + (14,'1971-10-25','Darryl','Philbin','M','2000-01-20'), + (15,'1963-02-22','Toby','Flenderson','M','2000-01-20'), + (16,'1986-05-01','Kelly','"Erin" Hannon','F','2013-01-20'), + (17,'1991-07-14','Dwight','"Clark" Green','M','2013-01-01'), + (18,'1989-07-26','Jim','"Plop" Miller','M','2013-01-01'); + +-- With salaries that are between a range of 5,000 and 50,000 of different gender +-- 5 employees must have at least two salaries in different ranges of dates and different amounts +Insert into salaries (emp_no, salary, from_date, to_date) +values + (1, 32000,'2000-01-20','2012-12-31'), + (1, 36000,'2013-01-01','2022-12-31'), + (2, 30000,'2000-01-20','2012-12-31'), + (2, 34000,'2013-01-01','2022-12-31'), + (3, 30000,'2000-01-20','2022-12-31'), + (4, 23000,'2000-01-20','2012-12-31'), + (4, 30000,'2013-01-20','2022-12-31'), + (5, 24000,'2000-01-20','2022-12-31'), + (6, 28000,'2000-01-20','2012-12-31'), + (6, 30000,'2013-01-20','2022-12-31'), + (7, 28000,'2000-01-20','2022-12-31'), + (8, 30000,'2000-01-20','2022-12-31'), + (9, 30000,'2000-01-20','2022-12-31'), + (10, 30000,'2000-01-20','2022-12-31'), + (11, 26000,'2000-01-20','2022-12-31'), + (12, 26000,'2000-01-20','2022-12-31'), + (13, 26000,'2000-01-20','2022-12-31'), + (14, 18000,'2000-01-20','2012-12-31'), + (14, 26000,'2013-01-20','2022-12-31'), + (15, 28000,'2000-01-20','2022-12-31'), + (16, 23000,'2013-01-01','2022-12-31'), + (17, 15000,'2013-01-01','2022-12-31'), + (18, 15000,'2013-01-01','2022-12-31'); + +-- Insert departments +Insert into departments (dept_no, dept_name) +values + ('D-1','Manager'), + ('D-2','Admin'), + ('D-3','Recep'), + ('D-4','sales'), + ('D-5','F.Accounting'), + ('D-6','S. relations'), + ('D-7','Customer S.'), + ('D-8','Q.G.'), + ('D-9','warehouse'), + ('D-10','H.R.'); + +-- 10 employees belong to more than one department +Insert into dept_emp (emp_no, dept_no, from_date, to_date) +values + (1, 'D-1','2007-01-01','2021-12-31'), + (1, 'D-4','2000-01-20','2021-12-31'), + (2, 'D-1','2000-01-20','2021-12-31'), + (2, 'D-2','2009-01-01','2021-12-31'), + (2, 'D-4','2005-01-01','2021-12-31'), + (3, 'D-4','2000-01-20','2021-12-31'), + (3, 'D-7','2008-01-01','2021-12-31'), + (4, 'D-2','2010-01-01','2021-12-31'), + (4, 'D-3','2000-01-20','2021-12-31'), + (4, 'D-4','2010-01-01','2021-12-31'), + (5, 'D-5','2000-01-20','2021-12-31'), + (6, 'D-1','2000-01-20','2021-12-31'), + (6, 'D-5','2000-01-20','2021-12-31'), + (7, 'D-5','2000-01-20','2021-12-31'), + (8, 'D-4','2009-01-20','2021-12-31'), + (9, 'D-4','2000-01-20','2021-12-31'), + (10, 'D-4','2000-01-20','2021-12-31'), + (10, 'D-9','2006-01-20','2021-12-31'), + (11, 'D-4','2000-01-20','2021-12-31'), + (11, 'D-6','2000-01-20','2021-12-31'), + (12, 'D-7','2000-01-20','2021-12-31'), + (13, 'D-6','2000-01-20','2021-12-31'), + (13, 'D-8','2000-01-20','2021-12-31'), + (14, 'D-1','2010-01-20','2021-12-31'), + (14, 'D-9','2000-01-20','2021-12-31'), + (15, 'D-10','2000-01-20','2021-12-31'), + (16, 'D-3','2013-01-01','2021-12-31'), + (17, 'D-7','2013-01-01','2021-12-31'), + (17, 'D-4','2013-01-01','2021-12-31'), + (18, 'D-7','2013-01-01','2021-12-31'); + +-- 5 employees are managers +Insert into dept_manager (emp_no, dept_no, from_date, to_date) +values + (1, 'D-1','2000-01-20','2021-12-31'), + (2, 'D-4','2000-01-20','2021-12-31'), + (6, 'D-5','2000-01-20','2021-12-31'), + (14, 'D-9','2000-01-20','2021-12-31'), + (15, 'D-10','2000-01-20','2021-12-31'); + +-- All employees have a degree and at least 5 titles are from 2020 +Insert into titles (emp_no, title, from_date, to_date) +values + (1, 'Business Administration', '2000-01-20','2021-12-31'), + (2, 'Business Administration', '2000-01-20','2021-12-31'), + (3, 'Business Administration', '2000-01-20','2021-12-31'), + (4, 'Fine Arts', '2020-07-01','2021-12-31'), + (5, 'Financial Accounting and Reporting', '2020-06-20','2021-12-31'), + (6, 'Financial Accounting and Reporting', '2000-01-20','2021-12-31'), + (7, 'Financial Accounting and Reporting', '2000-01-20','2021-12-31'), + (8, 'Business Administration', '2000-01-20','2021-12-31'), + (9, 'Marketing and Sales', '2000-01-20','2021-12-31'), + (10, 'Marketing and Sales', '2000-01-20','2021-12-31'), + (11, 'Social Work', '2000-01-01','2021-12-31'), + (12, 'Social Work', '2020-06-15','2021-12-31'), + (13, 'Musical Arts', '2000-01-20','2021-12-31'), + (14, 'Supply Chain Management and Logistics', '2000-01-20','2021-12-31'), + (15, 'Human Resources', '2000-01-20','2021-12-31'), + (16, 'Social Work', '2020-07-01','2021-12-31'), + (17, 'Marketing and Sales', '2013-01-01','2021-12-31'), + (18, 'Marketing', '2020-07-01','2021-12-31'); + +-- 2. UPDATE DATA + +-- Update employees: + -- Change the name of an employee. (Safe mode disabled) + UPDATE employees SET first_name = 'Jim' WHERE first_name = 'James'; +-- Update departments: + -- Change the name of all departments. + UPDATE departments SET dept_name = 'Managerment' WHERE dept_no = 'D-1'; + UPDATE departments SET dept_name = 'Administration' WHERE dept_no = 'D-2'; + UPDATE departments SET dept_name = 'Reception' WHERE dept_no = 'D-3'; + UPDATE departments SET dept_name = 'Sales' WHERE dept_no = 'D-4'; + UPDATE departments SET dept_name = 'Accounting' WHERE dept_no = 'D-5'; + UPDATE departments SET dept_name = 'Supplier Relations' WHERE dept_no = 'D-6'; + UPDATE departments SET dept_name = 'Customer Service' WHERE dept_no = 'D-7'; + UPDATE departments SET dept_name = 'Quality Guarantee' WHERE dept_no = 'D-8'; + UPDATE departments SET dept_name = 'Warehouse' WHERE dept_no = 'D-9'; + UPDATE departments SET dept_name = 'Human Resources' WHERE dept_no = 'D-10'; + +-- 3. GET DATA + +-- Select all employees with a salary greater than 20,000, you must list all employees data and the salary. +SELECT e.emp_no, e.birth_date, e.first_name, e.last_name, e.gender, e.hire_date, s.salary FROM employees e +INNER JOIN salaries s on e.emp_no = s.emp_no WHERE s.salary >= 20000; + +-- Select all employees with a salary below 10,000, you must list all employees data and the salary. +SELECT e.emp_no, e.birth_date, e.first_name, e.last_name, e.gender, e.hire_date, s.salary FROM employees e +INNER JOIN salaries s on e.emp_no = s.emp_no WHERE s.salary <= 10000; + +-- Select all employees who have a salary between 14,000 and 50,000, you must list all employees data and the salary. +SELECT e.emp_no, e.birth_date, e.first_name, e.last_name, e.gender, e.hire_date, s.salary FROM employees e +INNER JOIN salaries s on e.emp_no = s.emp_no WHERE s.salary BETWEEN 14000 AND 50000; + +-- Select the total number of employees +SELECT count(emp_no) FROM employees; + +-- Select the total number of employees who have worked in more than one department +SELECT COUNT(emp_no) +FROM (SELECT emp_no,COUNT(*) AS recount_depts +FROM dept_emp GROUP BY emp_no) AS empno_rd +WHERE recount_depts > 1; + +-- Select the titles of the year 2020 +SELECT * FROM titles WHERE from_date between '2020-01-01' and '2020-12-31'; + +-- Select the name of all employees with capital letters +SELECT UPPER(first_name) FROM employees; + +-- Select the name, surname and name of the current department of each employee +SELECT e.emp_no, e.first_name, e.last_name, d.dept_name FROM employees e +INNER JOIN (SELECT emp_no, dept_no, from_date FROM dept_emp WHERE from_date IN (SELECT MAX(from_date) FROM dept_emp GROUP BY emp_no)) currentD +ON e.emp_no = currentD.emp_no +INNER JOIN departments d ON currentD.dept_no = d.dept_no ORDER BY e.emp_no; + +-- Select the name, surname and number of times the employee has worked as a manager +SELECT e.emp_no, e.first_name, e.last_name, m.manager_time FROM employees e +LEFT JOIN (SELECT emp_no, COUNT(emp_no) AS manager_time FROM dept_manager GROUP BY emp_no) m +ON e.emp_no = m.emp_no; + +-- Select the name of employees without any being repeated +SELECT DISTINCT first_name FROM employees; + +-- 4. DELETE DATA + +-- Delete all employees with a salary greater than 20,000 +DELETE e FROM employees e JOIN salaries s ON e.emp_no = s.emp_no WHERE S.salary > 20000; + +-- Remove the department that has more employees. (Let’s assume that only one department is returned in this query, as an extra you can try to write the query for deleting all departments in case there are more than one in the result) +DELETE FROM departments WHERE dept_no = (SELECT dept_no FROM dept_emp GROUP BY dept_no ORDER BY count(dept_no) limit 1); + + + +-- CREATE NEW DATABASE-- + +DROP DATABASE IF EXISTS store; +CREATE DATABASE IF NOT EXISTS store; +USE store; + +CREATE TABLE clients( + id_client INT NOT NULL AUTO_INCREMENT, + name_client TEXT(20) NOT NULL, + email_client VARCHAR(30) NOT NULL, + PRIMARY KEY (id_client) +); + +CREATE TABLE client_card( + id_card INT NOT NULL AUTO_INCREMENT, + id_client INT NOT NULL, + PRIMARY KEY (id_card), + FOREIGN KEY (id_client) REFERENCES clients(id_client) ON DELETE CASCADE +); + +CREATE TABLE products( + id_product INT NOT NULL AUTO_INCREMENT, + name_product VARCHAR(30) NOT NULL, + price_produc INT NOT NULL, + PRIMARY KEY (id_product) +); + +CREATE TABLE employees( + id_emp INT NOT NULL AUTO_INCREMENT, + name_emp VARCHAR(30) NOT NULL, + PRIMARY KEY (id_emp) +); + +CREATE TABLE stores( + id_store INT NOT NULL AUTO_INCREMENT, + id_product INT NOT NULL, + id_emp INT NOT NULL, + name_store VARCHAR(30) NOT NULL, + city_store VARCHAR(20) NOT NULL, + PRIMARY KEY (id_store), + FOREIGN KEY (id_product) REFERENCES products(id_product) ON DELETE CASCADE, + FOREIGN KEY (id_emp) REFERENCES employees(id_emp) ON DELETE CASCADE +); + + +CREATE TABLE orders( + id_order INT NOT NULL AUTO_INCREMENT, + id_client INT NOT NULL, + id_store INT NOT NULL, + id_product INT NOT NULL, + id_emp INT NOT NULL, + totalprice_order INT NOT NULL, + PRIMARY KEY (id_order), + FOREIGN KEY (id_client) REFERENCES clients(id_client) ON DELETE CASCADE, + FOREIGN KEY (id_store) REFERENCES stores(id_store) ON DELETE CASCADE, + FOREIGN KEY (id_product) REFERENCES products(id_product) ON DELETE CASCADE, + FOREIGN KEY (id_emp) REFERENCES employees(id_emp) ON DELETE CASCADE +); +