diff --git a/Lösung/Aufgabe 2 - CREATE Tables.sql b/Lösung/Aufgabe 2 - CREATE Tables.sql index 704679d..460c075 100644 --- a/Lösung/Aufgabe 2 - CREATE Tables.sql +++ b/Lösung/Aufgabe 2 - CREATE Tables.sql @@ -9,14 +9,17 @@ CREATE TABLE IF NOT EXISTS Produkt primary key (ProduktID) ); -CREATE TABLE IF NOT EXISTS Naehrstoff +CREATE TABLE IF NOT EXISTS Naehrwerte ( ProduktID int, - Eiweiss int, - Kohlenhydrate int, - Fett int, + Menge int, + Einheit varchar(100), + Eiweiss double, + Kohlenhydrate double, + Fett double, + Brennwert double, foreign key (ProduktID) references Produkt (ProduktID), - primary key (ProduktID) + primary key (ProduktID, Menge, Einheit) ); CREATE TABLE IF NOT EXISTS Allergen @@ -26,14 +29,6 @@ CREATE TABLE IF NOT EXISTS Allergen primary key (AllergenID) ); -CREATE TABLE IF NOT EXISTS Naehrwerte -( - ProduktID int, - Brennwert int, - foreign key (ProduktID) references Produkt (ProduktID), - primary key (ProduktID) -); - CREATE TABLE IF NOT EXISTS Zusatzstoffklase ( Anwendungsgrund varchar(5), diff --git a/Lösung/Aufgabe 3.sql b/Lösung/Aufgabe 3.sql index 26f0bc0..c1cbca5 100644 --- a/Lösung/Aufgabe 3.sql +++ b/Lösung/Aufgabe 3.sql @@ -62,9 +62,8 @@ LOAD DATA LOCAL INFILE 'Programmentwurf/Zusatzstoffe_Klassen.csv' INTO TABLE Zus CHARACTER SET latin1 FIELDS terminated by ';' LINES TERMINATED BY '\n' - IGNORE 2 LINES (@b, @g) - SET Anwendungsgrund = TRIM(@g), Anwendungsgrundbezeichnung = TRIM(@b); + SET Anwendungsgrund = REGEXP_REPLACE(@g, '[^a-zäöüßA-ZÄÖÜ]+', ''), Anwendungsgrundbezeichnung = TRIM(@b); /* @@ -507,8 +506,18 @@ LIMIT 4; /* ---------------------------------- Naehrwerte ---------------------------------- */ -# TODO - +LOAD DATA LOCAL INFILE 'Programmentwurf/MD_Produkte_Naehrwerte.csv' INTO TABLE Naehrwerte + CHARACTER SET latin1 + FIELDS terminated by ';' + LINES TERMINATED BY '\n' + IGNORE 2 LINES + (@produkt, @menge1, @menge2, @kcal, @ew, @kh, @fett) + SET ProduktID = (SELECT ProduktID + from Produkt + WHERE Produktname = @produkt), Menge = (IF(@menge1 != '-', (REPLACE(@menge1, ' g', '')), + (REPLACE(@menge2, ' ml', '')))), Einheit = (IF(@menge1 != '-', 'g', 'ml')), Kohlenhydrate = @kh, Eiweiss = @ew, Fett = CAST(REPLACE(REPLACE(@fett, CHAR(13), ''), CHAR(10), '') + as double ), Brennwert = @kcal; +# Issue at last for lines: ProduktID cannot be null, ... /* ---------------------------------- eigene Datensätze ----------------------------------