. Geleitwort von Peter Eisentraut. 11
1. Einleitung. 13
2. Werkzeuge. 17
. 2.1. Das mitgelieferte Kommandozeilenprogramm psql. 17
. 2.2. pgAdmin III -- das Standard-PostgreSQL-Frontend. 27
. 2.3. Weitere Features von pgAdmin III. 39
3. Praxis 1: Die Grundlagen. 47
. 3.1. Herausforderung und Modell: Unsere kleine Firma. 47
. 3.2. Theorie und Praxis: Was ist SQL?. 55
. 3.3. Relationale Datenbanken und das Entity-Relationship-Modell. 60
. 3.4. Die Umsetzung. 65
. 3.5. Exkurs 1: Datenbankdesign und seine Folgen. 89
. 3.6. Schlüsselfrage: Keys & Constraints. 91
. 3.7. Exkurs 2: Sinn und Zweck von Templates. 99
. 3.8. Datentypen. 100
. 3.9. Vergleiche und andere nützliche Dinge: Operatoren und Aggregatfunktionen. 123
. 3.10. Gedankenstütze: Kommentare in der Datenbank. 128
4. Praxis 2: Fortgeschrittene Funktionen. 131
. 4.1. Veränderung muss sein: Spalten hinzufügen, entfernen, umbenennen [ ALTER TABLE ]. 133
. 4.2. Regelwerk: foreign keys & Constraints. 136
. 4.3. Abfragen über mehrere Tabellen [ JOIN ]. 143
. 4.4. Ordnung halten: Daten sortiert und gruppiert ausgeben [ GROUP, ORDER, HAVING, DISTINCT ]. 151
. 4.5. Transaktionen: Ein paar Worte zum Thema Sicherheit. 154
. 4.6. Kontrollstrukturen per SQL [ CASE. WHEN. THEN ]. 161
. 4.7. Reguläre Ausdrücke: Noch mehr Muster. 163
. 4.8. Wenn eine Abfrage nicht reicht -- Subselects (Unterabfragen). 166
. 4.9. Common Table Expressions und Recursive Queries [ WITH, WITH RECURSIVE ]. 168
. 4.10. Window Functions [ OVER (PARTITION BY.) ]. 171
. 4.11. Datenmengen [ UNION, EXCEPT, INTERSECT ]. 175
. 4.12. Typecasting: Wenn der Typ nicht stimmt. 178
. 4.13. In Serie: Sequenzen [ NEXTVAL, CURVAL, SETVAL ]. 179
. 4.14. Selects auf Abwegen [ CREATE TABLE AS ]. 181
. 4.15. Finden und gefunden werden: Indizes. 182
. 4.16. Views: Sichten auf das System. 186
. 4.17. Mehr Sicherheit: Das Rechte- und Rollensystem [ GRANT, REVOKE, OWNER ]. 194
. 4.18. Wenn mal was anderes gemacht werden soll -- Das Regelsystem [ CREATE RULE ]. 199
. 4.19. Funktionen für alle Lebenslagen. 204
. 4.20. Die Form wahren: Ausgabeformatierung. 215
. 4.21. Jede Menge Daten [ COPY ]. 218
5. User Defined Functions. 225
. 5.1. Stored Procedures versus User Defined Functions. 226
. 5.2. Vorteile durch den Einsatz von User Defined Functions. 226
. 5.3. Mit Bordmitteln -- SQL. 228
. 5.4. Wenn's ein bisschen mehr sein soll: PL/pgSQL. 248
. 5.5. Auslösende Momente [ TRIGGER ]. 287
. 5.6. Darwin in der Datenbank [ INHERITS ]. 293
6. Praxis 3: Textsuche, Performance, Administration. 299
. 6.1. Suchmaschine im Eigenbau: Volltextsuche. 299
. 6.2. Performance-Tuning. 337
. 6.3. Administration. 355
. 6.4. Tablespaces und Tabellenpartitionierung. 392
7. Installation. 405
. 7.1. Installation auf Linux-Systemen. 405
. 7.2. Installation unter Windows. 413
. 7.3. Die wichtigsten Konfigurationsdateien. 420
. 7.4. Schlussbemerkungen. 429
. 7.5. Startschuss. 429
. Index. 431