SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
--Aufgabe 1 CREATE TABLE Bahnstation ( Name VARCHAR(30) NOT NULL CHECK (LENGTH(Name) >= 3), Barrierefrei BOOLEAN NULL, Unterirdisch BOOLEAN NULL, Toiletten INTEGER CHECK (Toiletten >= 0), PRIMARY KEY (Name) ); CREATE TABLE Straßenbahn ( Linie INTEGER NOT NULL CHECK (Linie >= 1), Farbe VARCHAR(10) NOT NULL UNIQUE, Strecke VARCHAR(255) NULL, PRIMARY KEY (Linie) ); CREATE TABLE Fahrzeug ( Fahrzeug CHAR(8) NOT NULL CHECK ( Fahrzeug LIKE '^FN-[a-zA-Z0-9]{2}-[a-zA-Z0-9]{2}$' AND (POSITION('Q' IN Fahrzeug) = 0 AND POSITION('R' IN Fahrzeug) = 0) ), Linie INTEGER NULL, PRIMARY KEY (Fahrzeug), FOREIGN KEY (Linie) REFERENCES Straßenbahn(Linie) ON DELETE SET NULL ); CREATE TABLE Fahrplan ( Fahrzeug CHAR(8) NOT NULL, Minute INTEGER NOT NULL, Richtung VARCHAR(30) NOT NULL, Station VARCHAR(30) NOT NULL, PRIMARY KEY (Fahrzeug, Minute), FOREIGN KEY (Fahrzeug) REFERENCES Fahrzeug(Fahrzeug), FOREIGN KEY (Richtung) REFERENCES Bahnstation(Name) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (Station) REFERENCES Bahnstation(Name) ON DELETE CASCADE ); --Aufgabe 2 --a SELECT * FROM Bahnstation WHERE Unterirdisch = TRUE AND Toiletten >= 2; --b SELECT F.Station FROM Fahrplan F JOIN Fahrzeug Fa ON Fa.Fahrzeug = F.Fahrzeug JOIN Straßenbahn S ON S.Linie = Fa.Linie WHERE S.Linie = 4 OR S.Farbe = 'GELB'; --c SELECT Fa.Linie, COUNT(DISTINCT F.Station) AS 'Anzahl Stationen' FROM Fahrplan F JOIN Fahrzeug Fa ON Fa.Fahrzeug = F.Fahrzeug GROUP BY Fa.Linie; --d SELECT F.Station FROM Fahrplan F JOIN Fahrzeug Fa ON F.Fahrzeug = Fa.Fahrzeug GROUP BY F.Station HAVING COUNT(DISTINCT Fa.Linie) = (SELECT COUNT(*) FROM Straßenbahn); --e WITH Station_Bedienungen AS ( SELECT Station, COUNT(*) AS Bedienungen FROM Fahrplan GROUP BY Station ), Durchschnitt AS ( SELECT AVG(Bedienungen) AS Durchschnittsbedienungen FROM Station_Bedienungen ) SELECT sb.Station, sb.Bedienungen FROM Station_Bedienungen sb WHERE sb.Bedienungen > (SELECT Durchschnittsbedienungen FROM Durchschnitt) ORDER BY sb.Station DESC; --Aufgabe 3 --a DELETE FROM Straßenbahn WHERE Strecke LIKE '%Jahnplatz%' AND Strecke LIKE '%Nordpark%'; --b UPDATE Bahnstation SET Toiletten = Toiletten + 2 WHERE Unterirdisch = TRUE; --c ALTER TABLE Fahrzeug ADD Baujahr INTEGER; --d ALTER TABLE Fahrzeug DROP COLUMN Baujahr; --e ALTER TABLE Fahrplan ADD CHECK (Minute >= 0 AND Minute <= 59); --f DROP TABLE Bahnstation; --Aufgabe 4 SELECT f1.Station AS Start, f1.Minute AS Abfahrt, fa.Linie, f1.Richtung AS Endstation, f2.Station AS Ziel, f2.Minute AS Ankunft FROM Fahrplan f1 JOIN Fahrplan f2 ON f1.Fahrzeug = f2.Fahrzeug JOIN Fahrzeug fa ON f1.Fahrzeug = fa.Fahrzeug WHERE f1.Minute >= 00 AND f2.Minute > f1.Minute AND f2.Minute < 59 AND f2.Station = f1.Richtung ORDER BY f2.Minute ASC;

Stuck with a problem? Got Error? Ask ChatGPT!

Copy Clear