======Beschreibung======
Die fiktive Firma **Failution Consulting** verwaltet ihre Kunden, Artikel und Bestellungen in einem relationalen Datenbanksystem.
======Kundentabelle======
^KUNDEN^^^^^^^^
^KND_Nr^KND_Vorname^KND_Nachname^KND_Firma^KND_Strasse^KND_HausNr^KND_Ort^KND_Notiz^
|1|Max|Mustermann|Mustermann Consulting|Musterstrasse|1|1| |
|2|Theodor|Tester|Test-Solutions AG|Testweg|16|2|Offene Rechnung Nr.3|
|3|Bernhard|Beispiel|Beispielfirma|Beispielgasse|9|3| |
|4|Paul|Pause|Pause development KG|Pausengasse|65|2| |
======Ort-Tabelle======
^ORTE^^^
^ORT_Nr^ORT_PLZ^ORT_Name^
|1|12345|Musterstadt|
|2|55353|Testort|
|3|76425|Beispielkaff|
======Artikeltabelle======
^ARTIKEL^^^^^
^ART_Nr^ART_Bezeichnung^ART_Details^ART_Auslauf^ART_StckPreis^
|1|Thin-Client BAER|1.6 Ghz,Sound,VGA,USB| |199.99|
|2|Thin-Client NP|1.0 Ghz,Sound,VGA+DVI,USB|1|179.99|
|3|Thin-Client MOON|1.2 Ghz,Sound,VGA+DVI+DP,USB| |219.99|
|4|Server CONTRALION|3.4 Ghz,DC,SCSI,RAID|1|1299.99|
|5|Server POWERCORE|3.6 Ghz,QC,SAS,RAID,HBA| |1999.99|
|6|Server STORAGE|2.0 Ghz,SATA,RAID,BACKPLANE| |2499.99|
|7|Workstation CONTENANCE|3.0 Ghz,SAS,Sound,DVI+DP,USB3| |1399.99|
|8|Workstation MORTIMER|2.6 Ghz,SATA,Sound,VGA,USB|1|399.99|
======Bestellungstabelle======
^BESTELLUNGEN^^^^
^BST_Nr^KND_Nr^BST_Datum^BST_Bezahlt^
|1|1|10.10.2010|1|
|2|3|14.02.2011|1|
|3|2|15.02.2011|0|
|4|1|28.02.2011|1|
|5|1|01.03.2011|1|
|6|3|02.03.2011|1|
======Bestellungspositionen-Tabelle======
^BESTELL_POS^^^^^
^BPOS_Nr^BST_Nr^ART_Nr^BPOS_Anzahl^BPOS_Einzelpreis^
|1|1|1|10|199.99|
|2|1|2|15|229.99|
|3|2|2|8|189.99|
|4|2|3|8|219.99|
|5|3|1|1|199.99|
|6|4|2|10|225.99|
|7|4|1|15|195.99|
|8|5|1|50|199.99|
|9|6|6|2|2499.99|
|10|6|7|4|1399.99|
Die Tabelle enthält eine Spalte **BPOS_Einzelpreis**, die den damaligen Einzelpreis definiert - würde sie nicht existieren würden Preisänderungen alte Rechnungsbeträge verfälschen.
======SQL-Dump======
CREATE DATABASE FAILUTION;
USE FAILUTION;
CREATE TABLE KUNDEN(
KND_Nr int PRIMARY KEY AUTO_INCREMENT,
KND_Vorname varchar(50) NOT NULL,
KND_Nachname varchar(50) NOT NULL,
KND_Firma varchar(50) NOT NULL,
KND_Strasse varchar(50) NOT NULL,
KND_HausNr varchar(5) NOT NULL,
KND_Ort int NOT NULL,
KND_Notiz varchar(50)
);
INSERT INTO KUNDEN(KND_Vorname, KND_Nachname, KND_Firma, KND_Strasse, KND_HausNr, KND_Ort)
VALUES('Max', 'Mustermann', 'Mustermann Consulting', 'Musterstrasse', '1', 1);
INSERT INTO KUNDEN (KND_Vorname, KND_Nachname, KND_Firma, KND_Strasse, KND_HausNr, KND_Ort, KND_Notiz)
VALUES ('Theodor', 'Tester', 'Test-Soultions AG', 'Testweg', '16', 2, 'Offene Rechnung Nr.3');
INSERT INTO KUNDEN (KND_Vorname, KND_Nachname, KND_Firma, KND_Strasse, KND_HausNr, KND_Ort)
VALUES ('Bernhard', 'Beispiel', 'Beispielfirma', 'Beispielgasse', '9', 3);
INSERT INTO KUNDEN (KND_Vorname, KND_Nachname, KND_Firma, KND_Strasse, KND_HausNr, KND_Ort)
VALUES ('Paul', 'Pause', 'Pause development KG', 'Pausengasse', '65', 2);
CREATE TABLE ORTE(
ORT_Nr int PRIMARY KEY AUTO_INCREMENT,
ORT_PLZ char(5) NOT NULL,
ORT_Name varchar(50) NOT NULL
);
INSERT INTO ORTE(ORT_PLZ, ORT_Name) VALUES ("12345", "Musterstadt");
INSERT INTO ORTE(ORT_PLZ, ORT_Name) VALUES ("55353", "Testort");
INSERT INTO ORTE(ORT_PLZ, ORT_Name) VALUES ("76425", "Beispielkaff");
CREATE TABLE ARTIKEL(
ART_Nr int PRIMARY KEY AUTO_INCREMENT,
ART_Bezeichnung varchar(50) NOT NULL,
ART_Details varchar(50) NOT NULL,
ART_Auslauf bool NULL,
ART_StckPreis float NOT NULL
);
INSERT INTO ARTIKEL (ART_Bezeichnung, ART_Details, ART_StckPreis)
VALUES ('Thin-Client BAER', '1.6 Ghz,Sound,VGA,USB', 199.99);
INSERT INTO ARTIKEL (ART_Bezeichnung, ART_Details, ART_Auslauf, ART_StckPreis)
VALUES ('Thin-Client NP', '1.0 Ghz,Sound,VGA+DVI,USB', 1, 179.99);
INSERT INTO ARTIKEL (ART_Bezeichnung, ART_Details, ART_StckPreis)
VALUES ('Thin-Client MOON', '1.2 Ghz,Sound,VGA+DVI+DP,USB', 219.99);
INSERT INTO ARTIKEL (ART_Bezeichnung, ART_Details, ART_Auslauf, ART_StckPreis)
VALUES ('Server CONTRALION', '3.4 Ghz,DC,SCSI,RAID', 1, 1299.99);
INSERT INTO ARTIKEL (ART_Bezeichnung, ART_Details, ART_StckPreis)
VALUES ('Server POWERCORE', '3.6 Ghz,QC,SAS,RAID,HBA', 1999.99);
INSERT INTO ARTIKEL (ART_Bezeichnung, ART_Details, ART_StckPreis)
VALUES ('Server STORAGE', '2.0 Ghz,SATA,RAID,BACKPLANE', 2499.99);
INSERT INTO ARTIKEL (ART_Bezeichnung, ART_Details, ART_StckPreis)
VALUES ('Workstation CONTENANCE', '3.0 Ghz,SAS,Sound,DVI+DP,USB3', 1399.99);
INSERT INTO ARTIKEL (ART_Bezeichnung, ART_Details, ART_Auslauf, ART_StckPreis)
VALUES ('Workstation MORTIMER', '2.6 Ghz,SATA,Sound,VGA,USB', 1, 399.99);
CREATE TABLE BESTELLUNGEN(
BST_Nr int PRIMARY KEY AUTO_INCREMENT,
KND_Nr int NOT NULL,
BST_Datum date NOT NULL,
BST_Bezahlt bool NULL
);
INSERT INTO BESTELLUNGEN (KND_Nr, BST_Datum, BST_Bezahlt)
VALUES (1, '2010.10.10', 1);
INSERT INTO BESTELLUNGEN (KND_Nr, BST_Datum, BST_Bezahlt)
VALUES (3, '2011.02.14', 1);
INSERT INTO BESTELLUNGEN (KND_Nr, BST_Datum)
VALUES (2, '2011.02.15');
INSERT INTO BESTELLUNGEN (KND_Nr, BST_Datum, BST_Bezahlt)
VALUES (1, '2011.02.28', 1);
INSERT INTO BESTELLUNGEN (KND_Nr, BST_Datum, BST_Bezahlt)
VALUES (1, "2011.03.01", 1);
INSERT INTO BESTELLUNGEN (KND_Nr, BST_Datum, BST_Bezahlt)
VALUES (3, "2011.03.02", 1);
CREATE TABLE BESTELL_POS(
BPOS_Nr int PRIMARY KEY AUTO_INCREMENT,
BST_Nr int NOT NULL,
ART_Nr int NOT NULL,
BPOS_Anzahl int NOT NULL,
BPOS_Einzelpreis float NOT NULL
);
INSERT INTO BESTELL_POS (BST_Nr, ART_Nr, BPOS_Anzahl, BPOS_Einzelpreis)
VALUES (1, 1, 10, 199.99),
(1, 2, 15, 229.99),
(2, 2, 8, 189.99),
(2, 3, 8, 219.99),
(3, 1, 1, 199.99),
(4, 2, 10, 225.99),
(4, 1, 15, 195.99),
(5, 1, 50, 199.99),
(6, 6, 2, 2499.99),
(6, 7, 4, 1399.99);