MySQL 5 - Einführung, Programmierung, Referenz
von: Michael Kofler
Addison-Wesley Verlag, 2005
ISBN: 9783827322531
Sprache: Deutsch
1029 Seiten, Download: 11508 KB
Format: PDF, auch als Online-Lesen
Inhaltsübersicht | 6 | ||
Inhaltsverzeichnis | 8 | ||
Vorwort | 24 | ||
Konzeption | 26 | ||
Teil I Einführung | 32 | ||
1 Was ist mySQL? | 34 | ||
1.1 Was ist eine Datenbank? | 34 | ||
1.2 MySQL-Eigenschaften | 37 | ||
1.3 MySQL-Einschränkungen | 41 | ||
1.4 MySQL-Versionsnummern | 42 | ||
1.5 MySQL-Lizenzierung | 44 | ||
1.6 Alternativen zu mySQL | 52 | ||
1.7 Fazit | 53 | ||
2 Testumgebung einrichten | 56 | ||
2.1 Windows oder Unix/Linux? | 56 | ||
2.2 Installation unter Windows | 58 | ||
2.2.1 Apache 2.0 installieren | 58 | ||
2.2.2 MySQL 5.0 installieren | 60 | ||
2.2.3 PHP 5.0 installieren | 64 | ||
2.2.4 Perl installieren | 67 | ||
2.3 Installation unter SUSE Linux 9.3 | 69 | ||
2.3.1 Apache 2, PHP 5 und Perl installieren | 69 | ||
2.3.2 MySQL 5.0 installieren | 72 | ||
2.4 Installation unter Red Hat Enterprise Linux 4 | 74 | ||
2.4.1 Apache 2 installieren | 74 | ||
2.4.2 MySQL 5 installieren | 75 | ||
2.4.3 PHP 5 selbst kompilieren | 76 | ||
2.4.4 Perl 5.8 installieren | 79 | ||
2.5 MySQL-Entwicklerversion selbst kompilieren (Linux) | 79 | ||
2.6 Apache konfigurieren | 82 | ||
2.6.1 Konfigurationsdateien | 82 | ||
2.6.2 Elementare Einstellungen | 83 | ||
2.6.3 Zugriffsschutz für einzelne Verzeichnisse (.htaccess) | 85 | ||
2.7 PHP konfigurieren | 89 | ||
2.8 MySQL konfigurieren | 92 | ||
3 Einführungsbeispiel (Umfrage mit PHP) | 94 | ||
3.1 Überblick | 94 | ||
3.2 Datenbankentwurf | 96 | ||
3.3 Umfrageformular | 102 | ||
3.4 Formularauswertung und Ergebnisdarstellung | 103 | ||
3.5 Verbesserungsideen | 108 | ||
Teil II Administrationswerkzeuge und Benutzeroberflächen | 110 | ||
4 mysql, mysqladmin und mysqldump | 112 | ||
4.1 mysql | 113 | ||
4.1.1 mysql starten | 113 | ||
4.1.2 mysql-Optionen | 114 | ||
4.1.3 mysql interaktiv verwenden | 116 | ||
4.1.4 Tipps zur Verwendung von mysql unter Unix/Linux | 118 | ||
4.1.5 Tipps zur Verwendung von mysql unter Windows | 120 | ||
4.1.6 SQL-Dateien mit mysql verarbeiten | 122 | ||
4.2 mysqladmin | 123 | ||
4,3 mysqldump | 124 | ||
5 MySQL Administrator und MySQL Query Browser | 126 | ||
5.1 Installation | 127 | ||
5.2 Verbindung herstellen | 128 | ||
5.3 MySQL Administrator | 130 | ||
5.3.1 Server Information | 130 | ||
5.3.2 Service Control | 130 | ||
5.3.3 Startup Parameters | 131 | ||
5.3.4 User Administration | 132 | ||
5.3.5 Server Connections | 135 | ||
5.3.6 Health | 135 | ||
5.3.7 Server Logs | 136 | ||
5.3.8 Backup | 136 | ||
5.3.9 Restore Backup | 138 | ||
5.3.10 Replication Status | 139 | ||
5.3.11 Catalogs | 139 | ||
5.4 MySQL Query Browser | 140 | ||
6 phpMyAdmin | 146 | ||
6.1 Installation und Konfiguration | 147 | ||
6.1.1 phpMyAdmin-Dateien installieren | 147 | ||
6.1.2 phpMyAdmin konfigurieren | 148 | ||
6.1.3 config-Authentifizierung | 148 | ||
6.1.4 http- und cookie-Authentifizierung | 152 | ||
6.2 Benutzerverwaltung, MySQL absichern | 155 | ||
6.2.1 MySQL absichern | 156 | ||
6.2.2 Neue Benutzer anlegen | 157 | ||
6.3 Datenbanken erstellen und ändern | 160 | ||
6.3.1 Datenbank erzeugen | 160 | ||
6.3.2 Tabelle erzeugen | 161 | ||
6.3.3 Vorhandene Tabellen ändern | 163 | ||
6.3.4 Foreign-Key-Regeln aufstellen | 164 | ||
6.3.5 Datenbankstruktur dokumentieren | 165 | ||
6.4 Daten ansehen, einfügen und ändern | 166 | ||
6.5 SQL-Kommandos ausführen | 167 | ||
6.6 Import und Export | 169 | ||
6.7 Server-Administration | 173 | ||
6.8 Zusatzfunktionen | 174 | ||
7 Microsoft Office, OpenOffice/StarOffice | 182 | ||
7.1 Connector/ODBC-Installation | 182 | ||
7.2 Microsoft Access | 186 | ||
7.2.1 Einführung | 186 | ||
7.2.2 Tabellen importieren und exportieren | 188 | ||
7.2.3 Konverter Access ? MySQL (exportsql.txt) | 191 | ||
7.3 Microsoft Excel | 193 | ||
7.4 Connector/J-Installation | 195 | ||
7.5 OpenOffice/StarOffice Base | 197 | ||
7.6 OpenOffice/StarOffice-Datenquellenansicht | 203 | ||
Teil III Grundlagen | 206 | ||
8 Datenbankdesign | 208 | ||
8.1 Tabellentypen | 209 | ||
8.1.1 MyISAM-Tabellen | 210 | ||
8.1.2 InnoDB-Tabellen | 211 | ||
8.1.3 HEAP-Tabellen | 214 | ||
8.1.4 Temporäre Tabellen | 214 | ||
8.1.5 Andere Tabellentypen | 215 | ||
8.1.6 Tabellendateien | 216 | ||
8.2 MySQL-Datentypen | 217 | ||
8.2.1 Integerzahlen (xxxINT) | 217 | ||
8.2.2 Fließkommazahlen (FLOAT und DOUBLE) | 219 | ||
8.2.3 Festkommazahlen (DECIMAL) | 219 | ||
8.2.4 Datum und Uhrzeit (DATE, TIME, DATETIME, TIMESTAMP) | 220 | ||
8.2.5 Zeichenketten (CHAR, VARCHAR, xxxTEXT) | 224 | ||
8.2.6 Binärdaten (xxxBLOB und BIT) | 229 | ||
8.2.7 Sonstige Datentypen | 230 | ||
8.2.8 Optionen und Attribute | 231 | ||
8.3 Tipps und Tricks zum Datenbankdesign | 232 | ||
8.4 Normalisierungsregeln | 234 | ||
8.4.1 Die erste Normalform | 235 | ||
8.4.2 Die zweite Normalform | 236 | ||
8.4.3 Die dritte Normalform | 239 | ||
8.4.4 Normalisierungstheorie | 240 | ||
8.5 Verwaltung von Hierarchien | 242 | ||
8.6 Relationen | 249 | ||
8.7 Primär- und Fremdschlüssel | 253 | ||
8.7.1 Primärschlüssel (Primary Key) | 253 | ||
8.7.2 Fremdschlüssel (Foreign Key) | 254 | ||
8.7.3 Referenzielle Integrität (Foreign-Key-Regeln) | 255 | ||
8.8 Indizes | 260 | ||
8.8.1 Einführung | 260 | ||
8.8.2 Gewöhnlicher Index, Unique-Index, Primärindex | 262 | ||
8.8.3 Volltextindex | 264 | ||
8.8.4 Abfrage- und Indexoptimierung | 264 | ||
8.9 Views | 267 | ||
8.10 Beispieldatenbank mylibrary (Bücherverwaltung) | 270 | ||
8.11 Beispieldatenbank myforum (Diskussionsforum) | 273 | ||
8.12 Beispieldatenbank exceptions (Sonderfälle) | 276 | ||
9 SQL-Einführung | 280 | ||
9.1 Einleitung | 280 | ||
9.2 Einfache Abfragen (SELECT) | 281 | ||
9.3 Datensätze sortieren (ORDER BY) | 285 | ||
9.4 Datensätze auswählen (WHERE, HAVING) | 288 | ||
9.5 Daten aus mehreren Tabellen verknüpfen | 289 | ||
9.5.1 JOINs über zwei Tabellen | 290 | ||
9.5.2 JOINs über drei und mehr Tabellen | 291 | ||
9.6 Abfrageergebnisse aneinander fügen | 294 | ||
9.7 Gruppierte Abfragen, Aggregatsfunktionen | 295 | ||
9.8 Daten ändern (INSERT, UPDATE und DELETE) | 300 | ||
9.8.1 Backup durchführen | 300 | ||
9.8.2 Datensätze einfügen (INSERT) | 301 | ||
9.8.3 Datensätze verändern (UPDATE) | 303 | ||
9.8.4 Datensätze löschen (DELETE) | 304 | ||
9.9 Datenbanken, Tabellen und Indizes erzeugen | 306 | ||
9.9.1 Datenbank erzeugen (CREATE DATABASE) | 307 | ||
9.9.2 Tabellen erzeugen (CREATE TABLE) | 307 | ||
9.9.3 Indizes erzeugen (CREATE INDEX) | 309 | ||
9.9.4 Tabellendesign ändern (ALTER TABLE) | 310 | ||
9.9.5 Datenbank/Tabelle löschen (DROP) | 311 | ||
9.9.6 Automatische Tabellendesign-Änderungen (Silent Column Changes) | 312 | ||
9.10 Metadaten über Datenbanken und Tabellen ermitteln | 313 | ||
10 SQL-Rezepte | 318 | ||
10.1 Zeichenketten | 318 | ||
10.1.1 Grundlegende Funktionen | 318 | ||
10.1.2 Zeichensatz ändern | 320 | ||
10.1.3 Client-Zeichensatz einstellen | 321 | ||
10.1.4 Mustervergleich | 322 | ||
10.2 Datum und Uhrzeit | 324 | ||
10.2.1 Syntax für Datum und Uhrzeit | 324 | ||
10.2.2 Berechnungen mit Datum und Uhrzeit | 326 | ||
10.2.3 Unix-Timestamps | 329 | ||
10.2.4 TIMESTAMP-Änderungen vermeiden | 330 | ||
10.2.5 Zeitzonen | 331 | ||
10.3 ENUMs und SETs | 334 | ||
10.4 Variablen und Bedingungen (IF, CASE) | 336 | ||
10.4.1 Variablen | 336 | ||
10.4.2 IF-Abfragen | 338 | ||
10.4.3 CASE-Verzweigungen | 338 | ||
10.5 Daten von einer Tabelle in eine andere kopieren | 340 | ||
10.5.1 Beim Kopieren eine neue Tabelle erzeugen | 340 | ||
10.5.2 Kopieren in vorhandene Tabellen | 341 | ||
10.6 Kreuztabellen (Pivottabellen) | 341 | ||
10.7 Sub-SELECTs | 345 | ||
10.7.1 Syntaxvarianten | 346 | ||
10.7.2 Beispiele | 348 | ||
!S–( öntegrität von :aten sicherstellen | 350 | ||
!S–q :oppelgänger suchen | 353 | ||
!S–!S ,ormalform nachträglich herstellen | 354 | ||
!S–!! :ie erstenyletzten | 355 | ||
:atensätze bearbeiten | 355 | ||
!S–!_ :atensätze zufällig auswählen | 358 | ||
!S–!- Volltextsuche | 360 | ||
!S–!-–! xrundlagen | 361 | ||
!S–!-–_ Üüchersuche | 364 | ||
!S–!-–- jorumsuche | 366 | ||
!S–!R _ocking | 368 | ||
!S–!U Transaktionen | 370 | ||
!S–!U–! Wozu TransaktionenW | 370 | ||
!S–!U–_ Transaktionen steuern | 372 | ||
!S–!U–- Transaktionen ausprobieren | 374 | ||
!S–!U–R Transaktionen und _ocking | 376 | ||
!S–!U–U ösolationsgrad für Transaktionen | 378 | ||
!S–!U–ß jehlerabsicherung | 380 | ||
11 Zugriffsverwaltung und Sicherheit | 382 | ||
11.1 Einführung | 382 | ||
11.1.1 Kommunikation zwischen dem Client und dem MySQL-Server | 382 | ||
11.1.2 Zugriffsverwaltung | 384 | ||
11.2 Erste Hilfe | 391 | ||
11.2.1 MySQL-Installation absichern | 391 | ||
11.2.2 Neue Datenbank und Benutzer einrichten | 393 | ||
11.2.3 Rechte zum Erzeugen eigener Datenbanken vergeben | 394 | ||
11.2.4 Vergessenes root-Passwort | 395 | ||
11.3 Interna des Zugriffssystems | 396 | ||
11.3.1 Privilegien | 397 | ||
11.3.2 mysql-Datenbank | 401 | ||
11.3.3 user-Tabelle | 402 | ||
11.3.4 user.Host-Spalte | 407 | ||
11.3.5 db- und host-Tabelle | 411 | ||
11.3.6 tables_priv-Tabelle, columns_priv-Tabelle | 414 | ||
11.3.7 procs_priv-Tabelle | 415 | ||
11.4 Hilfsmittel zur Einstellung der Zugriffsrechte | 416 | ||
11.4.1 Zugriffsrechte ändern mit GRANT und REVOKE | 416 | ||
11.4.2 Zugriffsrechte mit SHOW GRANTS betrachten | 418 | ||
11.4.3 Passwort mit mysqladmin ändern | 418 | ||
11.5 Sichere Passwortauthentifizierung ab MySQL 4.1 | 419 | ||
11.6 Probleme beim Verbindungsaufbau | 421 | ||
11.7 Systemsicherheit | 426 | ||
12 GIS-Funktionen | 430 | ||
12.1 GIS-Datenformate | 431 | ||
12.1.1 Koordinatenangaben | 431 | ||
12.1.2 Well-Known Text, Well-Known Binary (OpenGIS) | 432 | ||
12.2 MySQL-GIS-Implementierung | 434 | ||
12.2.1 Datentypen | 434 | ||
12.2.2 Einfache geometrische Funktionen | 436 | ||
12.2.3 Räumliche Analysefunktionen | 440 | ||
12.2.4 Indizieren von geometrischen Daten | 442 | ||
12.3 SQL-Beispiele (glacier-Datenbank) | 443 | ||
12.4 SQL-Beispiele (opengeodb-Datenbank) | 448 | ||
12.4.1 Datenherkunft und Import | 449 | ||
12.4.2 Umkreissuche | 450 | ||
13 Stored Procedures und Trigger | 454 | ||
13.1 Wozu Stored Procedures und Trigger? | 454 | ||
13.2 Hello SP-World! | 456 | ||
13.3 SP-Implementierung | 460 | ||
13.4 SP-Administration | 461 | ||
13.4.1 SPs erzeugen, ändern und löschen | 461 | ||
13.4.2 Sicherheit | 464 | ||
13.4.3 SPs sichern und wiederherstellen (Backup und Restore) | 465 | ||
13.5 SP-Syntax und -Sprachelemente | 465 | ||
13.5.1 Allgemeine Syntaxregeln | 466 | ||
13.5.2 Aufruf von SPs (CALL) | 467 | ||
13.5.3 Parameter und Rückgabewert | 469 | ||
13.5.4 Kapselung von Kommandos (BEGIN/END) | 470 | ||
13.5.5 Variablen | 471 | ||
13.5.6 Verzweigungen | 473 | ||
13.5.7 Schleifen | 473 | ||
13.5.8 Fehlerabsicherung (Handler) | 475 | ||
13.5.9 Cursor | 477 | ||
13.6 SP-Beispiele | 480 | ||
13.6.1 Kategorie einfügen | 480 | ||
13.6.2 Titel einfügen | 481 | ||
13.6.3 Übergeordnete Kategorien ermitteln | 483 | ||
13.6.4 Hierarchisch geordnete Kategorieliste liefern | 485 | ||
13.7 Trigger | 488 | ||
14 Administration und Server-Konfiguration | 492 | ||
14.1 Erste Schritte | 492 | ||
14.1.1 Administrationswerkzeuge verwenden | 492 | ||
14.1.2 root-Passwort einstellen | 494 | ||
14.1.3 Konfigurationsdatei des MySQL-Servers | 495 | ||
14.1.4 MySQL-Server neu starten | 495 | ||
14.2 Basiskonfiguration des MySQL-Servers | 496 | ||
14.2.1 Verzeichnisse | 496 | ||
14.2.2 Kommunikationseinstellungen | 496 | ||
14.2.3 Defaulttabellenformat | 497 | ||
14.2.4 Defaultzeichensatz und -sortierordnung für neue Tabellen | 498 | ||
14.2.5 Zeitzone | 498 | ||
14.2.6 Sprache für Fehlermeldungen | 499 | ||
14.2.7 SQL-Modus | 500 | ||
14.3 Backups durchführen | 502 | ||
14.3.1 Datenbanken sichern (mysqldump) | 503 | ||
14.3.2 Datenbanken wiederherstellen (mysql) | 507 | ||
14.3.3 Schnelle Backups (mysqlhotcopy) | 508 | ||
14.4 Datenbankmigration | 510 | ||
14.5 Import und Export von Textdateien | 513 | ||
14.5.1 Import mit LOAD DATA INFILE | 516 | ||
14.5.2 Import mit mysqlimport | 519 | ||
14.5.3 Export mit SELECT ... INTO OUTFILE | 520 | ||
14.5.4 Export mit mysqldump | 522 | ||
14.5.5 Export mit mysql im Batch-Modus | 523 | ||
14.6 Logging | 524 | ||
14.6.1 Änderungen protokollieren (Update Log) | 526 | ||
14.6.2 Fehler, Logins und langsame Abfragen | 530 | ||
14.6.3 Administration der Logging-Dateien | 532 | ||
14.7 Replikation | 533 | ||
14.7.1 Einführung | 533 | ||
14.7.2 Einrichtung des Replikations-Master-Systems | 535 | ||
14.7.3 Einrichtung des Replikations-Slave-Systems | 538 | ||
14.7.4 Replikationssystem mit LOAD DATA einrichten | 540 | ||
14.7.5 Replikationsinterna | 542 | ||
14.7.6 Client-Programmierung | 544 | ||
14.8 Administration von MyISAM-Tabellen | 545 | ||
14.9 Administration von InnoDB-Tabellen | 549 | ||
14.9.1 Tablespace-Administration | 549 | ||
14.9.2 Logging-Dateien | 556 | ||
14.9.3 Tipps zur Geschwindigkeitsoptimierung | 559 | ||
14.10 Server-Tuning | 561 | ||
14.10.1 Optimale Speichernutzung | 562 | ||
14.10.2 Query Cache | 564 | ||
14.11 Administration von Datenbanken beim ISP | 566 | ||
Teil IV Programmierung | 570 | ||
15 PHP | 572 | ||
15.1 mysql-Funktionen | 573 | ||
15.1.1 Verbindungsaufbau | 573 | ||
15.1.2 SQL-Kommandos ausführen | 574 | ||
15.1.3 SELECT-Ergebnisse auswerten | 576 | ||
15.1.4 Transaktionen | 580 | ||
15.1.5 Fehlerabsicherung und Fehlersuche | 580 | ||
15.2 mysqli-Klassen, -Methoden und -Eigenschaften | 581 | ||
15.2.1 Verbindungsaufbau | 583 | ||
15.2.2 SQL-Kommandos ausführen | 585 | ||
15.2.3 SELECT-Ergebnisse auswerten (mysqli_result) | 586 | ||
15.2.4 Mehrere SQL-Kommandos gleichzeitig ausführen | 587 | ||
15.2.5 SQL-Kommandos mit Parametern (Prepared Statements) | 589 | ||
15.2.6 Transaktionen | 592 | ||
15.3 Datenbankfunktionen in eine Klasse auslagern | 592 | ||
15.3.1 Mehr Sicherheit durch eine eigene Passwortdatei | 593 | ||
15.3.2 Sicherheit und Komfort mit der MyDb-Klasse | 594 | ||
15.4 SELECT-Ergebnis als Tabelle anzeigen | 598 | ||
15.5 Zeichenketten, Datum, Zeit, BLOB und NULL | 600 | ||
15.5.1 Zeichenketten und BLOBs | 600 | ||
15.5.2 Datum und Uhrzeit | 602 | ||
15.5.3 NULL | 603 | ||
15.6 Miteinander verknüpfte Datensätze einfügen | 604 | ||
15.7 Verarbeitung von Formulareingaben | 604 | ||
15.7.1 Codeaufbau | 605 | ||
15.7.2 Formularaufbau | 609 | ||
15.7.3 Validierung der Formulardaten | 614 | ||
15.7.4 Speicherung der Formulardaten | 614 | ||
15.7.5 Titel löschen | 618 | ||
15.7.6 Erweiterungsmöglichkeiten | 619 | ||
15.8 Seitenweise Darstellung von Suchergebnissen | 620 | ||
15.8.1 Codeaufbau | 621 | ||
15.8.2 Autorensuche | 623 | ||
15.8.3 Titelsuche | 624 | ||
15.8.4 Suchergebnisse anzeigen | 625 | ||
15.8.5 Links auf weitere Seiten | 627 | ||
15.9 Hierarchische Daten verwalten | 628 | ||
15.9.1 Codeaufbau | 629 | ||
15.9.2 Kategoriebaum anzeigen | 630 | ||
15.9.3 Unterkategorien einfügen | 633 | ||
15.9.4 Kategorien und Unterkategorien löschen | 635 | ||
15.9.5 Übergeordnete Kategorien suchen | 636 | ||
15.9.6 Untergeordnete Kategorien suchen | 638 | ||
15.10 Geschwindigkeitsoptimierung | 638 | ||
15.10.1 Grundregeln für die effiziente Codeausführung | 639 | ||
15.10.2 Statistik- und Benchmarking-Hilfe | 641 | ||
15.10.3 Beispiel: Kategorielisten effizient erzeugen | 642 | ||
15.11 Unicode | 647 | ||
15.12 Binäre Daten (BLOBs) und Bilder | 652 | ||
15.12.1 Grundlagen und Programmiertechniken | 652 | ||
15.12.2 Programmcode | 656 | ||
15.13 Stored Procedures | 660 | ||
15.14 SP-Administrator | 661 | ||
15.14.1 Bedienung | 662 | ||
15.14.2 Code | 664 | ||
16 Perl | 670 | ||
16.1 Programmiertechniken | 670 | ||
16.1.1 Verbindung zur Datenbank herstellen | 671 | ||
16.1.2 SQL-Kommandos ausführen | 673 | ||
16.1.3 SELECT-Abfragen auswerten | 676 | ||
16.1.4 Zeichenketten, BLOBs, DATEs, SETs, ENUMs und NULL | 681 | ||
16.1.5 DBD::mysql-spezifische Methoden und Attribute | 685 | ||
16.1.6 Unicode | 686 | ||
16.1.7 Transaktionen | 687 | ||
16.1.8 Fehlerabsicherung | 688 | ||
16.2 Beispiel: Ungültige Datensätze löschen (mylibrary) | 690 | ||
16.3 CGI-Beispiel: Bücherverwaltung (mylibrary) | 692 | ||
16.3.1 Apache-CGI-Konfiguration | 692 | ||
16.3.2 Büchersuche (mylibrary-find.pl) | 695 | ||
16.3.3 Einfache Eingabe neuer Bücher (mylibrary-simpleinput.pl) | 698 | ||
16.4 CGI-Unicode-Beispiel | 702 | ||
16.4.1 Büchersuche (mylibrary-find-utf8.pl) | 702 | ||
16.4.2 Eingabe neuer Bücher (mylibrary-simpleinput-utf8.pl) | 704 | ||
17 Java (JDBC und Connector/J) | 706 | ||
17.1 Einführung | 706 | ||
17.1.1 Java-Installation | 706 | ||
17.1.2 Connector/J-Installation | 708 | ||
17.2 Programmiertechniken | 712 | ||
17.2.1 Verbindungsaufbau | 714 | ||
17.2.2 Probleme beim Verbindungsaufbau | 717 | ||
17.2.3 SQL-Kommandos ausführen | 718 | ||
17.2.4 SELECT-Abfragen auswerten | 721 | ||
17.2.5 Prepared Statements | 726 | ||
17.2.6 Transaktionen | 727 | ||
17.2.7 Batch-Kommandos | 727 | ||
17.2.8 Umgang mit binären Daten (BLOBs) | 729 | ||
18 C | 732 | ||
18.1 Hello World | 733 | ||
18.2 Verbindungsaufbau | 738 | ||
18.2.1 Auswertung der Konfigurationsdatei my.cnf | 739 | ||
18.2.2 Auswertung von Optionen in der Kommandozeile | 739 | ||
18.3 SQL-Kommandos ausführen | 740 | ||
18.3.1 Einfache Kommandos ausführen | 740 | ||
18.3.2 SELECT-Ergebnisse auswerten | 740 | ||
18.3.3 Mehrere Kommandos auf einmal ausführen | 742 | ||
18.3.4 Prepared Statements | 746 | ||
18.3.5 Zeichensatzeinstellung (Unicode) | 752 | ||
18.4 Umgang mit binären Daten und Sonderzeichen | 752 | ||
18.5 Fehlerabsicherung | 756 | ||
19 Visual Basic 6/VBA (Connector/ODBC) | 758 | ||
19.1 Grundlagen und Glossar | 758 | ||
19.2 Connector/ODBC-Optionen | 760 | ||
19.3 ADO-Programmierung und Visual Basic/VBA | 763 | ||
19.3.1 Einführung | 763 | ||
19.3.2 Verbindungsaufbau | 765 | ||
19.3.3 ADO-Programmiertechniken | 769 | ||
19.3.4 Beispiel – authors-Spalte für die titles-Tabelle | 776 | ||
19.3.5 Beispiel – Neuen Buchtitel einfügen | 779 | ||
19.3.6 Beispiel – Bilddatei in BLOB speichern und wieder lesen | 782 | ||
19.4 Konverter Microsoft-SQL-Server – MySQL | 784 | ||
19.5 VBMySQLDirect | 788 | ||
20 Visual Basic .NET und C# (Connector/Net) | 792 | ||
20.1 Kommunikation zwischen ADO.NET und MySQL | 792 | ||
20.1.1 Verbindungsaufbau mit Connector/Net | 794 | ||
20.1.2 Verbindungsaufbau mit dem ODBC-Data-Provider | 798 | ||
20.2 Programmiertechniken | 801 | ||
20.2.1 SQL-Kommandos ausführen (MySqlCommand) | 801 | ||
20.2.2 Kommandos mit Parametern (MySqlParameter) | 802 | ||
20.2.3 SELECT-Einzelergebnis auswerten (ExecuteScalar) | 804 | ||
20.2.4 SELECT-Ergebnisse lesen (MySqlDataReader) | 804 | ||
20.2.5 DataSet, DataTable, MySqlDataAdapter | 807 | ||
20.2.6 Hilfsmethoden | 810 | ||
20.2.7 Fehlerabsicherung | 811 | ||
20.2.8 Windows.Forms- und ASP.NET-Steuerelemente | 811 | ||
20.2.9 Transaktionen | 813 | ||
20.3 Beispiel – Neue Titel in mylibrary speichern | 814 | ||
20.4 Beispiel – Bilddatei in BLOB speichern und wieder lesen | 817 | ||
Teil V Referenz | 822 | ||
21 SQL-Referenz | 824 | ||
21.1 Syntax | 824 | ||
21.2 Operatoren | 831 | ||
21.3 Variablen und Konstanten | 834 | ||
21.4 MySQL-Datentypen | 838 | ||
21.5 Kommandoübersicht (thematisch) | 841 | ||
21.6 Kommandoreferenz (alphabetisch) | 844 | ||
21.7 Funktionsreferenz | 898 | ||
21.7.1 Arithmetische Funktionen | 898 | ||
21.7.2 Vergleichsfunktionen, Abfragen, Verzweigungen | 899 | ||
21.7.3 Typenkonvertierung (cast) | 900 | ||
21.7.4 Bearbeitung von Zeichenketten | 900 | ||
21.7.5 Datum und Uhrzeit | 904 | ||
21.7.6 GROUP-BY-Funktionen (Aggregatsfunktionen) | 910 | ||
21.7.7 Weitere Funktionen | 911 | ||
21.8 GIS-Datentypen und -Funktionen | 912 | ||
21.9 Sprachelemente für Stored Procedures und Trigger | 914 | ||
22 MySQL-Tools und -Optionen | 918 | ||
22.1 Überblick | 918 | ||
22.2 Gemeinsame Optionen und Konfigurationsdateien | 919 | ||
22.3 mysqld (Server) | 925 | ||
22.4 mysqld_safe (Server-Start) | 937 | ||
22.5 mysql_install_db (Neuinstallation der mysql-Datenbank) | 938 | ||
22.6 mysql_fix_privileges (Update der mysql-Datenbank) | 939 | ||
22.7 mysql_fix_extensions (Umbenennung der MyISAM-Dateien) | 939 | ||
22.8 mysql (SQL-Kommandointerpreter) | 940 | ||
22.9 mysqladmin (Administration) | 943 | ||
22.10 mysqldump (Backup/Export) | 945 | ||
22.11 mysqlimport (Textimport, Bulkimport) | 949 | ||
22.12 mysqlshow (Infoanzeige) | 950 | ||
22.13 myisamchk (MyISAM-Dateien reparieren) | 951 | ||
22.14 myisampack (MyISAM-Dateien komprimieren) | 953 | ||
23 API-Referenz | 956 | ||
23.1 PHP-API (mysql-Schnittstelle) | 956 | ||
23.2 PHP-API (mysqli-Schnittstelle) | 961 | ||
23.2.1 mysqli-Klasse | 962 | ||
23.2.2 mysqli_result-Klasse | 963 | ||
23.2.3 mysqli_stmt-Klasse | 964 | ||
23.3 Perl-DBI | 965 | ||
23.3.1 Verbindungsaufbau | 966 | ||
23.3.2 SQL-Kommandos ausführen, SELECT-Abfragen auswerten | 967 | ||
23.3.3 Fehlerabsicherung | 971 | ||
23.3.4 Hilfsfunktionen | 971 | ||
23.3.5 MySQL-spezifische Erweiterung des DBD::mysql-Treibers | 972 | ||
23.4 JDBC (Connector/J) | 974 | ||
23.4.1 Verbindungsaufbau | 974 | ||
23.4.2 SQL-Kommandos ausführen | 975 | ||
23.4.3 SELECT-Ergebnisse bearbeiten (ResultSet-Klasse) | 977 | ||
23.4.4 Transaktionen | 979 | ||
23.5 ADO.NET (Connector/Net) | 979 | ||
23.5.1 Verbindungsaufbau, Verbindungseigenschaften | 979 | ||
23.5.2 SQL-Kommandos ausführen und auswerten | 980 | ||
23.5.3 Daten in DataSet/DataTable ändern | 982 | ||
23.5.4 Transaktionen | 983 | ||
23.6 C-API | 983 | ||
23.6.1 Datenstrukturen | 983 | ||
23.6.2 Verbindungsaufbau und Administration | 986 | ||
23.6.3 SQL-Kommandos ausführen und auswerten | 989 | ||
23.6.4 Prepared Statements | 992 | ||
Anhang | 994 | ||
A Glossar | 996 | ||
B Die CD-ROM zum Buch (Inhalte auf Anfrage erhältlich) | 1004 | ||
Dateien dekomprimieren | 1004 | ||
MySQL, Apache, PHP etc. installieren | 1004 | ||
Beispieldatenbanken einrichten | 1004 | ||
Beispielprogramme ausprobieren | 1005 | ||
Updates, Errata, Links, Diskussionsforum | 1005 | ||
Quellenverzeichnis | 1006 | ||
Stichwortverzeichnis | 1008 | ||
Mehr eBooks bei www.ciando.com | 0 |