-- Aufgabe 1
-- Tabelle Konto erstellen und mit Daten befüllen
CREATE TABLE Konto (
KontoID INT NOT NULL,
Name VARCHAR(255) NOT NULL,
EMail VARCHAR(255) NOT NULL UIQUE,
Punkte INT NOT NULL CHECK (Punkte >= 0 AND Punkte <= 999)
PRIMARY KEY (KontoID)
);
INSERT INTO Konto VALUES
(1000, "Viola F.", "viola@mail.com", 50),
(1001, "Natan S.", "natan@mail.com", 10),
(1002, "Oscar H.", "oscar@mail.com", 30),
(1003, "Klara W.", "klara@mail.com", 70);
CREATE TABLE Eintrag (
PostID INT PRIMARY KEY,
Autor TEXT(1024), #NOT NULL CHECK (LENGTH(Inhalt) <= 1024),
Datum DATE,
Anonym BOOLEAN,
FOREIGN KEY (Autor) REFERENCES Konto(KontoID) ON DELETE CASCADE
)
INSERT INTO Eintrag VALUES
(10, 1002, "2005-11-13", 1),
(11, 1000, "2005-11-17", 0),
(12, 1001, "2005-11-21", 0),
(13, 1002, "2005-11-25", 1);
CREATE TABLE Kommentar (
KontoID INT FOREIGN KEY,
Zeit TIMESTAMP,
Text TEXT CHECK (LENGTH(Inhalt) <= 1024),
PostID INT FOREIGN KEY,
FOREIGN KEY (KontoID) REFERENCES Konto(KontoID) ON DELETE CASCADE,
FOREIGN KEY (PostID) REFERENCES Eintrag(PostID) ON DELETE CASCADE
);
INSERT INTO Kommentar VALUES
(1000, "2005-11-13 11:45:00.000", "A?", 10),
(1001, "2005-11-13 12:15:00.000", "A!", 10),
(1002, "2005-11-17 11:15:00.000", "B?", 11),
(1003, "2005-11-25 12:45:00.000", "C!", 13);
-- Aufgabe 2
-- a) Einträge erhalten das Attribut 'Punkte' (0 bis 99 – Jeder Eintrag hat Punkte).
ALTER TABLE Beitrag
ADD COLUMN Punkte INT CHECK (Punkte >= 0 AND Punkte <= 99);
-- b) Entfernen Sie die Spalte 'Anonym' der Tabelle 'Einträge'.
ALTER TABLE Beitrag
DROP COLUMN Anonym;
-- c) Entfernen Sie alle Einträge nach dem 17.11.2005.
DELETE FROM Beitrag
WHERE Datum > '2005-11-17';
-- d) Löschen Sie die Tabelle 'Kommentar'.
DROP TABLE Kommentar;