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. «
Inhaltsverzeichnis
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. Zeilen einfügen (INSERT), ändern (UPDATE) und löschen (DELETE, TRUNCATE) . . . 133
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
4. Tabellen anlegen (CREATE TABLE) . . . 161
4. 1 . . . Datentypen . . . 161
4. 2 . . . Datentypen umwandeln . . . 174
4. 3 . . . Explizite und implizite Typkonvertierung . . . 175
4. 4 . . . Einfache Tabellen mit CREATE TABLE erstellen . . . 182
4. 5 . . . Spalten Einschränkungen (CONSTRAINTS) zuordnen . . . 194
4. 6 . . . Spalten auf Tabellenebene Einschränkungen (CONSTRAINT) zuordnen . . . 208
5. Mengenoperationen anwenden . . . 223
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
8. Datenmodelle optimieren (Normalisierung) . . . 299
8. 1 . . . Redundanzen erkennen . . . 299
8. 2 . . . Die 1. Normalform anwenden . . . 302
8. 3 . . . Die 2. Normalform anwenden . . . 304
8. 4 . . . Die 3. Normalform anwenden . . . 306
8. 5 . . . Denormalisierung . . . 308
8. 6 . . . Übungen . . . 310
9. Datenmodelle in Tabellen überführen . . . 313
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
11. Transaktionen . . . 403
11. 1 . . . Forderungen an relationale Datenbanksysteme . . . 404
11. 2 . . . Transaktionen verstehen . . . 406
11. 3 . . . Übungen . . . 413
12. Tabellenstrukturen verändern . . . 415
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