Aufgabe 4.4.5 Eine kleine Applikation
- odbc_connect ok! (
Resource id #2
)
SELECT * FROM
benachbart
berg
ebene
flug
flughafen
fluss
flussquelle
gehoert_lt
geht_ueber
geo_berg
geo_ebene
geo_gewaesser
geo_insel
geo_wueste
gewaesser
hat_sitz_in
insel
ist_mitglied
kontinent
land
landesteil
liegt_an
meer
muendet
organisation
see
stadt
test
umfasst
wueste
ʘ
Aufg.
2.3.3.1
SEL...
Text
ʘ
Aufg.
2.3.3.2
膆nlichkeit mittels LOCATE|SOUNDEX|DIFFERENCE
SEL...
Text
ʘ
INSERT .. MAX(S_ID)
INS...
Text
ʘ
Aufg.
2.3.3.3 a), b), c), d), e), f)
VIEW
CRE...
Text
ʘ
Aufg.
2.3.4.1
SEL...
Text
ʘ
Aufg.
2.3.4.1 a) Bev鰈kerungsdichte
SEL...
Text
ʘ
Aufg.
2.3.4.1 b) Bev鰈kerungsdichte ohne W黶ten
# W...
Text
ʘ
Aufg.
4.4.5
SEL...
Text
ʘ
GROUP und DISTINCT
SEL...
Text
ʘ
UNION(Vereinigung) INTERSECT(Schnittmenge) und EXCEPT(Minus)
# T...
Text
ʘ
LEFT|RIGHT|FULL OUTER JOIN
SEL...
Text
ʘ
Zufallszahlen - CREATE INSERT
WITH
CRE...
Text
ʘ
Aufg.
2.3.4.2
WITH
# A...
Text
ʘ
Aufg.
2.3.4.3.(a)
WITH
billig von Kapstadt nach New York
# T...
Text
ʘ
Aufg.
2.3.4.3.(b)
WITH
wenig Umstiege von Frankfurt nach Los Angeles
# D...
Text
SQL-Befehl fuer DB2
SELECT * FROM zahlen
# Die Abbruchbedingung aus der Rekursion kann man hier direkt angaben, da hier die Verbindung mit den wenigsten Umstiegen gesucht wird. WITH flug_ny ( flug_id, flug_strecke, fh_strecke, umstieg, abflugfh_id, ankunftfh_id, preis, sum_preis) AS ( ( SELECT f.flug_id, CAST(CAST(f.flug_id AS char(3)) AS varchar(100)), CAST(CAST(f.abflugfh_id AS char(3)) AS varchar(100)) || '->' || CAST(CAST(f.ankunftfh_id AS char(3)) AS varchar(100)), 1, f.abflugfh_id, f.ankunftfh_id, f.preis, f.preis FROM flug f, flughafen fh, stadt s WHERE f.abflugfh_id = fh.fh_id AND fh.s_id = s.s_id AND s.name = 'Frankfurt' ) UNION ALL ( SELECT f1.flug_id, fny.flug_strecke || '->' || CAST(CAST(f1.flug_id AS char(3)) AS varchar(100)), fny.fh_strecke || '->' || CAST(CAST(f1.ankunftfh_id AS char(3)) AS varchar(100)), fny.umstieg+1, f1.abflugfh_id, f1.ankunftfh_id, f1.preis, f1.preis + fny.sum_preis FROM flug f1, flug_ny fny, flughafen fh1, stadt s1 WHERE f1.abflugfh_id = fny.ankunftfh_id AND f1.ankunftfh_id = fh1.fh_id AND fh1.s_id = s1.s_id AND s1.name = 'Los_Angeles' #AND umstieg < 5 */ ) ) SELECT flug_strecke, fh_strecke, umstieg, code AS ankunft_fh, sum_preis AS gesamt_preis FROM flug_ny fny2, flughafen fh2, stadt s2 WHERE fny2.ankunftfh_id = fh2.fh_id AND fh2.s_id = s2.s_id AND s2.name = 'Los_Angeles' AND sum_preis = ( SELECT MIN(sum_preis) FROM flug_ny fny2, flughafen fh2, stadt s2 WHERE fny2.ankunftfh_id = fh2.fh_id AND fh2.s_id = s2.s_id AND s2.name = 'Los_Angeles' ) # FLUG_STRECKE FH_STRECKE UMSTIEG ANKUNFT_FH GESAMT_PREIS # 7 ->2 2 ->3 ->4 2 LAX 1920.00 ; # focus hier ALT+2 # Die Standard SELECTS * oben, erh鋖lt man auch 黚er # ALT+(Erster Buchstabe der Tabelle.)+ENTER # odbc_num_rows: 1 , odbc_num_fields: 5
Anzahl
der
ver鋘derten
bzw.
eingef黦ten
/
gel鰏chten
Tupel:
1
(
odbc_num_rows( Resource id #5 )=
1
odbc_num_fields( Resource id #5 )=
5
)
SELECT z.flug_strecke AS "z.flug_strecke", z.fh_strecke AS "z.fh_strecke", z.umstieg AS "z.umstieg", z.ankunft_fh AS "z.ankunft_fh", z.gesamt_preis AS "z.gesamt_preis" FROM zahlen AS z
(ALT+3)
FLUG_STRECKE
A
D
FH_STRECKE
A
D
UMSTIEG
A
D
ANKUNFT_FH
A
D
GESAMT_PREIS
A
D
zahlen ...
7 ->2
2 ->3 ->4
2
LAX
1920,00
UPDATE zahlen SET FLUG_STRECKE = '7 ->2 ' , FH_STRECKE = '2 ->3 ->4 ' , UMSTIEG = 2 , ANKUNFT_FH = 'LAX' , GESAMT_PREIS = 1920.00 WHERE FLUG_STRECKE = 7 ->2
(ALT+4)
DELETE FROM zahlen WHERE FLUG_STRECKE = 7 ->2