Files
motocare-statements/MotoCare.sql
2026-03-24 08:21:14 +01:00

84 lines
3.1 KiB
SQL

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);