CREATE TABLE user ( userid INT AUTO_INCREMENT PRIMARY KEY, vorname VARCHAR(50), nachname VARCHAR(50), straße VARCHAR(100), hausnr VARCHAR(10), postleitzahl VARCHAR(10), ort VARCHAR(50), land VARCHAR(50), tel VARCHAR(20), email VARCHAR(100) UNIQUE, isAdmin BOOLEAN DEFAULT FALSE, password VARCHAR(255) ); CREATE TABLE standort ( standortid INT AUTO_INCREMENT PRIMARY KEY, straße VARCHAR(100), hausnr VARCHAR(10), postleitzahl VARCHAR(10), ort VARCHAR(50), land VARCHAR(50), tel VARCHAR(20), email VARCHAR(100) ); CREATE TABLE ausstellung ( austellungid INT AUTO_INCREMENT PRIMARY KEY, standortid INT, datum_von DATE, datum_bis DATE, name VARCHAR(100), beschreibung TEXT, max_tickets INT, FOREIGN KEY (standortid) REFERENCES Standort(standortid) ); CREATE TABLE ticket ( ticketid INT AUTO_INCREMENT PRIMARY KEY, userid INT, eventid INT, kaufdatum DATE, gültigkeitsdatum DATE, preis DECIMAL(10,2), FOREIGN KEY (userid) REFERENCES User(userid), FOREIGN KEY (eventid) REFERENCES Ausstellung(austellungid) ); CREATE TABLE gutschein ( gutscheinid INT AUTO_INCREMENT PRIMARY KEY, code VARCHAR(50) UNIQUE, rabatt INT CHECK (rabatt BETWEEN 0 AND 100), eventid INT, gültigkeit DATE, FOREIGN KEY (eventid) REFERENCES Ausstellung(austellungid) ); CREATE TABLE news ( newsid INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), beschreibung TEXT, datum DATE ); --Testdaten INSERT INTO user (vorname, nachname, straße, hausnr, postleitzahl, ort, land, tel, email, isAdmin, password) VALUES ('Max', 'Muster', 'Musterstraße', '1', '12345', 'Musterstadt', 'Deutschland', '0123456789', 'max@muster.de', FALSE, 'passwort123'), ('Anna', 'Beispiel', 'Beispielweg', '5a', '54321', 'Beispielstadt', 'Deutschland', '0987654321', 'anna@beispiel.de', TRUE, 'adminpass'); INSERT INTO standort (straße, hausnr, postleitzahl, ort, land, tel, email) VALUES ('Galeriestraße', '10', '10115', 'Berlin', 'Deutschland', '030123456', 'kontakt@galerie-berlin.de'), ('Kunstallee', '22b', '50667', 'Köln', 'Deutschland', '0221123456', 'info@kunst-koeln.de'); INSERT INTO ausstellung (standortid, datum_von, datum_bis, name, beschreibung, max_tickets) VALUES (1, '2025-07-01', '2025-08-31', 'Moderne Meisterwerke', 'Eine Sammlung moderner Kunstwerke aus Europa.', 200), (2, '2025-09-10', '2025-10-20', 'Kunst der Antike', 'Ausstellung antiker Skulpturen und Gemälde.', 150); INSERT INTO gutschein (code, rabatt, eventid, gültigkeit) VALUES ('SOMMER2025', 15, 1, '2025-08-31'), ('HERBST25', 25, 2, '2025-10-15'); INSERT INTO ticket (userid, eventid, kaufdatum, gültigkeitsdatum, preis) VALUES (1, 1, '2025-06-01', '2025-07-15', 12.50), (2, 2, '2025-06-05', '2025-09-15', 10.00); INSERT INTO news (name, beschreibung, datum) VALUES ('Neuer Standort eröffnet', 'Unsere Galerie in Köln ist jetzt geöffnet!', '2025-06-01'), ('Frühbucher-Rabatt', 'Sichern Sie sich jetzt 15% Rabatt auf unsere Sommerausstellung.', '2025-05-20'); --Änderungen: ALTER TABLE austellung ADD preis decimal NOT NULL ALTER TABLE ticket DROP COLUMN preis ALTER TABLE user MODIFY COLUMN userid INT NOT NULL AUTO_INCREMENT; ALTER TABLE ticket MODIFY COLUMN ticketid INT NOT NULL AUTO_INCREMENT; ALTER TABLE standort MODIFY COLUMN standortid INT NOT NULL AUTO_INCREMENT; ALTER TABLE news MODIFY COLUMN newsid INT NOT NULL AUTO_INCREMENT; ALTER TABLE gutschein MODIFY COLUMN gutscheinid INT NOT NULL AUTO_INCREMENT; ALTER TABLE ausstellung MODIFY COLUMN austellungid INT NOT NULL AUTO_INCREMENT; ALTER TABLE user MODIFY COLUMN isAdmin BOOLEAN DEFAULT FALSE; ALTER TABLE user ADD validUntil DATETIME NOT NULL DEFAULT '3025-01-01 00:00:00';