SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
-- HUE-Zettel 4, Aufgabe 1.1 CREATE TABLE Konto ( KontoID INTEGER PRIMARY KEY, Name TEXT NOT NULL, EMail VARCHAR(50) NOT NULL UNIQUE, Punkte INTEGER NOT NULL, CHECK(Punkte BETWEEN 0 AND 999) ); CREATE TABLE Eintrag ( PostID INTEGER PRIMARY KEY, Autor TEXT NOT NULL REFERENCES Konto ON DELETE CASCADE, Datum DATE NOT NULL, Anonym BOOLEAN NOT NULL ); CREATE TABLE Kommentar ( KontoID INTEGER NOT NULL REFERENCES Konto ON DELETE CASCADE, Zeit TIMESTAMP NOT NULL, Text TEXT NOT NULL, PostID INTEGER NOT NULL REFERENCES Eintrag ON DELETE CASCADE, PRIMARY KEY (KontoID, Zeit, PostID), CHECK(LENGTH(Text) <= 1024) ); -- HUE-Zettel 4, Aufgabe 1.2 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); 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), (14, 1002, "2005-11-13", 0); 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), (1004, "2005-11-13 11:15:00.000", "D.", 14); CREATE VIEW E AS (SELECT PostID FROM Eintrag WHERE Datum = (SELECT min(Datum) FROM Eintrag)); CREATE VIEW X AS (SELECT * FROM Kommentar NATURAL JOIN E); -- SELECT * FROM X; SELECT PostID, min(Zeit) FROM X GROUP BY PostID; SELECT PostID, Zeit, Text, LENGTH(Text) FROM X NATURAL JOIN (SELECT PostID, min(Zeit) as Zeit FROM X GROUP BY PostID) as Y; -- SELECT PostID, Zeit, Text, LENGTH(Text) FROM -- X WHERE Zeit IN (SELECT min(Zeit) FROM X GROUP BY PostID) -- ;
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear