DROP DATABASE IF EXISTS MotoCare; CREATE DATABASE MotoCare; USE MotoCare; -- 1. CREAZIONE TABELLE CREATE TABLE MOTOCICLISTA ( idTessera INT AUTO_INCREMENT PRIMARY KEY, cognome VARCHAR(50) NOT NULL, nome VARCHAR(50) NOT NULL, dataNascita DATE, marcaMoto VARCHAR(50), email VARCHAR(100) ); CREATE TABLE LAVORAZIONE ( codiceLavoro VARCHAR(10) PRIMARY KEY, descrizione VARCHAR(100) NOT NULL, meccanico VARCHAR(50) ); -- Questa tabella deriva dalla relazione N:N "RICHIEDERE" CREATE TABLE RICHIEDERE ( idRichiesta INT AUTO_INCREMENT PRIMARY KEY, -- inserita per meglio identificare ogni singola richiesta dataRichiesta DATE NOT NULL, costo DECIMAL(10, 2), -- Attributo della relazione tipo VARCHAR(50), -- Attributo della relazione idTessera INT, -- FK che punta a Motociclista codiceLavoro VARCHAR(10), -- FK che punta a Lavorazione FOREIGN KEY (idTessera) REFERENCES MOTOCICLISTA(idTessera), FOREIGN KEY (codiceLavoro) REFERENCES LAVORAZIONE(codiceLavoro) ); CREATE TABLE SINISTRO ( idSinistro INT AUTO_INCREMENT PRIMARY KEY, dataSinistro DATE, giorniFermo INT, rimborsato CHAR(1) DEFAULT 'N', -- il valore di default è sempre 'N' idTessera INT, FOREIGN KEY (idTessera) REFERENCES MOTOCICLISTA(idTessera) ); -- 2. INSERIMENTO DATI -- NOTA BENE: Avendo inserito le Primary Key come INT AUTO_INCREMENT, nelle insert non vengono inserite perchè è il sistema che lo fa in automatico INSERT INTO MOTOCICLISTA (cognome, nome, dataNascita, marcaMoto, email) VALUES ('Rossi', 'Marco', '1990-05-12', 'Ducati', 'marco.rossi@email.it'), ('Bianchi', 'Luca', '1985-11-20', 'Honda', 'luca.bianchi@email.it'), ('Verdi', 'Anna', '1995-02-15', 'Yamaha', NULL), ('Neri', 'Giorgio', '2000-08-10', 'Ducati', 'gio.neri@test.com'), ('Esposito', 'Giulia', '1998-07-01', 'BMW', 'giulia@email.it'), ('Romano', 'Paolo', '1988-12-30', 'KTM', NULL), ('Ferrari', 'Matteo', '1992-03-25', 'Aprilia', 'matteo@email.it'); INSERT INTO LAVORAZIONE (codiceLavoro, descrizione, meccanico) VALUES ('L01', 'Tagliando Completo', 'Mario Andero'), ('L02', 'Sostituzione Pneumatici', 'Luigi Coretti'), ('L03', 'Revisione Motore', 'Giovanni Arturi'), ('L04', 'Sostituzione Freni', 'Mario Andero'), ('L05', 'Controllo Elettronica', 'Anna Ferroli'); INSERT INTO RICHIEDERE (dataRichiesta, costo, tipo, idTessera, codiceLavoro) VALUES ('2024-01-10', 150.00, 'Tagliando', 1, 'L01'), ('2024-02-15', 40.00, 'Urgenza', 1, 'L02'), ('2024-03-20', 250.00, 'Straordinario', 2, 'L03'), ('2024-05-10', 90.00, 'Tagliando', 2, 'L01'), ('2024-06-05', 45.00, 'Ordinario', 3, 'L04'), ('2024-07-01', 300.00, 'Straordinario', 4, 'L03'), ('2024-08-12', 200.00, 'Ordinario', 5, 'L02'), ('2024-10-15', 500.00, 'Urgenza', 1, 'L03'), ('2024-09-09', 120.00, 'Urgenza', 4, 'L02'), ('2024-11-20', 180.00, 'Tagliando', 5, 'L01'); INSERT INTO SINISTRO (dataSinistro, giorniFermo, idTessera) VALUES ('2024-05-10', 3, 1), ('2024-06-20', 5, 1), ('2024-10-05', 2, 2), ('2024-10-25', 10, 3), ('2023-01-01', 1, 7), ('2023-02-01', 1, 7), ('2023-03-01', 1, 7), ('2023-04-01', 1, 7), ('2023-05-01', 1, 7), ('2023-06-01', 1, 7);