Den leichten Einstieg in SQL und die Modellierung von Daten finden Sie hier! Schritt für Schritt führt Sie Michael Laube in diesem Leitfaden durch die SQL-Kommandos und macht Sie mit allen wichtigen Befehlen vertraut. Auf diesem Fundament aufbauend lernen Sie, wie Sie Ihre Daten richtig modellieren, verknüpfen und bearbeiten. Mithilfe dieser Anleitungen wird die Datenmodellierung mit SQL einfach und unkompliziert: 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
Inhaltsverzeichnis
1. Grundlagen kennenlernen und verstehen . . . 21 1. 1 . . . Die Tabelle als zentrales Element . . . 21 1. 2 . . . Eine kleine Historie von SQL . . . 23 1. 3 . . . Datenbanksysteme . . . 24 1. 4 . . . SQL -- ein Standard und seine Umsetzung . . . 25 1. 5 . . . Zu diesem Buch . . . 27 1. 6 . . . MySQL unter Windows installieren . . . 28 1. 7 . . . Die MySQL-Übungsdatenbank anlegen . . . 36 1. 8 . . . Eine erste Abfrage an die Datenbank senden . . . 39 1. 9 . . . Kommentarfunktion . . . 42 2. Los geht's: Die Grundfunktionen der Tabellenabfrage (SELECT) . . . 47 2. 1 . . . Mit einer SELECT-Anweisung Tabellen abfragen . . . 47 2. 2 . . . Zeilen in einer Abfrage mit WHERE filtern . . . 51 2. 3 . . . Filterbedingungen mit AND (NOT) und OR (NOT) logisch verknüpfen . . . 91 2. 4 . . . Ergebniszeilen einer SELECT-Anweisung einschränken . . . 109 2. 5 . . . Datensätze sortiert abfragen . . . 111 2. 6 . . . Konstanten in die Spaltenauswahlliste aufnehmen . . . 124 2. 7 . . . Spalten einen Alias zuordnen . . . 127 2. 8 . . . Gleiche Ergebniszeilen ausschließen (DISTINCT) . . . 131 3. Zeilen einfügen (INSERT), ändern (UPDATE) und löschen (DELETE, TRUNCATE) . . . 135 3. 1 . . . Zeilen mit einer INSERT-Anweisung einfügen . . . 135 3. 2 . . . Zeilen mit einer UPDATE-Anweisung ändern . . . 145 3. 3 . . . Zeilen mit einer DELETE-Anweisung löschen . . . 156 3. 4 . . . Alle Zeilen einer Tabelle mit einer TRUNCATE-Anweisung löschen . . . 161 4. Tabellen anlegen (CREATE TABLE) . . . 165 4. 1 . . . Datentypen . . . 165 4. 2 . . . Datentypen umwandeln . . . 179 4. 3 . . . Explizite und implizite Typkonvertierung . . . 180 4. 4 . . . Einfache Tabellen mit CREATE TABLE erstellen . . . 187 4. 5 . . . Spalten Einschränkungen (CONSTRAINTS) zuordnen . . . 199 4. 6 . . . Spalten auf Tabellenebene Einschränkungen (CONSTRAINT) zuordnen . . . 214 5. Mengenoperationen anwenden . . . 229 5. 1 . . . Mengenoperationen auf Ergebnistabellen anwenden . . . 229 5. 2 . . . Eine Vereinigungsmenge bilden (UNION) . . . 236 5. 3 . . . Die Schnittmenge von Ergebnistabellen bilden (INTERSECT) . . . 245 5. 4 . . . Eine Differenzmenge aus Ergebnistabellen bilden (EXCEPT) . . . 250 5. 5 . . . Mengenoperationen in Kombination mit einer WHERE-Klausel verwenden . . . 253 5. 6 . . . Vereinigungsmengen in Kombination mit einer ORDER BY-Klausel . . . 255 6. Benutzer, Rollen und ihre Berechtigungen . . . 259 6. 1 . . . Benutzer anlegen (CREATE USER) . . . 260 6. 2 . . . Benutzer entfernen . . . 261 6. 3 . . . Eine Verbindung für einen Datenbankbenutzer erstellen . . . 262 6. 4 . . . Berechtigungen verwalten . . . 268 6. 5 . . . Mit Rollen Berechtigungen zuordnen . . . 270 6. 6 . . . Übungen . . . 273 7. Datenbanken modellieren . . . 279 7. 1 . . . Anforderungskatalog . . . 279 7. 2 . . . Entitäten identifizieren und modellhaft abbilden . . . 280 7. 3 . . . Beziehungen zwischen Entitäten festlegen . . . 287 7. 4 . . . Datenmodelle in der UML-Notation darstellen . . . 302 7. 5 . . . Übungen . . . 305 8. Datenmodelle optimieren (Normalisierung) . . . 309 8. 1 . . . Redundanzen erkennen . . . 309 8. 2 . . . Die 1. Normalform anwenden . . . 312 8. 3 . . . Die 2. Normalform anwenden . . . 314 8. 4 . . . Die 3. Normalform anwenden . . . 316 8. 5 . . . Denormalisierung . . . 318 8. 6 . . . Übungen . . . 320 9. Datenmodelle in Tabellen überführen . . . 323 9. 1 . . . Die Ausbildungsdatenbank anlegen . . . 323 9. 2 . . . Tabellen mit Beziehungen zu anderen Tabellen erstellen . . . 325 9. 3 . . . Übung . . . 332 9. 4 . . . Die referenzielle Integrität verstehen . . . 33410. Operationen auf Tabellen in Beziehungen anwenden . . . 341 10. 1 . . . Zeilen in Tabellen einfügen, die in Beziehung zueinander stehen . . . 341 10. 2 . . . Zeilen aus Tabellen, die in Beziehung stehen, mit JOIN verbunden abfragen . . . 351 10. 3 . . . Beziehungen (Schlüsselbeziehungen) ändern . . . 388 10. 4 . . . Beziehungen (Schlüsselbeziehungen) aufheben oder löschen . . . 39911. Transaktionen . . . 411 11. 1 . . . Forderungen an relationale Datenbanksysteme . . . 412 11. 2 . . . Transaktionen verstehen . . . 414 11. 3 . . . Übungen . . . 42112. Tabellenstrukturen verändern . . . 423 12. 1 . . . Eine Tabelle umbenennen . . . 423 12. 2 . . . Spalten einer Tabelle ändern . . . 425 12. 3 . . . Spalten hinzufügen und entfernen . . . 438 12. 4 . . . Beziehungen zwischen Tabellen herstellen und entfernen . . . 440 12. 5 . . . Übungen . . . 44313. Mit SQL rechnen . . . 451 13. 1 . . . Spaltenwerte addieren . . . 452 13. 2 . . . Spaltenwerte subtrahieren . . . 454 13. 3 . . . Spaltenwerte multiplizieren . . . 455 13. 4 . . . Spaltenwerte dividieren . . . 455 13. 5 . . . Den Restwert einer Division von Spaltenwerten berechnen . . . 456 13. 6 . . . Nach dem Ergebnis einer Berechnung filtern . . . 457 13. 7 . . . Nach dem Ergebnis einer Berechnung sortieren lassen . . . 458 13. 8 . . . Übungen . . . 45914. Skalarfunktionen anwenden . . . 463 14. 1 . . . Funktionen für Textwerte . . . 464 14. 2 . . . Funktionen für Zahlenwerte . . . 476 14. 3 . . . Verschachtelte Funktionsaufrufe . . . 48215. Bedingungslogik . . . 487 15. 1 . . . Die CASE-Klausel . . . 487 15. 2 . . . Bedingungslogik in einer Spaltenauswahlliste einer SELECT-Anweisung anwenden . . . 488 15. 3 . . . Bedingungslogik in einer ORDER BY-Klausel anwenden . . . 490 15. 4 . . . Übungen . . . 49216. Mit Zeit und Datum arbeiten . . . 495 16. 1 . . . Datumsformate . . . 496 16. 2 . . . Skalarfunktionen für Zeit- und Datumsangaben in SQL nutzen . . . 496 16. 3 . . . Zeit- und Datumsangaben formatieren . . . 499 16. 4 . . . Datumsangaben extrahieren (EXTRACT) . . . 515 16. 5 . . . Mit Datumsangaben rechnen . . . 52017. Spaltenwerte gruppieren (GROUP BY) . . . 529 17. 1 . . . Die Aggregatfunktion COUNT anwenden . . . 530 17. 2 . . . Die Aggregatfunktion SUM anwenden . . . 535 17. 3 . . . Die Aggregatfunktion AVG anwenden . . . 537 17. 4 . . . Die Aggregatfunktion MAX anwenden . . . 539 17. 5 . . . NULL-Werte berücksichtigen . . . 541 17. 6 . . . Nach aggregierten Werten einer Gruppierung filtern (HAVING) . . . 545 17. 7 . . . Nach zwei oder mehr Spalten gruppieren . . . 54818. Mächtiges Werkzeug: Die Unterabfragen (Subqueries) . . . 553 18. 1 . . . Unterabfragen, die in Korrelation zueinander stehen . . . 554 18. 2 . . . Unterabfragen, die nicht in Korrelation zueinander stehen . . . 560 18. 3 . . . Vergleichsoperatoren auf Unterabfragen mit ANY, SOME und ALL anwenden . . . 566 18. 4 . . . Auf die Existenz von Ergebniszeilen aus Unterabfragen prüfen (EXISTS) . . . 57119. Views: Abfragen in virtuellen Tabellen speichern . . . 575 19. 1 . . . Einfache Views anlegen . . . 576 19. 2 . . . Views und ORDER BY . . . 581 19. 3 . . . INSERT, UPDATE und DELETE auf Views anwenden . . . 584 19. 4 . . . Views entfernen oder ersetzen . . . 59620. Abfragen mit einem Index optimieren . . . 599 20. 1 . . . Einführung . . . 599 20. 2 . . . Syntax: Index erstellen . . . 602 20. 3 . . . Eine Tabelle mit vielen Zeilen generieren . . . 602 20. 4 . . . Einen Index für eine Tabelle anlegen . . . 604 20. 5 . . . Einen Index über mehrere Spalten anlegen . . . 606 20. 6 . . . Den Index einer Tabelle löschen . . . 609 20. 7 . . . Fremdschlüsselspalten indexieren . . . 609 20. 8 . . . Übungen . . . 61321. Skalarfunktionen entwickeln . . . 617 21. 1 . . . Funktionen mit einem Rückgabewert erstellen . . . 618 21. 2 . . . Funktionen mit Parameter entwickeln . . . 623 21. 3 . . . Funktionen entfernen . . . 627 21. 4 . . . Übungen . . . 62822. Prozeduren entwickeln . . . 631 22. 1 . . . Prozeduren ausführen . . . 631 22. 2 . . . Prozeduren anlegen . . . 632 22. 3 . . . Übung . . . 636 Index . . . 639