Arbeitsblatt Datenbanken & SQL mit Lösungen

Kostenloses Arbeitsblatt Datenbanken & SQL zum Ausdrucken: 8 Aufgaben von leicht bis Prüfungsniveau, mit Lösungsschlüssel. Drucke es aus oder speichere es als PDF.

Neues ArbeitsblattOnline mit Tipps üben

Für Lehrkräfte: kostenlos ausdrucken, kopieren und im Unterricht verwenden. Jedes neue Arbeitsblatt hat neue Werte und einen eigenen Lösungsschlüssel. Über einen Link zu ExamProblems auf Ihrer Kursseite freuen wir uns.

Name: ____________________   Datum: ____________

1.Leicht

Ein Kunde kann viele Bestellungen aufgeben, aber jede Bestellung gehört zu genau einem Kunden. Welche Art von Beziehung ist das?

  1. AEins-zu-viele
  2. BEins-zu-eins
  3. CViele-zu-viele
  4. DNull-zu-null
2.Leicht

Was liefert ein CROSS JOIN?

  1. AJede Kombination von Zeilen aus den beiden Tabellen
  2. BNur die Zeilen der ersten Tabelle
  3. CNur die Zeilen, die in einer gemeinsamen Schlüsselspalte übereinstimmen
  4. DNur Zeilen, die nicht übereinstimmen
3.Leicht

Was bewirkt WHERE country IN ('NL', 'BE', 'DE')?

  1. AEs behält Zeilen, deren country-Wert alle drei Codes gleichzeitig enthält
  2. BEs behält Zeilen, deren country nicht in der Liste steht
  3. CEs sortiert die Zeilen in der Reihenfolge der Liste
  4. DEs behält Zeilen, deren country einem der Werte in der Liste entspricht
4.Mittel

Ein LEFT JOIN liefert:

  1. AAlle Zeilen der linken Tabelle und die passenden Zeilen der rechten, mit NULLs, wo es keine Übereinstimmung gibt
  2. BNur übereinstimmende Zeilen aus beiden Tabellen
  3. CZeilen, die in keiner der beiden Tabellen übereinstimmen
  4. DNur alle Zeilen der rechten Tabelle
5.Mittel

Eine Tabelle hat Zeilen, in denen col NULL ist. Welche Zeilen liefert WHERE col = NULL?

  1. ANur die Zeilen, in denen col NULL ist, wie bei IS NULL
  2. BIn jeder Datenbank einen Fehler
  3. CAlle Zeilen der Tabelle
  4. DKeine Zeilen, weil der Vergleich unknown ergibt
6.Mittel

Welche Abfrage liefert die Anzahl der Bestellungen pro Kunde?

  1. ASELECT DISTINCT COUNT(*) FROM orders
  2. BSELECT customer_id, COUNT(*) FROM orders ORDER BY customer_id
  3. CSELECT customer_id FROM orders WHERE COUNT(*) > 0
  4. DSELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
7.Schwer

Welche Fensterfunktion vergibt innerhalb jeder Partition die Nummern 1, 2, 3, ... an Zeilen, ohne Gleichstände?

  1. ARANK()
  2. BDENSE_RANK()
  3. CROW_NUMBER()
  4. DCOUNT()
8.Schwer

Eine Tabelle hat eine Million Zeilen und eine boolesche Spalte is_active, die für 95% davon TRUE ist. Warum könnte der Optimierer einen Index auf is_active für WHERE is_active = TRUE ignorieren?

  1. ADer Optimierer verwendet in WHERE-Klauseln nie Indexe
  2. BDer Index behandelt TRUE als NULL
  3. CAuf booleschen Spalten lassen sich keine Indexe anlegen
  4. DDie meisten Zeilen treffen zu, daher ist ein vollständiger Tabellenscan billiger als viele Indexzugriffe

Lösungsschlüssel

  1. 1. A · Eins-zu-viele
  2. 2. A · Jede Kombination von Zeilen aus den beiden Tabellen
  3. 3. D · Es behält Zeilen, deren country einem der Werte in der Liste entspricht
  4. 4. A · Alle Zeilen der linken Tabelle und die passenden Zeilen der rechten, mit NULLs, wo es keine Übereinstimmung gibt
  5. 5. D · Keine Zeilen, weil der Vergleich unknown ergibt
  6. 6. D · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
  7. 7. C · ROW_NUMBER()
  8. 8. D · Die meisten Zeilen treffen zu, daher ist ein vollständiger Tabellenscan billiger als viele Indexzugriffe

Vollständige Schritt-für-Schritt-Lösungen: Übe dieses Thema auf examproblems.com.