Übungen und Musterlösungen für alle Datenbanksysteme
Materialien zum Buch ... 17 1. Grundlagen kennenlernen und verstehen ... 19
1.1 ... Die Tabelle als zentrales Element ... 19 1.2 ... Eine kleine Historie von SQL ... 21 1.3 ... Datenbanksysteme ... 22 1.4 ... SQL -- ein Standard und seine Umsetzung ... 23 1.5 ... Zu diesem Buch ... 24 1.6 ... MySQL unter Windows installieren ... 26 1.7 ... Die MySQL-Übungsdatenbank anlegen ... 34 1.8 ... Eine erste Abfrage an die Datenbank senden ... 38 1.9 ... Kommentarfunktion ... 41
2. Los geht's: Die Grundfunktionen der Tabellenabfrage (SELECT) ... 45
2.1 ... Mit einer SELECT-Anweisung Tabellen abfragen ... 45 2.2 ... Zeilen in einer Abfrage mit WHERE filtern ... 49 2.3 ... Filterbedingungen mit AND (NOT) und OR (NOT) logisch verknüpfen ... 88 2.4 ... Ergebniszeilen einer SELECT-Anweisung einschränken ... 106 2.5 ... Datensätze sortiert abfragen ... 109 2.6 ... Konstanten in die Spaltenauswahlliste aufnehmen ... 121 2.7 ... Spalten einen Alias zuordnen ... 125 2.8 ... Gleiche Ergebniszeilen ausschließen (DISTINCT) ... 129
3.1 ... Zeilen mit einer INSERT-Anweisung einfügen ... 133 3.2 ... Zeilen mit einer UPDATE-Anweisung ändern ... 143 3.3 ... Zeilen mit einer DELETE-Anweisung löschen ... 154 3.4 ... Alle Zeilen einer Tabelle mit einer TRUNCATE-Anweisung löschen ... 158
5.1 ... Mengenoperationen auf Ergebnistabellen anwenden ... 223 5.2 ... Eine Vereinigungsmenge bilden (UNION) ... 230 5.3 ... Die Schnittmenge von Ergebnistabellen bilden (INTERSECT) ... 239 5.4 ... Eine Differenzmenge aus Ergebnistabellen bilden (EXCEPT) ... 243 5.5 ... Mengenoperationen in Kombination mit einer WHERE-Klausel verwenden ... 247 5.6 ... Vereinigungsmengen in Kombination mit einer ORDER BY-Klausel ... 249
6. Benutzer, Rollen und ihre Berechtigungen ... 253
6.1 ... Benutzer anlegen (CREATE USER) ... 254 6.2 ... Benutzer entfernen ... 255 6.3 ... Eine Verbindung für einen Datenbankbenutzer erstellen ... 256 6.4 ... Berechtigungen verwalten ... 261 6.5 ... Mit Rollen Berechtigungen zuordnen ... 264 6.6 ... Übungen ... 267 6.7 ... Lösungen zu den Übungen ... 268
7. Datenbanken modellieren ... 271
7.1 ... Anforderungskatalog ... 271 7.2 ... Entitäten identifizieren und modellhaft abbilden ... 272 7.3 ... Beziehungen zwischen Entitäten festlegen ... 279 7.4 ... Datenmodelle in der UML-Notation darstellen ... 293 7.5 ... Übungen ... 297
9.1 ... Die Ausbildungsdatenbank anlegen ... 313 9.2 ... Tabellen mit Beziehungen zu anderen Tabellen erstellen ... 315 9.3 ... Übung ... 322 9.4 ... Die referenzielle Integrität verstehen ... 324
10. Operationen auf Tabellen in Beziehungen anwenden ... 331
10.1 ... Zeilen in Tabellen einfügen, die in Beziehung zueinander stehen ... 331 10.2 ... Zeilen aus Tabellen, die in Beziehung stehen, mit JOIN verbunden abfragen ... 341 10.3 ... Beziehungen (Schlüsselbeziehungen) ändern ... 379 10.4 ... Beziehungen (Schlüsselbeziehungen) aufheben oder löschen ... 391
12.1 ... Eine Tabelle umbenennen ... 415 12.2 ... Spalten einer Tabelle ändern ... 417 12.3 ... Spalten hinzufügen und entfernen ... 430 12.4 ... Beziehungen zwischen Tabellen herstellen und entfernen ... 432 12.5 ... Übungen ... 435
13. Mit SQL rechnen ... 443
13.1 ... Spaltenwerte addieren ... 444 13.2 ... Spaltenwerte subtrahieren ... 446 13.3 ... Spaltenwerte multiplizieren ... 447 13.4 ... Spaltenwerte dividieren ... 447 13.5 ... Den Restwert einer Division von Spaltenwerten berechnen ... 448 13.6 ... Nach dem Ergebnis einer Berechnung filtern ... 449 13.7 ... Nach dem Ergebnis einer Berechnung sortieren lassen ... 450 13.8 ... Übungen ... 451
14. Skalarfunktionen anwenden ... 455
14.1 ... Funktionen für Textwerte ... 456 14.2 ... Funktionen für Zahlenwerte ... 470 14.3 ... Verschachtelte Funktionsaufrufe ... 476
15. Bedingungslogik ... 481
15.1 ... Die CASE-Klausel ... 481 15.2 ... Bedingungslogik in einer Spaltenauswahlliste einer SELECT-Anweisung anwenden ... 482 15.3 ... Bedingungslogik in einer ORDER BY-Klausel anwenden ... 484 15.4 ... Übungen ... 486
16. Mit Zeit und Datum arbeiten ... 489
16.1 ... Datumsformate ... 490 16.2 ... Skalarfunktionen für Zeit- und Datumsangaben in SQL nutzen ... 490 16.3 ... Zeit- und Datumsangaben formatieren ... 493 16.4 ... Datumsangaben extrahieren (EXTRACT) ... 508 16.5 ... Mit Datumsangaben rechnen ... 513
17. Spaltenwerte gruppieren (GROUP BY) ... 521
17.1 ... Die Aggregatfunktion COUNT anwenden ... 522 17.2 ... Die Aggregatfunktion SUM anwenden ... 527 17.3 ... Die Aggregatfunktion AVG anwenden ... 529 17.4 ... Die Aggregatfunktion MAX anwenden ... 531 17.5 ... NULL-Werte berücksichtigen ... 533 17.6 ... Nach aggregierten Werten einer Gruppierung filtern (HAVING) ... 537 17.7 ... Nach zwei oder mehr Spalten gruppieren ... 540
18. Mächtiges Werkzeug: Die Unterabfragen (Subqueries) ... 545
18.1 ... Unterabfragen, die in Korrelation zueinander stehen ... 546 18.2 ... Unterabfragen, die nicht in Korrelation zueinander stehen ... 552 18.3 ... Vergleichsoperatoren auf Unterabfragen mit ANY, SOME und ALL anwenden ... 558 18.4 ... Auf die Existenz von Ergebniszeilen aus Unterabfragen prüfen (EXISTS) ... 563
19. Views: Abfragen in virtuellen Tabellen speichern ... 567
19.1 ... Einfache Views anlegen ... 568 19.2 ... Views und ORDER BY ... 573 19.3 ... INSERT, UPDATE und DELETE auf Views anwenden ... 576 19.4 ... Views entfernen oder ersetzen ... 587
20. Abfragen mit einem Index optimieren ... 591
20.1 ... Einführung ... 591 20.2 ... Syntax: Index erstellen ... 594 20.3 ... Eine Tabelle mit vielen Zeilen generieren ... 595 20.4 ... Einen Index für eine Tabelle anlegen ... 596 20.5 ... Einen Index über mehrere Spalten anlegen ... 598 20.6 ... Den Index einer Tabelle löschen ... 601 20.7 ... Fremdschlüsselspalten indexieren ... 601 20.8 ... Übungen ... 605
Index ... 609
Übungen und Musterlösungen für alle Datenbanksysteme
Den leichten Einstieg in SQL und die Datenmodellierung finden Sie hier! Schritt für Schritt führt Sie dieser Leitfaden durch den SQL-Befehlsschatz und macht Sie mit allen wichtigen Befehlen vertraut. Das Beherrschen der SQL-Befehle ist jedoch nur das Fundament. Darauf aufbauend lernen Sie, wie Sie Ihre Daten richtig modellieren, verknüpfen und bearbeiten. So schaffen Sie Ordnung und sorgen für performante Abfragen.
Aus dem Inhalt:
Grundlagen kennenlernen und verstehen Grundfunktionen der Tabellenabfrage Zeilen einfügen, ändern und löschen (INSERT, UPDATE und DELETE) Tabellen mit CREATE TABLE anlegen Mengenoperationen Datenbanken modellieren Datenmodelle optimieren Datenmodelle in Tabellen überführen Beziehungen zwischen Tabellen: JOINs Transaktionen Skalarfunktionen Bedingungslogik Mit Zeit und Datum arbeiten Spaltenwerte mit GROUP BY gruppieren Unterabfragen VIEWS: Abfragen in virtuellen Tabellen speichern Performance optimieren
Die Fachpresse zur Vorauflage:
LINUX MAGAZIN: »Eine gründliche, verständliche und dabei auch gut lesbare Einführung in SQL.«
Michael Laube arbeitet im Bereich Logistik eines öffentlichen Auftraggebers. Zu seinen täglichen Aufgaben zählt es, Produktstammdaten zu verarbeiten und unterschiedliche Anforderungen im Bereich der Informatik zu koordinieren und umzusetzen. Er nutzt relationale Datenbanken und die Abfragesprache SQL, um die Produktstammdaten aufzubereiten und Anwendern zur Verfügung zu stellen. Außerdem entwickelt er als Sun Certified Java Programmer und Sun Certified Web Component Developer unternehmensweite Anwendungen.