From 9daf511f82645c38cbd0467af99be0c1cefb4a81 Mon Sep 17 00:00:00 2001 From: Irma Fernandez Date: Mon, 15 Sep 2025 20:52:19 +0200 Subject: [PATCH 1/9] Lab create DB done --- create.sql | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ delete.sql | 14 ++++++++++++ erd.png | Bin 0 -> 45546 bytes seeding.sql | 51 ++++++++++++++++++++++++++++++++++++++++++++ update.sql | 21 ++++++++++++++++++ 5 files changed, 146 insertions(+) create mode 100644 create.sql create mode 100644 delete.sql create mode 100644 erd.png create mode 100644 seeding.sql create mode 100644 update.sql diff --git a/create.sql b/create.sql new file mode 100644 index 0000000..cf253b3 --- /dev/null +++ b/create.sql @@ -0,0 +1,60 @@ + +CREATE DATABASE IF NOT EXISTS lab_mysql; +USE lab_mysql; + +DROP TABLE IF EXISTS invoices; +DROP TABLE IF EXISTS salespersons; +DROP TABLE IF EXISTS customers; +DROP TABLE IF EXISTS cars; + +CREATE TABLE cars ( + id INT AUTO_INCREMENT PRIMARY KEY, + vin VARCHAR(20) NOT NULL, + manufacturer VARCHAR(40) NOT NULL, + model VARCHAR(40) NOT NULL, + year INT NOT NULL, + color VARCHAR(25) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +DESCRIBE cars; + +CREATE TABLE customers ( + id INT AUTO_INCREMENT PRIMARY KEY, + cust_id VARCHAR(15) NOT NULL UNIQUE, + name VARCHAR(100) NOT NULL, + phone VARCHAR(30), + email VARCHAR(250), + address VARCHAR(120), + city VARCHAR(60), + state VARCHAR(60), + country VARCHAR(60), + zipcode VARCHAR(15) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +DESCRIBE customers; + +CREATE TABLE salespersons ( + id INT AUTO_INCREMENT PRIMARY KEY, + staff_id VARCHAR(15) NOT NULL UNIQUE, + name VARCHAR(100) NOT NULL, + store VARCHAR(60) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +DESCRIBE salespersons; + +CREATE TABLE invoices ( + id INT AUTO_INCREMENT PRIMARY KEY, + invoice_number VARCHAR(20) NOT NULL UNIQUE, + date DATE NOT NULL, + car_id INT NOT NULL, + customer_id INT NOT NULL, + salesperson_id INT NOT NULL, + FOREIGN KEY (car_id) REFERENCES cars(id), + FOREIGN KEY (customer_id) REFERENCES customers(id), + FOREIGN KEY (salesperson_id) REFERENCES salespersons(id) + -- Si quieres forzar que un coche solo aparezca en una factura, + -- después del seeding puedes añadir: ALTER TABLE invoices ADD UNIQUE (car_id); +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; + +DESCRIBE invoices; + SHOW TABLES; diff --git a/delete.sql b/delete.sql new file mode 100644 index 0000000..abbe8aa --- /dev/null +++ b/delete.sql @@ -0,0 +1,14 @@ +USE lab_mysql; + + +SET SQL_SAFE_UPDATES = 0; + +-- delete duplicate (VIN DAM41UDN3CHU2WVF6) con id = 4 +DELETE FROM cars +WHERE id = 4; + + +SELECT id, vin, manufacturer, model FROM cars; + + +SET SQL_SAFE_UPDATES = 1; diff --git a/erd.png b/erd.png new file mode 100644 index 0000000000000000000000000000000000000000..e6fc5d3fe0c99e4bb3cc511117ca9564935735d3 GIT binary patch literal 45546 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 Kq*JM77x7=wirhW` literal 0 HcmV?d00001 diff --git a/seeding.sql b/seeding.sql new file mode 100644 index 0000000..b978a7b --- /dev/null +++ b/seeding.sql @@ -0,0 +1,51 @@ +USE lab_mysql; + +-- cleaning +SET FOREIGN_KEY_CHECKS = 0; +TRUNCATE TABLE invoices; +TRUNCATE TABLE salespersons; +TRUNCATE TABLE customers; +TRUNCATE TABLE cars; +SET FOREIGN_KEY_CHECKS = 1; + +-- 1) CARS +INSERT INTO cars (id, vin, manufacturer, model, year, color) VALUES +(1,'3K096I98581DHSNUP','Volkswagen','Tiguan',2019,'Blue'), +(2,'ZM8G7BEUQZ97IH46V','Peugeot','Rifter',2019,'Red'), +(3,'RKXVNNIHLVVZOUB4M','Ford','Fusion',2018,'White'), +(4,'HKNDGS7CU31E9Z7JW','Toyota','RAV4',2018,'Silver'), +(5,'DAM41UDN3CHU2WVF6','Volvo','V60',2019,'Gray'), +(6,'DAM41UDN3CHU2WVF6','Volvo','V60 Cross Country',2019,'Gray'); + +-- 2) CUSTOMERS +INSERT INTO customers +(id, cust_id, name, phone, email, address, city, state, country, zipcode) +VALUES +(1,'10001','Pablo Picasso','+34 636 17 63 82',NULL,'Paseo de la Chopera, 14','Madrid','Madrid','Spain','28045'), +(2,'20001','Abraham Lincoln','+1 305 907 7086',NULL,'120 SW 8th St','Miami','Florida','United States','33130'), +(3,'30001','Napoléon Bonaparte','+33 1 79 75 40 00',NULL,'40 Rue du Colisée','Paris','Île-de-France','France','75008'); + +-- 3) SALESPERSONS +INSERT INTO salespersons (id, staff_id, name, store) VALUES +(1,'00001','Petey Cruiser','Madrid'), +(2,'00002','Anna Sthesia','Barcelona'), +(3,'00003','Paul Molive','Berlin'), +(4,'00004','Gail Forcewind','Paris'), +(5,'00005','Paige Turner','Mimia'), +(6,'00006','Bob Frapples','Mexico City'), +(7,'00007','Walter Melon','Amsterdam'), +(8,'00008','Shonda Leer','São Paulo'); + +-- 4) INVOICES +INSERT INTO invoices (id, invoice_number, date, car_id, customer_id, salesperson_id) VALUES +(1,'852399038','2018-08-22',1,1,3), +(2,'731166526','2018-12-31',3,3,5), +(3,'271135104','2019-01-22',2,2,7); + +-- testing +SELECT * FROM cars; +SELECT * FROM customers; +SELECT * FROM salespersons; +SELECT * FROM invoices; + + diff --git a/update.sql b/update.sql new file mode 100644 index 0000000..ab0c278 --- /dev/null +++ b/update.sql @@ -0,0 +1,21 @@ +USE lab_mysql; + +SET SQL_SAFE_UPDATES = 0; + +UPDATE customers +SET email = 'ppicasso@gmail.com' +WHERE name = 'Pablo Picasso'; + +UPDATE customers +SET email = 'lincoln@us.gov' +WHERE name = 'Abraham Lincoln'; + +UPDATE customers +SET email = 'hello@napoleon.me' +WHERE name = 'Napoléon Bonaparte'; + +SET SQL_SAFE_UPDATES = 1; + +USE lab_mysql; +SELECT name, email FROM customers; + From 74df486334a53810b7780b6ee480b79f90e108b7 Mon Sep 17 00:00:00 2001 From: Irma Fernandez Date: Mon, 15 Sep 2025 21:10:36 +0200 Subject: [PATCH 2/9] Add ERD diagram to README --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 57ab389..457a019 100644 --- a/README.md +++ b/README.md @@ -234,4 +234,8 @@ git push origin master - [MySQL Reference: Creating a Table](https://dev.mysql.com/doc/refman/8.0/en/creating-tables.html) - [MySQL Reference: INSERT Syntax](https://dev.mysql.com/doc/refman/8.0/en/insert.html) - [MySQL Reference: UPDATE Syntax](https://dev.mysql.com/doc/refman/8.0/en/update.html) -- [MySQL Reference: DELETE Syntax](https://dev.mysql.com/doc/refman/8.0/en/delete.html) \ No newline at end of file +- [MySQL Reference: DELETE Syntax](https://dev.mysql.com/doc/refman/8.0/en/delete.html) + +## Challenge 1 - ERD Diagram + +![ERD Diagram](erd.png) From bd890f6d37749fbd3166d047ca23cd3dac2dff58 Mon Sep 17 00:00:00 2001 From: Irma Fernandez Date: Mon, 15 Sep 2025 21:30:51 +0200 Subject: [PATCH 3/9] Restructure README with Challenges --- README.md | 237 ++---------------------------------------------------- 1 file changed, 5 insertions(+), 232 deletions(-) diff --git a/README.md b/README.md index 457a019..7adbcd6 100644 --- a/README.md +++ b/README.md @@ -1,241 +1,14 @@ -![logo_ironhack_blue 7](https://user-images.githubusercontent.com/23629340/40541063-a07a0a8a-601a-11e8-91b5-2f13e4e6b441.png) - # Lab | MySQL Database Creation -
- -

Learning Goals

-
- - This lab allows you to practice and apply the concepts and techniques taught in class. - - Upon completion of this lab, you will be able to: - -- Design and implement a database schema that accurately represents the relationships between the data sources and allows for efficient querying and analysis. -- Use appropriate SQL commands to load the data into the database, ensuring data integrity and consistency. - -
-
- -
- -
- -

Prerequisites

-
- -Before this starting this lab, you should have learnt about: - -- Fundamental concepts of database design, including entities, attributes, primary keys, and foreign keys. -- Basic comprehension of SQL syntax and statements, such as CREATE, INSERT INTO, UPDATE, and DELETE. -- Familiarity with the concept of NOT NULL constraints and data types in SQL. - -
-
- -
- - -## Introduction - -Welcome to this lab where you will practice how to design, create and manage a database. In this lab, you will act as a data expert at a car dealership company which sells new cars of various brands and models. You have been assigned the task of designing, creating, and managing a database to keep records about cars, salespersons, customers, and invoices. - -This lab consists of three challenges that will help you to achieve this task. In the first challenge, you will design the database by identifying the entities and their relationships. In the second challenge, you will create the database and tables using MySQL and the `CREATE DATABASE` and `CREATE TABLE` statements. Finally, in the third challenge, you will insert data into the tables using the `INSERT INTO` statement. In the bonus challenge, you will update data using the `UPDATE` statement and delete data using the `DELETE` statement. - -By completing this lab, you will gain valuable experience in designing and creating a database, and managing data in a relational database management system. Let's get started! - -## Challenge 1 - Design the Database - -Design an **Entity-Relationship (E-R) diagram** for your database. - -The database should have at least four tables: `cars`, `customers`, `salespersons` and `invoices`. - -The minimal information to be recorded is described below: - -1. **Cars** - e.g. the vehicle identification number (VIN), manufacturer, model, year, and color of the cars in your company's inventory. - -1. **Customers** - e.g. the customer ID, name, phone number, email, address, city, state/province, country, and zip/postal code of the customers. - -1. **Salespersons** - e.g. staff ID, name, and the store at your company. - -1. **Invoices** - e.g. the invoice number, date, car, customer, and salesperson related to each car sale. - -When designing a database, it's important to consider several aspects to ensure its functionality and efficiency. Here are some things to keep in mind: - -* **Entities and attributes** - * Start by identifying the entities you need to store in your database and the attributes (or properties) that describe each entity. - * For each attribute, decide on the most appropriate data type to use. - * Determine which attributes are mandatory and which are optional. - * For each entity, you should also create an auto-increment numeric ID column using the `AUTO_INCREMENT` feature in MySQL. - * The auto-increment ID should be different from the customer ID or staff ID. - -* **Relations between entities** - * Identify the relationships between the entities in your database. Decide if each relationship is a one-to-one, one-to-many, or many-to-many relationship. One-to-one relationships occur when each entity in one table corresponds to exactly one entity in the other table. One-to-many relationships occur when each entity in one table corresponds to one or more entities in the other table. Many-to-many relationships occur when each entity in one table corresponds to multiple entities in the other table, and vice versa. - -* **Primary keys and foreign keys** - * Use primary keys and foreign keys to establish relationships between the entities in your database. - * Primary keys are unique identifiers for each entity in a table, and are used to link entities in different tables together. - * Foreign keys are used to reference the primary key of another table, creating a relationship between the two tables. - -Your end product of this challenge should look something like the E-R diagram shown below, although it doesn't have to be that complicated: - -![ERD](https://s3-eu-west-1.amazonaws.com/ih-materials/uploads/data-static/images/erd.png) - -Using pen and paper (or computer software if you are skilled at creating digital diagrams), design a database to meet the minimum requirements of the task. - +## Challenge 1 - ERD Diagram +![ERD Diagram](erd.png) ## Challenge 2 - Create the Database and Tables - -In this challenge, you will create the database and tables based on the database design you created in Challenge 1. - -1. Open MySQL Workbench. -2. Create a new file named `create.sql`. -3. **Create a MySQL database for this lab** using SQL Query Script in MySQL Workbench. You can execute the following code: - - ```sql - CREATE DATABASE IF NOT EXISTS lab_mysql; - - USE lab_mysql; - ``` - -4. **Write SQL queries to create the tables and columns based on your database design.** - - You will use the `CREATE TABLE` statement for this purpose. You can find the reference for the `CREATE TABLE` statement [here](https://dev.mysql.com/doc/refman/8.0/en/creating-tables.html). - - To test your `CREATE TABLE` statement, you should add a `DROP TABLE` statement above each `CREATE TABLE` statement in your script, like this: - - ```sql - DROP TABLE IF EXISTS cars; - - CREATE TABLE cars ( - ... - ); - ``` - - Make sure to end each statement with a semicolon. - -5. Save the `create.sql` file and execute it to create the database and tables. +SQL script: [create.sql](create.sql) ## Challenge 3 - Seeding the Database - -The purpose of *database seeding* is to provide some initial data for an empty database to start software development based on that data. - -Here are some instructions to seed your database: - -1. Open MySQL Workbench and connect the database to where you want to seed the data. -2. Create a new file named `seeding.sql`. -3. Use the `INSERT INTO` statement to insert data into your database. For example: - - ```sql - INSERT INTO users (id, name, email) - VALUES (1, 'John Doe', 'johndoe@example.com'), - (2, 'Jane Smith', 'janesmith@example.com'), - (3, 'Bob Johnson', 'bobjohnson@example.com'); - ``` - - This would insert three records into the `users` table, with the specified `id`, `name`, and `email` values. - - You can find more information on how to use `INSERT INTO` [here](https://dev.mysql.com/doc/refman/8.0/en/insert.html). - -4. Save the `seeding.sql` file and execute it to insert the data into your database. - -5. There is some sample dummy data for your convenience provided below, but please note that they may not be compatible with your specific database design. It is possible that you may need to modify them to fit the appropriate format. - -### Cars - -| id | vin | manufacturer | model | year | color | -| --- | --- | --- | --- | --- | --- | -| 1 | 3K096I98581DHSNUP | Volkswagen | Tiguan | 2019 | Blue | -| 2 | ZM8G7BEUQZ97IH46V | Peugeot | Rifter | 2019 | Red | -| 3 | RKXVNNIHLVVZOUB4M | Ford | Fusion | 2018 | White | -| 4 | HKNDGS7CU31E9Z7JW | Toyota | RAV4 | 2018 | Silver | -| 5 | DAM41UDN3CHU2WVF6 | Volvo | V60 | 2019 | Gray | -| 6 | DAM41UDN3CHU2WVF6 | Volvo | V60 Cross Country | 2019 | Gray | - -### Customers - -| id | cust_id | cust_name | cust_phone | cust_email | cust_address | cust_city | cust_state | cust_country | cust_zipcode | -| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | -| 0 | 10001 | Pablo Picasso | +34 636 17 63 82 | - | Paseo de la Chopera, 14 | Madrid | Madrid | Spain | 28045 | -| 1 | 20001 | Abraham Lincoln | +1 305 907 7086 | - | 120 SW 8th St | Miami | Florida | United States | 33130 | -| 2 | 30001 | Napoléon Bonaparte | +33 1 79 75 40 00 | - | 40 Rue du Colisée | Paris | Île-de-France | France | 75008 | - -### Salespersons - -| id | staff_id | name | store | -| --- | --- | --- | --- | -| 1 | 00001 | Petey Cruiser | Madrid | -| 2 | 00002 | Anna Sthesia | Barcelona | -| 3 | 00003 | Paul Molive | Berlin | -| 4 | 00004 | Gail Forcewind | Paris | -| 5 | 00005 | Paige Turner | Mimia | -| 6 | 00006 | Bob Frapples | Mexico City | -| 7 | 00007 | Walter Melon | Amsterdam | -| 8 | 00008 | Shonda Leer | São Paulo | - -### Invoices - -| id | invoice_number | date | car | customer | salesperson | -| --- | --- | --- | --- | --- | --- | -| 1 | 852399038 | 22-08-2018 | 1 | 1 | 3 | -| 2 | 731166526 | 31-12-2018 | 3 | 3 | 5 | -| 3 | 271135104 | 22-01-2019 | 2 | 2 | 7 | - - +SQL script: [seeding.sql](seeding.sql) ## Bonus Challenge - Updating and Deleting Database Records +SQL scripts: [update.sql](update.sql) and [delete.sql](delete.sql) -Congratulations on reaching the bonus challenge! In this challenge, you will update and delete database records. - -To begin, you have been provided with the email addresses of three customers in the form of a table. Your task is to create an `update.sql` file that will update the existing data in your database with the new email addresses. - -| Name | Email | -| --- | ---| -| Pablo Picasso | ppicasso@gmail.com | -| Abraham Lincoln | lincoln@us.gov | -| Napoléon Bonaparte | hello@napoleon.me | - - -Additionally, you have discovered a duplicated car entry with the VIN `DAM41UDN3CHU2WVF6`, and you want to remove the entry with car ID #4 from the database. You will need to create a `delete.sql` file to perform this deletion. - -Hint: if you get an error *You are using safe update mode* while updating, you can fix it by desabling safe mode using `SET SQL_SAFE_UPDATES = 0;` - -## Requirements - -- Fork this repo -- Clone it to your machine - - -## Getting Started - -Complete the challenges in this readme. Follow the instructions and implement: - -- Your database design diagram in the form of image. - -- `create.sql` and `seeding.sql` - -- [OPTIONAL] `update.sql` and `delete.sql` - -## Submission - -- Upon completion, run the following commands: - -```bash -git add . -git commit -m "Solved lab" -git push origin master -``` - -- Create a Pull Request so that your TAs can check your work. - -## References - -- [Database seeding](https://en.wikipedia.org/wiki/Database_seeding) -- [MySQL Reference: Creating a Table](https://dev.mysql.com/doc/refman/8.0/en/creating-tables.html) -- [MySQL Reference: INSERT Syntax](https://dev.mysql.com/doc/refman/8.0/en/insert.html) -- [MySQL Reference: UPDATE Syntax](https://dev.mysql.com/doc/refman/8.0/en/update.html) -- [MySQL Reference: DELETE Syntax](https://dev.mysql.com/doc/refman/8.0/en/delete.html) - -## Challenge 1 - ERD Diagram - -![ERD Diagram](erd.png) From 8e60e159a7511bc07a53c366363687617778df90 Mon Sep 17 00:00:00 2001 From: Irma Fernandez Date: Mon, 15 Sep 2025 21:38:55 +0200 Subject: [PATCH 4/9] Fix Challenge 1 - Add ERD diagram correctly --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7adbcd6..0258147 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Lab | MySQL Database Creation ## Challenge 1 - ERD Diagram -![ERD Diagram](erd.png) +![ERD Diagram](./erd.png) ## Challenge 2 - Create the Database and Tables SQL script: [create.sql](create.sql) @@ -12,3 +12,4 @@ SQL script: [seeding.sql](seeding.sql) ## Bonus Challenge - Updating and Deleting Database Records SQL scripts: [update.sql](update.sql) and [delete.sql](delete.sql) + From 9f9fa151f36090e3b8aefcbd56dcc6895cd339e5 Mon Sep 17 00:00:00 2001 From: Irma Fernandez Date: Mon, 15 Sep 2025 21:52:26 +0200 Subject: [PATCH 5/9] Fix ERD diagram markdown syntax --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0258147..382fc50 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Lab | MySQL Database Creation ## Challenge 1 - ERD Diagram -![ERD Diagram](./erd.png) +![ERD](erd.png) ## Challenge 2 - Create the Database and Tables SQL script: [create.sql](create.sql) From c91c76afc6ec22d8ae1ab29bd46c3d41c6a60791 Mon Sep 17 00:00:00 2001 From: Irma Fernandez Date: Mon, 15 Sep 2025 22:06:52 +0200 Subject: [PATCH 6/9] Fix Challenge 1 - ERD Diagram final --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 382fc50..57698c2 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Lab | MySQL Database Creation ## Challenge 1 - ERD Diagram -![ERD](erd.png) +![ERD Diagram](erd.png) ## Challenge 2 - Create the Database and Tables SQL script: [create.sql](create.sql) From a12a75467d3bb11764f0708daa34191760efbe10 Mon Sep 17 00:00:00 2001 From: Irma Fernandez Date: Mon, 15 Sep 2025 22:18:49 +0200 Subject: [PATCH 7/9] Fix Challenge 1 title to E-R Diagram --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 57698c2..1eadaa6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Lab | MySQL Database Creation -## Challenge 1 - ERD Diagram -![ERD Diagram](erd.png) +## Challenge 1 - E-R Diagram +![E-R Diagram](erd.png) ## Challenge 2 - Create the Database and Tables SQL script: [create.sql](create.sql) From 3766d38f745fcd8e0e72758c19ea2fa7b2a55c89 Mon Sep 17 00:00:00 2001 From: Irma Fernandez Date: Tue, 16 Sep 2025 00:29:18 +0200 Subject: [PATCH 8/9] Update ER diagram reference to EDR.png in README --- E-R Diagram.png | Bin 0 -> 52034 bytes README.md | 7 ++++++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 E-R Diagram.png diff --git a/E-R Diagram.png b/E-R Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..cac5ad96a90e14dee0b76b552fe3df56a47ea4de GIT binary patch literal 52034 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 tAPqaACLlODX(KUiB_JRmg^opH0%lvEYmv Date: Tue, 16 Sep 2025 00:43:04 +0200 Subject: [PATCH 9/9] Show both ER diagrams in README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c375ed0..62f8869 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,10 @@ ## Challenge 1 - E-R Diagram ### Primer diagrama (sin espacios en el nombre) -![ERD Diagram](erd.png) +![ERD versión 1](erd.png) ### Segundo diagrama (con espacio en el nombre) -![E-R Diagram](E-R%20Diagram.png) +![ERD versión 2](E-R%20Diagram.png) ## Challenge 2 - Create the Database and Tables SQL script: [create.sql](create.sql)