PROMPT Wintersemester 1998 PROMPT Leistungsnachweis K 849 Pruefung P2 PROMPT PROMPT Etliche der folgenden Programmzeilen sind nicht Teil PROMPT der Loesung, sondern machen die Zeilen ablauffaehig PROMPT und dienen damit lediglich der Ueberpruefung PROMPT der Korrektheit der Loesung. PROMPT PROMPT Aufgabe 1 PROMPT Erstellen der Tabellen DROP TABLE haltestellen; CREATE TABLE haltestellen (nummer_der_haltestelle NUMBER, name_der_haltestelle CHAR(20)); INSERT INTO haltestellen VALUES( 1, 'Hauptbahnhof'); INSERT INTO haltestellen VALUES( 2, 'Marienplatz'); INSERT INTO haltestellen VALUES( 3, 'Prinz-Eugen-Allee'); INSERT INTO haltestellen VALUES( 7, 'Dorfanger'); INSERT INTO haltestellen VALUES( 8, 'Im Wingert'); INSERT INTO haltestellen VALUES( 14, 'Parkfriedhof'); INSERT INTO haltestellen VALUES( 23, 'Kaiserdamm'); INSERT INTO haltestellen VALUES( 32, 'Alte Schule'); SELECT * FROM haltestellen; DROP TABLE lh; CREATE TABLE lh (nummer_der_linie Number, nummer_der_haltestelle NUMBER); INSERT INTO lh VALUES( 1, 7); INSERT INTO lh VALUES( 1, 2); INSERT INTO lh VALUES( 1, 8); INSERT INTO lh VALUES( 2, 14); INSERT INTO lh VALUES( 2, 23); INSERT INTO lh VALUES( 2, 32); INSERT INTO lh VALUES( 3, 1); INSERT INTO lh VALUES( 3, 2); INSERT INTO lh VALUES( 3, 23); INSERT INTO lh VALUES( 1, 3); SELECT * FROM lh; PROMPT Aufgabe 1 a) SELECT * FROM haltestellen ORDER BY name_der_haltestelle; PROMPT Aufgabe 1 b) SELECT nummer_der_linie, name_der_haltestelle FROM haltestellen h, lh WHERE h.nummer_der_haltestelle=lh.nummer_der_haltestelle; PROMPT Aufgabe 1 c) SELECT * FROM lh WHERE nummer_der_haltestelle = 23 AND nummer_der_linie <> 2; PROMPT Aufgabe 1 d) SELECT nummer_der_haltestelle FROM lh WHERE nummer_der_linie IN ( SELECT nummer_der_linie FROM lh WHERE nummer_der_haltestelle = 23 AND nummer_der_linie <> 2) AND nummer_der_haltestelle <> 23; PROMPT Aufgabe 2 PROMPT Erstellen der Tabellen DROP TABLE laender_der_erde; CREATE TABLE laender_der_erde (name_des_landes CHAR(20), pke NUMBER(10,2)); INSERT INTO laender_der_erde VALUES( 'Argentinien', 2140); INSERT INTO laender_der_erde VALUES( 'Brasilien', 1004); INSERT INTO laender_der_erde VALUES( 'USA', 11386); INSERT INTO laender_der_erde VALUES( 'Deutschland', 5450); SELECT * FROM laender_der_erde; PROMPT Aufgabe 2 a) SELECT name_des_landes, pke FROM laender_der_erde WHERE pke = (SELECT MIN(pke) FROM laender_der_erde) OR pke = (SELECT MAX(pke) FROM laender_der_erde); PROMPT Aufgabe 2 b) SELECT AVG(pke) FROM laender_der_erde; PROMPT Aufgabe 2 c) SELECT a.name_des_landes, b.name_des_landes, ABS(a.pke-b.pke) FROM laender_der_erde a, laender_der_erde b WHERE a.pke-b.pke = ( SELECT MAX(ABS(a.pke-b.pke)) FROM laender_der_erde a, laender_der_erde b) OR a.pke-b.pke = ( SELECT MIN(ABS(a.pke-b.pke)) FROM laender_der_erde a, laender_der_erde b WHERE a.name_des_landes<>b.name_des_landes); PROMPT Aufgabe 2 d) PROMPT 10 sei das Minimum, 110 das Maximum: SELECT name_des_landes, TRUNC((pke-10)*5/(110-10))+1 From laender_der_erde; PROMPT Aufgabe 3 PROMPT Erstellen der Tabellen DROP TABLE koordinaten; CREATE TABLE koordinaten (ort CHAR(10), rechtswert number, hochwert number); INSERT INTO koordinaten VALUES ('Karlsruhe',3456, 5431); INSERT INTO koordinaten VALUES ('Ettlingen',3451, 5424); INSERT INTO koordinaten VALUES ('Rastatt',3462, 5471); INSERT INTO koordinaten VALUES ('Mannheim',3419, 5444); INSERT INTO koordinaten VALUES ('Bruchsal',3462, 5439); SELECT * FROM koordinaten; PROMPT Aufgabe 3 a) SELECT ort FROM koordinaten WHERE SQRT(POWER(rechtswert-3456,2)+POWER(hochwert-5431,2)) < 30; PROMPT Aufgabe 3 b) SELECT ort FROM koordinaten WHERE SQRT(POWER(rechtswert-3456,2)+POWER(hochwert-5431,2)) > (SELECT SQRT(POWER(rechtswert-3456,2)+POWER(hochwert-5431,2)) FROM koordinaten WHERE ort='Bruchsal'); PROMPT Aufgabe 3 c) SELECT a.ort, b.ort, SQRT(POWER(a.rechtswert-b.rechtswert,2)+ POWER(a.hochwert-b.hochwert,2)) "Entfernung" FROM koordinaten a, koordinaten b WHERE a.ort