6. Datenbanken (PDF 117KB)

Werbung
Institut für Informatik
LV "Grundlagen der Informatik"
Übungsaufgaben zu
Datenbanken (SQL)
Aufgabenkomplex: Datenbanken
(Die relationale Datenbanksprache SQL)
- Lösungen - Zunächst: Vollständige Ausgabe der drei Tabellen (Relationen) der Datenbank PERSONAL:
SELECT * FROM besch;
SELECT * FROM abt;
SELECT * FROM gehstufe;
1.1
SELECT abtnr, name, geh
FROM besch;
1.2
SELECT *
FROM besch
ORDER BY abtnr DESC, name;
1.3
SELECT name, geh, taet
FROM besch
WHERE geh > 5000;
1.4
SELECT taet FROM besch
WHERE name = 'SCHMIDT';
1.5a) SELECT ort FROM besch, abt
WHERE name = 'BLASCHE' AND besch.abtnr = abt.abtnr;
1.5.b) SELECT ort FROM abt
WHERE abtnr = (SELECT abtnr FROM besch
WHERE name = 'BLASCHE');
1.6
SELECT DISTINCT taet FROM besch;
1.7
SELECT * FROM besch
WHERE (taet = 'VERKAEUFER' OR taet = 'SACHB.') AND geh >3400;
1.8
SELECT name, geh, abtname FROM besch, abt
WHERE taet = 'LEITER' AND besch.abtnr = abt.abtnr;
1.9
SELECT name FROM besch, gehstufe
WHERE stufe = 5 AND geh BETWEEN von AND bis;
Oder ohne "BETWEEN":
SELECT name FROM besch, gehstufe
WHERE stufe = 5 AND geh >= von AND geh <= bis;
1.10
SELECT count(*) "Anzahl"
FROM besch;
1.11
SELECT abtnr, MAX(geh), MIN(geh), AVG(geh)
FROM besch
GROUP BY abtnr;
1.12
INSERT INTO abt
VALUES (50, 'ENTWURF', 'PARIS');
1
Institut für Informatik
LV "Grundlagen der Informatik"
1.13
UPDATE besch
SET geh = geh * 1.2
WHERE geh < 3000;
1.14
UPDATE abt
SET abtname ='DESIGN'
WHERE abtname = 'ENTWURF';
1.15
DELETE FROM abt
WHERE abtnr = 50;
1.16
DROP TABLE abt;
Übungsaufgaben zu
Datenbanken (SQL)
(Falls Sie zuvor 1.16 ausgeführt haben, müssen Sie jetzt erneut @pers abarbeiten,
um die drei Tabellen wieder aufzubauen.)
1.17
SELECT abtname "Begriffe" FROM abt
UNION
SELECT taet FROM besch
ORDER BY 1;
1.18
SELECT mitarb.name "Mitarbeiter", leiter.name "Leiter"
FROM besch mitarb, besch leiter
WHERE mitarb.ltr = leiter.bnr;
1.19
SELECT name FROM besch
WHERE zuschl IS NULL
UNION
SELECT name FROM besch
WHERE zuschl=0;
( NULL Æ Leereintrag in zuschl )
(0
oder in anderer Form:
SELECT name FROM besch
WHERE zuschl IS NULL OR zuschl=0;
1.20
SELECT DISTINCT taet FROM besch
WHERE abtnr = 30
AND taet IN
(SELECT taet FROM besch
WHERE abtnr = 20 );
1.21
SELECT DISTINCT taet FROM besch
WHERE abtnr = 30
AND taet NOT IN
(SELECT taet FROM besch
WHERE abtnr = 20 );
2
Æ Eintrag 0 in zuschl )
Institut für Informatik
LV "Grundlagen der Informatik"
Übungsaufgaben zu
Datenbanken (SQL)
1.22
SELECT name FROM besch, gehstufe
WHERE
taet = 'SACHB.'
AND (stufe = 1 OR stufe = 2)
AND geh BETWEEN von AND bis;
1.23
SELECT * FROM besch
WHERE geh > ANY
(SELECT geh FROM besch
WHERE abtnr = 20);
Oder in anderer Form:
SELECT * FROM besch
WHERE geh >
(SELECT MIN(geh) FROM besch
WHERE abtnr = 20);
1.24
SELECT * FROM besch
WHERE geh > ALL
(SELECT geh FROM besch
WHERE abtnr = 20);
Oder in anderer Form:
SELECT * FROM besch
WHERE geh >
(SELECT MAX(geh) FROM besch
WHERE abtnr = 20);
1.25
SELECT abtnr FROM besch
GROUP BY abtnr
HAVING COUNT(*)>4;
(GROUP … Zusammenfassung aller Zeilen
mit gleichen Attributwerten)
(HAVING ... Auswahl von Zeilen aus Gruppen)
Oder in komplizierterer Form:
SELECT besch.abtnr FROM abt, besch
WHERE abt.abtnr = besch.abtnr
GROUP BY besch.abtnr
HAVING count(*) > 4;
(02/2004)
3
Herunterladen