1738
MySQL 5.1 Referenzhandbuch

MySQL 5.1 Referenzhandbuch - uni-leipzig.de€¦ · MySQL 5.1 Referenzhandbuch Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

  • MySQL 5.1 Referenzhandbuch

  • MySQL 5.1 ReferenzhandbuchDies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Dasursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuellwie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

    Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved.

    This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and areprotected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy,reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by anymeans. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

    The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please reportthem to us in writing.

    Wird diese Software oder zugehörige Dokumentation an die Regierung der Vereinigten Staaten von Amerika bzw. einen Lizenznehmer imAuftrag der Regierung der Vereinigten Staaten von Amerika geliefert, gilt Folgendes:

    U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Governmentcustomers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulationand agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to therestrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Governmentcontract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500Oracle Parkway, Redwood City, CA 94065.

    This software is developed for general use in a variety of information management applications. It is not developed or intended for use in anyinherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerousapplications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safeuse of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerousapplications.

    Oracle is a registered trademark of Oracle Corporation and/or its affiliates. MySQL is a trademark of Oracle Corporation and/or its affiliates,and shall not be used without Oracle's express written authorization. Other names may be trademarks of their respective owners.

    This software and documentation may provide access to or information on content, products, and services from third parties. OracleCorporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content,products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your accessto or use of third-party content, products, or services.

    This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your accessto and use of this material is subject to the terms and conditions of your Oracle Software License and Service Agreement, which has beenexecuted and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, ordistributed to anyone outside Oracle without prior written consent of Oracle or as specifically provided below. This document is not part of yourlicense agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.

    This documentation is NOT distributed under a GPL license. Use of this documentation is subject to the following terms:

    You may create a printed copy of this documentation solely for your own personal use. Conversion to other formats is allowed as long as theactual content is not altered or edited in any way. You shall not publish or distribute this documentation in any form or on any media, exceptif you distribute the documentation in a manner similar to how Oracle disseminates it (that is, electronically for download on a Web site withthe software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software onthe same medium. Any other use, such as any dissemination of printed copies or use of this documentation, in whole or in part, in anotherpublication, requires the prior written consent from an authorized representative of Oracle. Oracle and/or its affiliates reserve any and all rightsto this documentation not expressly granted above.

    For more information on the terms of this license, for details on how the MySQL documentation is built and produced, or if you are interested indoing a translation, please visit MySQL Contact & Questions.

    For additional licensing information, including licenses for libraries used by MySQL products, see Vorwort.

    If you want help with using MySQL, please visit either the MySQL Forums or MySQL Mailing Lists where you can discuss your issues withother MySQL users.

    For additional documentation on MySQL products, including translations of the documentation into other languages, and downloadableversions in variety of formats, including HTML and PDF formats, see the MySQL Documentation Library.

    Zusammenfassung

    Das ist das MySQL-Referenzhandbuch. Es dokumentiert MySQL 5.1 bis 5.1.5-alpha.

    Dokument erzeugt am: 2014-05-24 (revision: 590)

    http://dev.mysql.com/doc/mysql/enhttp://dev.mysql.com/contact/http://forums.mysql.comhttp://lists.mysql.comhttp://dev.mysql.com/doc

  • iii

    InhaltsverzeichnisVorwort ....................................................................................................................................... xxi1 Allgemeine Informationen über MySQL ....................................................................................... 1

    1.1 Über dieses Handbuch .................................................................................................... 21.2 Konventionen in diesem Handbuch .................................................................................. 31.3 Was ist MySQL AB? ....................................................................................................... 41.4 Was ist MySQL? ............................................................................................................. 5

    1.4.1 Geschichte von MySQL ........................................................................................ 61.4.2 Die wichtigsten Features von MySQL .................................................................... 61.4.3 Wie stabil ist MySQL? .......................................................................................... 91.4.4 Wie groß können MySQL-Tabellen sein? ............................................................. 101.4.5 Jahr-2000-Konformität ......................................................................................... 11

    1.5 Überblick über das Datenbanksystem MaxDB ................................................................ 121.5.1 Was ist MaxDB? ................................................................................................ 131.5.2 Geschichte von MaxDB ...................................................................................... 131.5.3 Features von MaxDB .......................................................................................... 131.5.4 Lizenzierung und Support ................................................................................... 141.5.5 Unterschiede zwischen MaxDB und MySQL ........................................................ 141.5.6 Interoperabilität zwischen MaxDB und MySQL ..................................................... 151.5.7 Links zu MaxDB ................................................................................................. 15

    1.6 MySQL-Roadmap .......................................................................................................... 161.6.1 Was ist neu in MySQL 5.1? ................................................................................ 16

    1.7 Informationsquellen zu MySQL ...................................................................................... 171.7.1 Die MySQL-Mailinglisten ..................................................................................... 171.7.2 MySQL-Community-Support in den MySQL-Foren ................................................ 191.7.3 Unterstützung für die MySQL-Community auf Internet Relay Chat (IRC) ................. 20

    1.8 Wie man Bugs oder Probleme meldet ............................................................................ 201.9 Wie kompatibel zum SQL-Standard ist MySQL? ............................................................. 25

    1.9.1 An welche Standards hält sich MySQL? .............................................................. 251.9.2 Auswahl der SQL-Modi ....................................................................................... 251.9.3 MySQL im ANSI-Modus laufen lassen ................................................................. 261.9.4 MySQL-Erweiterungen zu ANSI SQL92 ............................................................... 261.9.5 MySQL: Unterschiede im Vergleich zu ANSI SQL92 ............................................. 291.9.6 Wie MySQL mit Constraints umgeht .................................................................... 36

    2 Installation von MySQL ............................................................................................................ 412.1 Allgemeines zur Installation ........................................................................................... 42

    2.1.1 Betriebssysteme, die von MySQL unterstützt werden ............................................ 432.1.2 Welche MySQL-Version Sie benutzen sollten ....................................................... 452.1.3 Woher man MySQL bekommt ............................................................................. 562.1.4 Bestätigen der Paketintegrität mittels MD5-Prüfsummen oder GnuPG ..................... 562.1.5 Installationslayouts .............................................................................................. 59

    2.2 Schnelle Standardinstallation von MySQL ....................................................................... 602.3 Installation von MySQL unter Windows .......................................................................... 60

    2.3.1 Systemvoraussetzungen für Windows .................................................................. 612.3.2 Auswahl eines Installationspakets ....................................................................... 622.3.3 Installation von MySQL mit dem automatischen Installer ....................................... 622.3.4 Verwendung des MySQL-Installations-Assistenten ............................................... 622.3.5 Verwendung des Konfigurations-Assistenten ........................................................ 652.3.6 Installation von MySQL aus einem Noinstall-Zip-Archiv ......................................... 702.3.7 Entpacken des Installationsarchivs ...................................................................... 702.3.8 Anlegen einer Optionsdatei ................................................................................. 712.3.9 Auswahl des MySQL Server-Typs ....................................................................... 722.3.10 Erstmaliges Starten des Servers ....................................................................... 732.3.11 Starten von MySQL von der Windows-Befehlszeile ............................................. 742.3.12 Starten von MySQL als Windows-Dienst ............................................................ 752.3.13 Test der MySQL-Installation .............................................................................. 77

  • MySQL 5.1 Referenzhandbuch

    iv

    2.3.14 Troubleshooting einer MySQL-Installation unter Windows ................................... 782.3.15 Upgrade von MySQL unter Windows ................................................................. 792.3.16 MySQL unter Windows im Vergleich zu MySQL unter Unix ................................. 80

    2.4 MySQL unter Linux installieren ...................................................................................... 822.5 Installation von MySQL unter Mac OS X ........................................................................ 852.6 Installation von MySQL unter NetWare ........................................................................... 872.7 Installation von MySQL auf anderen Unix-ähnlichen Systemen ........................................ 892.8 Installation der Quelldistribution ..................................................................................... 92

    2.8.1 Schnellinstallation, Überblick ............................................................................... 932.8.2 Typische configure-Optionen ........................................................................... 962.8.3 Installation vom Entwicklungs-Source-Tree .......................................................... 992.8.4 Probleme beim Kompilieren? ............................................................................. 1022.8.5 Anmerkungen zu MIT-pthreads ......................................................................... 1052.8.6 Windows-Quelldistribution ................................................................................. 1062.8.7 MySQL-Clients auf Windows kompilieren ........................................................... 110

    2.9 Einstellungen und Tests nach der Installation ............................................................... 1102.9.1 Nach der Installation unter Windows durchzuführende Schritte ............................ 1102.9.2 Schritte nach der Installation unter Unix ............................................................. 1112.9.3 Einrichtung der anfänglichen MySQL-Berechtigungen ......................................... 122

    2.10 MySQL aktualisieren (Upgrade/Downgrade) ................................................................ 1262.10.1 Upgrade von MySQL 5.0 ................................................................................ 1272.10.2 Upgrade auf eine andere Architektur ............................................................... 129

    2.11 Downgrade von MySQL ............................................................................................. 1302.12 Betriebssystemspezifische Anmerkungen .................................................................... 131

    2.12.1 Linux (alle Linux-Versionen) ............................................................................ 1312.12.2 Anmerkungen zu Mac OS X ............................................................................ 1382.12.3 Anmerkungen zu Solaris ................................................................................. 1392.12.4 Anmerkungen zu BSD .................................................................................... 1432.12.5 Anmerkungen zu anderen Unixen .................................................................... 1462.12.6 Anmerkungen zu OS/2 .................................................................................... 161

    2.13 Anmerkungen zur Perl-Installation .............................................................................. 1622.13.1 Installation von Perl unter Unix ........................................................................ 1622.13.2 Installation von ActiveState-Perl unter Windows ............................................... 1632.13.3 Probleme bei der Benutzung der DBI/DBD-Schnittstelle von Perl ........................ 164

    3 Einführung in MySQL: ein MySQL-Tutorial .............................................................................. 1673.1 Verbindung zum Server herstellen und trennen ............................................................. 1673.2 Anfragen eingeben ...................................................................................................... 1693.3 Eine Datenbank erzeugen und benutzen ...................................................................... 172

    3.3.1 Eine Datenbank erzeugen und auswählen ......................................................... 1733.3.2 Eine Tabelle erzeugen ...................................................................................... 1743.3.3 Daten in Tabellen einladen ............................................................................... 1753.3.4 Informationen aus einer Tabelle abfragen .......................................................... 176

    3.4 Informationen über Datenbanken und Tabellen ............................................................. 1903.5 mysql im Stapelbetrieb ............................................................................................... 1913.6 Beispiele gebräuchlicher Abfragen ............................................................................... 192

    3.6.1 Der höchste Wert einer Spalte .......................................................................... 1933.6.2 Die Zeile, die den höchsten Wert einer bestimmten Spalte enthält ....................... 1933.6.3 Höchster Wert einer Spalte pro Gruppe ............................................................. 1933.6.4 Die Zeilen, die das gruppenweise Maximum eines bestimmten Felds enthalten ..... 1943.6.5 Wie Benutzervariablen verwendet werden .......................................................... 1943.6.6 Wie Fremdschlüssel verwendet werden ............................................................. 1943.6.7 Über zwei Schlüssel suchen ............................................................................. 1963.6.8 Besuche pro Tag berechnen ............................................................................. 1963.6.9 Verwendung von AUTO_INCREMENT .................................................................. 197

    3.7 Anfragen aus dem Zwillingsprojekt ............................................................................... 1983.7.1 Alle nicht verteilten Zwillinge finden ................................................................... 1993.7.2 Eine Tabelle über den Zustand von Zwillingspaaren zeigen ................................. 201

    3.8 MySQL mit Apache verwenden .................................................................................... 201

  • MySQL 5.1 Referenzhandbuch

    v

    4 Benutzung von MySQL-Programmen ...................................................................................... 2034.1 Überblick über MySQL-Programme .............................................................................. 2034.2 Aufruf von MySQL-Programmen ................................................................................... 2044.3 Angabe von Programmoptionen ................................................................................... 205

    4.3.1 Befehlszeilenoptionen für mysqld ....................................................................... 2054.3.2 my.cnf-Optionsdateien ....................................................................................... 2074.3.3 Verwendung von Umgebungsvariablen für die Angabe von Optionen ................... 2124.3.4 Verwendung von Optionen zum Setzen von Programmvariablen ......................... 212

    5 Datenbankverwaltung ............................................................................................................. 2155.1 Überblick über serverseitige Programme und Dienstprogramme ..................................... 2165.2 mysqld ....................................................................................................................... 217

    5.2.1 Befehlsoptionen für mysqld .............................................................................. 2185.2.2 Server-Systemvariablen .................................................................................... 2295.2.3 Verwendung von Server-Systemvariablen .......................................................... 2555.2.4 Server-Statusvariablen ...................................................................................... 2635.2.5 Der SQL-Modus des Servers ............................................................................ 2725.2.6 Herunterfahren des MySQL Servers .................................................................. 277

    5.3 mysqld-max, ein erweiterter mysqld-Server ................................................................... 2785.4 Startprogramme für den MySQL-Server ........................................................................ 281

    5.4.1 mysqld_safe — Startskript für den MySQL-Server ........................................... 2815.4.2 mysql.server — Startskript für den MySQL-Server ......................................... 2855.4.3 mysqld_multi — Verwalten mehrerer MySQL-Server ...................................... 285

    5.5 mysqlmanager ........................................................................................................... 2895.5.1 MySQL Instance Manager: MySQL-Server starten .............................................. 2895.5.2 MySQL Instance Manager: Verbinden und Anlegen von Benutzerkonten .............. 2905.5.3 MySQL Instance Manager: Befehlsoptionen ....................................................... 2915.5.4 MySQL Instance Manager: Konfigurationsdateien ............................................... 2925.5.5 MySQL Instance Manager: Unterstützte Befehle ................................................. 293

    5.6 mysql_fix_privilege_tables ............................................................................... 2955.7 Absichern von MySQL gegen Angreifer ........................................................................ 296

    5.7.1 Allgemeine Sicherheitsrichtlinien ........................................................................ 2965.7.2 Absichern von MySQL gegen Angreifer ............................................................. 2995.7.3 Startoptionen für mysqld in Bezug auf Sicherheit .............................................. 3015.7.4 Sicherheitsprobleme mit LOAD DATA LOCAL .................................................... 3025.7.5 Wie man MySQL als normaler Benutzer laufen läßt ............................................ 303

    5.8 Allgemeine Sicherheitsaspekte und das MySQL-Zugriffsberechtigungssystem ................. 3045.8.1 Was das Berechtigungssystem macht ................................................................ 3045.8.2 Wie das Berechtigungssystem funktioniert ......................................................... 3045.8.3 Von MySQL zur Verfügung gestellte Berechtigungen .......................................... 3095.8.4 Verbinden mit dem MySQL-Server .................................................................... 3125.8.5 Zugriffskontrolle, Phase 1: Verbindungsüberprüfung ........................................... 3135.8.6 Zugriffskontrolle, Phase 2: Anfrageüberprüfung .................................................. 3175.8.7 Wann Berechtigungsänderungen wirksam werden .............................................. 3205.8.8 Gründe für Access denied-Fehler .................................................................. 3215.8.9 Kennwort-Hashing ab MySQL 4.1 ...................................................................... 326

    5.9 MySQL-Benutzerkontenverwaltung ............................................................................... 3305.9.1 MySQL-Benutzernamen und -Kennwörter .......................................................... 3315.9.2 Hinzufügen neuer MySQL-Benutzer ................................................................... 3325.9.3 Entfernen von Benutzerkonten in MySQL ........................................................... 3355.9.4 Begrenzen von Benutzer-Ressourcen ................................................................ 3355.9.5 Kennwörter einrichten ....................................................................................... 3375.9.6 Wie Sie Ihre Kennwörter sicher halten ............................................................... 3385.9.7 Verwendung sicherer Verbindungen .................................................................. 339

    5.10 Datensicherung und Wiederherstellung ....................................................................... 3465.10.1 Datenbank-Datensicherungen .......................................................................... 3465.10.2 Beispielhaftes Vorgehen zur Datensicherung und Wiederherstellung .................. 3485.10.3 Zeitpunktbezogene Wiederherstellung .............................................................. 3515.10.4 Benutzung von myisamchk für Tabellenwartung und Absturzreparatur .............. 353

  • MySQL 5.1 Referenzhandbuch

    vi

    5.11 Lokalisierung und internationaler Gebrauch von MySQL .............................................. 3645.11.1 Der für Daten und zum Sortieren benutzte Zeichensatz ..................................... 3645.11.2 Nicht englische Fehlermeldungen .................................................................... 3665.11.3 Einen neuen Zeichensatz hinzufügen ............................................................... 3665.11.4 Die Zeichendefinitionsarrays ............................................................................ 3685.11.5 Unterstützung für String-Vergleiche .................................................................. 3685.11.6 Unterstützung für Multi-Byte-Zeichen ............................................................... 3685.11.7 Probleme mit Zeichensätzen ........................................................................... 3695.11.8 Zeitzonen-Unterstützung des MySQL-Servers .................................................. 369

    5.12 Die MySQL-Logdateien .............................................................................................. 3715.12.1 Die Fehler-Logdatei ........................................................................................ 3715.12.2 Die allgemeine Anfragen-Logdatei ................................................................... 3715.12.3 Die binäre Update-Logdatei ............................................................................. 3725.12.4 Die Logdatei für langsame Anfragen ................................................................ 3765.12.5 Wartung und Pflege der Logdateien ................................................................. 377

    5.13 Mehrere MySQL-Server auf derselben Maschine laufen lassen .................................... 3775.13.1 Mehrere Server unter Windows verwenden ...................................................... 3795.13.2 Mehrere MySQL-Server unter Unix laufen lassen ............................................. 3825.13.3 Verwendung von Client-Programmen in einer Mehrserverumgebung .................. 384

    5.14 MySQL-Anfragen-Cache ............................................................................................ 3845.14.1 Wie der Anfragen-Cache funktioniert ................................................................ 3855.14.2 Anfragen-Cache-Optionen in SELECT .............................................................. 3875.14.3 Konfiguration des Anfragen-Cache .................................................................. 3875.14.4 Anfragen-Cache-Status und -Wartung .............................................................. 389

    6 Replikation bei MySQL ........................................................................................................... 3916.1 Einführung in die Replikation ....................................................................................... 3916.2 Replikation: Implementation ......................................................................................... 3926.3 Zeilenbasierte Replikation ............................................................................................ 3936.4 Replikation: Implementationsdetails .............................................................................. 394

    6.4.1 Thread-Zustände des Replikationsmasters ......................................................... 3956.4.2 I/O-Thread-Zustände von Replikationsslaves ...................................................... 3956.4.3 SQL-Thread-Zustände von Replikationsslaves ................................................... 3976.4.4 Relay- und Statusdateien bei der Replikation ..................................................... 397

    6.5 Wie man eine Replikation aufsetzt ............................................................................... 3996.6 Replikation: Kompatibilität zwischen MySQL-Versionen ................................................. 4036.7 Upgrade eines Replikationssetups ................................................................................ 404

    6.7.1 Replikation: Upgrade auf 5.0 ............................................................................. 4046.8 Replikation: Features und bekannte Probleme .............................................................. 4046.9 Replikationsoptionen in my.cnf ..................................................................................... 4096.10 Wie Server Replikationsregeln auswerten ................................................................... 4166.11 Replikation: häufig gestellte Fragen ............................................................................ 4186.12 Vergleich zwischen anweisungsbasierter und zeilenbasierter Replikation ...................... 4246.13 Replikation: Problemlösungen .................................................................................... 4266.14 Berichten von Replikationsfehlern und -problemen ...................................................... 4276.15 Auto-Increment in der Multi-Master-Replikation ........................................................... 428

    7 Optimierung ........................................................................................................................... 4297.1 Überblick über die Optimierung .................................................................................... 430

    7.1.1 MySQL: konzeptionelle Einschränkungen ........................................................... 4307.1.2 Applikationskonzepte unter Beachtung von Portabilitätsaspekten ......................... 4317.1.3 Wofür benutzen wir MySQL? ............................................................................ 4327.1.4 Die MySQL-Benchmark-Reihe ........................................................................... 4327.1.5 Wie Sie Ihre eigenen Benchmarks benutzen ...................................................... 433

    7.2 SELECT-Anweisungen und andere Anfragen optimieren ................................................ 4347.2.1 EXPLAIN-Syntax (Informationen über ein SELECT erhalten) ................................ 4357.2.2 Anfragenperformance abschätzen ..................................................................... 4447.2.3 Geschwindigkeit von SELECT-Anweisungen ....................................................... 4457.2.4 Optimierungen der WHERE-Klausel ..................................................................... 4457.2.5 Bereichsoptimierung ......................................................................................... 447

  • MySQL 5.1 Referenzhandbuch

    vii

    7.2.6 Optimierung durch Indexverschmelzung ............................................................. 4517.2.7 IS NULL-Optimierung ...................................................................................... 4537.2.8 Optimierung von DISTINCT .............................................................................. 4547.2.9 Optimierung von LEFT JOIN und RIGHT JOIN ................................................ 4557.2.10 Optimierung verschachtelter Joins ................................................................... 4567.2.11 Vereinfachungsmöglichkeit für äußere Joins ..................................................... 4627.2.12 ORDER BY-Optimierung .................................................................................. 4647.2.13 GROUP BY-Optimierung .................................................................................. 4667.2.14 LIMIT-Optimierung ......................................................................................... 4687.2.15 Vermeidung von Tabellenscans ....................................................................... 4697.2.16 Geschwindigkeit von INSERT-Anweisungen ..................................................... 4697.2.17 Geschwindigkeit von UPDATE-Anweisungen ..................................................... 4717.2.18 Geschwindigkeit von DELETE-Anfragen ............................................................ 4727.2.19 Weitere Optimierungstipps .............................................................................. 472

    7.3 Probleme mit Sperren .................................................................................................. 4757.3.1 Wie MySQL Tabellen sperrt .............................................................................. 4757.3.2 Themen, die Tabellensperren betreffen .............................................................. 4777.3.3 Gleichzeitige Einfügevorgänge .......................................................................... 478

    7.4 Optimierung der Datenbankstruktur .............................................................................. 4797.4.1 Überlegungen zum Datenbankdesign ................................................................ 4797.4.2 Wie Sie Ihre Daten so klein wie möglich bekommen ........................................... 4797.4.3 Spaltenindizes .................................................................................................. 4817.4.4 Mehrspaltige Indizes ......................................................................................... 4817.4.5 Wie MySQL Indizes benutzt .............................................................................. 4827.4.6 Der MyISAM-Schlüssel-Cache ........................................................................... 4857.4.7 Sammlung von MyISAM-Indexstatistiken ............................................................ 4897.4.8 Nachteile der Erzeugung großer Mengen von Tabellen in derselben Datenbank .... 4917.4.9 Warum gibt es so viele offene Tabellen? ........................................................... 493

    7.5 Optimierung des MySQL Servers ................................................................................. 4937.5.1 System/Kompilierzeitpunkt und Tuning der Startparameter .................................. 4937.5.2 Serverparameter feineinstellen .......................................................................... 4947.5.3 Leistung des Abfragenoptimierers steuern ......................................................... 4987.5.4 Wie Kompilieren und Linken die Geschwindigkeit von MySQL beeinflusst ............. 4997.5.5 Wie MySQL Speicher benutzt ........................................................................... 5017.5.6 Wie MySQL DNS benutzt ................................................................................. 502

    7.6 Festplatte, Anmerkungen ............................................................................................. 5037.6.1 Symbolische Verknüpfungen ............................................................................. 504

    8 Client- und Hilfsprogramme .................................................................................................... 5078.1 myisamchk — Hilfsprogramm für die Tabellenwartung von MyISAM .............................. 509

    8.1.1 Allgemeine Optionen für myisamchk ................................................................. 5118.1.2 Prüfoptionen für myisamchk ............................................................................. 5138.1.3 Reparaturoptionen für myisamchk .................................................................... 5148.1.4 Weitere Optionen für myisamchk ...................................................................... 5158.1.5 Speicherbenutzung von myisamchk .................................................................. 516

    8.2 myisamlog — Anzeige von MyISAM-Logdateiinhalten .................................................. 5178.3 myisampack — Erzeugung komprimierter, schreibgeschützter MyISAM Tabellen ........... 5188.4 mysql — Das MySQL-Befehlszeilenwerkzeug mysql .................................................... 524

    8.4.1 mysql Optionen ............................................................................................... 5248.4.2 mysql-Befehle ................................................................................................. 5298.4.3 Wie SQL-Befehle aus einer Textdatei geladen werden ........................................ 5328.4.4 mysql: Tipps ................................................................................................... 533

    8.5 mysqlaccess — Client für die Überprüfung von Zugriffsberechtigungen ........................ 5348.6 mysqladmin — Client für die Verwaltung eines MySQL Servers ................................... 5368.7 mysqlbinlog — Hilfsprogramm für die Verarbeitung binärer Logdateien ....................... 5418.8 mysqlcheck — Hilfsprogramm für die Wartung und Reparatur von Tabellen .................. 5478.9 mysqldump — Programm zur Datensicherung ............................................................. 5508.10 mysqlhotcopy — Backup-Programm für Datenbanken .............................................. 5588.11 mysqlimport — Programm zum Datenimport ........................................................... 560

  • MySQL 5.1 Referenzhandbuch

    viii

    8.12 mysqlshow — Anzeige von Informationen über Datenbanken, Tabellen und Spalten ..... 5638.13 mysqlslap — Client zur Lastemulation ..................................................................... 5658.14 mysql_zap — Prozesse beenden, die einem Muster entsprechen ............................... 5678.15 perror — Erklärung der Fehlercodes ....................................................................... 5688.16 replace — Hilfsprogramm für String-Ersetzungen ..................................................... 569

    9 Sprachstruktur ........................................................................................................................ 5719.1 Literale: wie Strings und Zahlen geschrieben werden .................................................... 571

    9.1.1 Strings ............................................................................................................. 5719.1.2 Zahlen .............................................................................................................. 5739.1.3 Hexadezimale Werte ......................................................................................... 5749.1.4 Boolesche Werte .............................................................................................. 5749.1.5 Bitfeldwerte ...................................................................................................... 5749.1.6 NULL-Werte ...................................................................................................... 575

    9.2 Datenbank-, Tabellen-, Index-, Spalten- und Aliasnamen ............................................... 5759.2.1 Qualifikatoren für Bezeichner ............................................................................ 5769.2.2 Groß-/Kleinschreibung in Namen ....................................................................... 577

    9.3 Benutzerdefinierte Variablen ........................................................................................ 5789.4 Kommentar ................................................................................................................. 5809.5 Ist MySQL pingelig hinsichtlich reservierter Wörter? ...................................................... 581

    10 Zeichensatz-Unterstützung .................................................................................................... 58510.1 Zeichensätze und Sortierfolgen im Allgemeinen .......................................................... 58610.2 Zeichensätze und Sortierfolgen in MySQL .................................................................. 58710.3 Festlegen von Zeichensätzen und Sortierfolgen .......................................................... 588

    10.3.1 Serverzeichensatz und -sortierfolge ................................................................. 58810.3.2 Datenbankzeichensatz und -sortierfolge ........................................................... 58910.3.3 Tabellenzeichensatz und -sortierfolge .............................................................. 59010.3.4 Spaltenzeichensatz und -sortierfolge ................................................................ 59010.3.5 Zeichensatz und Sortierfolge literaler Strings .................................................... 59110.3.6 Nationaler Zeichensatz .................................................................................... 59210.3.7 Beispiele für die Zuordnung von Zeichensatz und Sortierfolge ........................... 59210.3.8 Kompatibilität mit anderen Datenbanksystemen ................................................ 593

    10.4 Verbindungszeichensatz und -sortierfolge ................................................................... 59310.5 Probleme mit Sortierfolgen ......................................................................................... 595

    10.5.1 Verwendung von COLLATE in SQL-Anweisungen ............................................. 59510.5.2 Rangfolgen von COLLATE-Klauseln ................................................................. 59610.5.3 Der BINARY-Operator ..................................................................................... 59610.5.4 Spezialfälle, in denen die Festlegung der Sortierfolge problematisch ist .............. 59710.5.5 Sortierfolgen müssen für den richtigen Zeichensatz angegeben werden ............. 59810.5.6 Beispiel für die Auswirkung von Sortierfolgen ................................................... 598

    10.6 Operationen, auf die sich die Zeichensatzunterstützung auswirkt .................................. 59910.6.1 Ergebnis-Strings ............................................................................................. 59910.6.2 CONVERT() und CAST() ................................................................................ 60010.6.3 SHOW-Anweisungen und INFORMATION_SCHEMA ............................................. 600

    10.7 Unicode-Unterstützung ............................................................................................... 60210.8 UTF8 für Metadaten .................................................................................................. 60310.9 Zeichensätze und Sortierfolgen, die MySQL unterstützt ............................................... 604

    10.9.1 Unicode-Zeichensätze ..................................................................................... 60510.9.2 Westeuropäische Zeichensätze ....................................................................... 60710.9.3 Mitteleuropäische Zeichensätze ....................................................................... 60910.9.4 Zeichensätze für Südeuropa und den Mittleren Osten ....................................... 60910.9.5 Baltische Zeichensätze ................................................................................... 61010.9.6 Kyrillische Zeichensätze .................................................................................. 61010.9.7 Asiatische Zeichensätze .................................................................................. 611

    11 Datentypen .......................................................................................................................... 61511.1 Überblick über Datentypen ......................................................................................... 615

    11.1.1 Überblick über numerische Datentypen ............................................................ 61511.1.2 Überblick über Datums- und Zeittypen ............................................................. 61811.1.3 Überblick über String-Typen ............................................................................ 619

  • MySQL 5.1 Referenzhandbuch

    ix

    11.1.4 Vorgabewerte von Datentypen ......................................................................... 62211.2 Numerische Datentypen ............................................................................................. 62311.3 Datums- und Zeittypen .............................................................................................. 625

    11.3.1 Die DATETIME-, DATE- und TIMESTAMP-Typen ................................................ 62711.3.2 Der TIME-Typ ................................................................................................. 63111.3.3 Der YEAR-Typ ................................................................................................. 63211.3.4 Jahr-2000-Probleme und Datumstypen ............................................................ 633

    11.4 String-Typen .............................................................................................................. 63311.4.1 Die CHAR- und VARCHAR-Typen ...................................................................... 63311.4.2 Die BINARY- und VARBINARY-Typen ............................................................... 63511.4.3 Die Spaltentypen BLOB und TEXT ................................................................... 63611.4.4 Der Spaltentyp ENUM ...................................................................................... 63711.4.5 Der Spaltentyp SET ........................................................................................ 639

    11.5 Speicherbedarf von Spaltentypen ............................................................................... 64111.6 Auswahl des richtigen Datentyps für eine Spalte ......................................................... 64311.7 Verwendung von Datentypen anderer Datenbanken .................................................... 644

    12 Funktionen für die Benutzung in SELECT- und WHERE-Klauseln .............................................. 64512.1 Operatoren ................................................................................................................ 646

    12.1.1 Rangfolge von Operatoren .............................................................................. 64612.1.2 Typumwandlung bei der Auswertung von Ausdrücken ....................................... 64612.1.3 Vergleichsoperatoren ...................................................................................... 64712.1.4 Logische Operatoren ....................................................................................... 652

    12.2 Ablaufsteuerungsfunktionen ....................................................................................... 65312.3 String-Funktionen ...................................................................................................... 655

    12.3.1 String-Vergleichsfunktionen ............................................................................. 66412.4 Numerische Funktionen ............................................................................................. 667

    12.4.1 Arithmetische Operationen .............................................................................. 66712.4.2 Mathematische Funktionen .............................................................................. 668

    12.5 Datums- und Zeitfunktionen ....................................................................................... 67412.6 Welchen Kalender benutzt MySQL? ........................................................................... 69012.7 MySQL-Volltextsuche ................................................................................................. 691

    12.7.1 Boolesche Volltextsuche ................................................................................. 69412.7.2 Volltextsuche mit Abfragenerweiterung ............................................................. 69612.7.3 Stoppwörter in der Volltextsuche ..................................................................... 69712.7.4 Beschränkungen der Volltextsuche .................................................................. 69912.7.5 MySQL-Volltextsuche feineinstellen ................................................................. 700

    12.8 Cast-Funktionen und Operatoren ................................................................................ 70212.9 XML-Funktionen ........................................................................................................ 70412.10 Weitere Funktionen .................................................................................................. 707

    12.10.1 Bitfunktionen ................................................................................................. 70712.10.2 Verschlüsselungs- und Kompressionsfunktionen ............................................. 70812.10.3 Informationsfunktionen .................................................................................. 71212.10.4 Verschiedene Funktionen .............................................................................. 718

    12.11 Funktionen und Modifizierer für die Verwendung in GROUP BY-Klauseln ..................... 72112.11.1 Funktionen zur Benutzung in GROUP BY-Klauseln .......................................... 72112.11.2 GROUP BY-Modifizierer ................................................................................. 72512.11.3 GROUP BY mit versteckten Feldern ................................................................ 727

    13 SQL-Anweisungssyntax ........................................................................................................ 72913.1 Datendefinition: CREATE, DROP, ALTER ...................................................................... 730

    13.1.1 ALTER DATABASE ......................................................................................... 73013.1.2 ALTER TABLE ............................................................................................... 73013.1.3 CREATE DATABASE ....................................................................................... 73713.1.4 CREATE INDEX ............................................................................................. 73713.1.5 CREATE TABLE ............................................................................................. 73913.1.6 DROP DATABASE ........................................................................................... 75313.1.7 DROP INDEX ................................................................................................. 75413.1.8 DROP TABLE ................................................................................................. 75413.1.9 RENAME TABLE ............................................................................................. 755

  • MySQL 5.1 Referenzhandbuch

    x

    13.2 Datenmanipulation: SELECT, INSERT, UPDATE, DELETE ............................................. 75613.2.1 DELETE .......................................................................................................... 75613.2.2 DO .................................................................................................................. 75813.2.3 HANDLER ........................................................................................................ 75913.2.4 INSERT .......................................................................................................... 76013.2.5 LOAD DATA INFILE ..................................................................................... 76713.2.6 REPLACE ........................................................................................................ 77513.2.7 SELECT .......................................................................................................... 77613.2.8 Syntax von Unterabfragen ............................................................................... 78913.2.9 TRUNCATE ...................................................................................................... 79913.2.10 UPDATE ........................................................................................................ 800

    13.3 Grundlegende Befehle des MySQL-Dienstprogramms für Benutzer .............................. 80113.3.1 DESCRIBE (Informationen über Spalten abrufen) .............................................. 80113.3.2 USE ................................................................................................................ 802

    13.4 Transaktionale und Sperrbefehle von MySQL ............................................................. 80313.4.1 BEGIN/COMMIT/ROLLBACK ............................................................................ 80313.4.2 Statements können nicht zurückgerollt werden ................................................. 80513.4.3 Anweisungen, die implizite Commits verursachen ............................................. 80513.4.4 SAVEPOINT und ROLLBACK TO SAVEPOINT .................................................. 80513.4.5 LOCK TABLES und UNLOCK TABLES ............................................................. 80613.4.6 SET TRANSACTION ....................................................................................... 80913.4.7 XA-Transaktionen ........................................................................................... 809

    13.5 Anweisungen zur Datenbankadministration ................................................................. 81313.5.1 Anweisungen zur Benutzerkontenverwaltung .................................................... 81313.5.2 Anweisungen für die Tabellenwartung .............................................................. 82313.5.3 SET ................................................................................................................ 82913.5.4 SHOW .............................................................................................................. 83413.5.5 Weitere Verwaltungsanweisungen ................................................................... 855

    13.6 SQL-Befehle in Bezug auf Replikation ........................................................................ 86013.6.1 SQL-Anweisungen für die Steuerung von Master-Servern ................................. 86013.6.2 SQL-Anweisungen für die Steuerung von Slave-Servern ................................... 862

    13.7 SQL-Syntax für vorbereitete Anweisungen .................................................................. 87014 Speicher-Engines und Tabellentypen .................................................................................... 873

    14.1 Die MyISAM-Speicher-Engine ..................................................................................... 87514.1.1 MyISAM-Startoptionen ..................................................................................... 87814.1.2 Für Indizes benötigter Speicherplatz ................................................................ 87914.1.3 MyISAM-Tabellenformate ................................................................................ 87914.1.4 MyISAM-Tabellenprobleme .............................................................................. 881

    14.2 InnoDB-Tabellen ....................................................................................................... 88314.2.1 Überblick über InnoDB-Tabellen ...................................................................... 88314.2.2 Kontaktinformationen ....................................................................................... 88314.2.3 Konfiguration .................................................................................................. 88414.2.4 InnoDB: Startoptionen und Systemvariablen .................................................... 89014.2.5 InnoDB-Tablespace erzeugen .......................................................................... 89714.2.6 InnoDB-Tabellen erzeugen ............................................................................. 89814.2.7 Hinzufügen und Entfernen von InnoDB-Daten- und -Logdateien ......................... 90614.2.8 Sichern und Wiederherstellen einer InnoDB-Datenbank .................................... 90714.2.9 Eine InnoDB-Datenbank auf eine andere Maschine verschieben ........................ 90914.2.10 InnoDB-Transaktionsmodell ........................................................................... 91014.2.11 Tipps zur Leistungssteigerung ....................................................................... 91914.2.12 Implementierung der Multiversionierung ......................................................... 92514.2.13 Tabellen- und Indexstrukturen ....................................................................... 92614.2.14 Verwaltung von Speicherplatz für Dateien und von Festplattenein- und -ausgaben .................................................................................................................. 92814.2.15 InnoDB-Fehlerbehandlung ............................................................................ 93014.2.16 Beschränkungen von InnoDB-Tabellen .......................................................... 93514.2.17 InnoDB-Troubleshooting ............................................................................... 937

    14.3 Die MERGE-Speicher-Engine ....................................................................................... 939

  • MySQL 5.1 Referenzhandbuch

    xi

    14.3.1 MERGE-Tabellenprobleme .............................................................................. 94114.4 Die MEMORY-Speicher-Engine ..................................................................................... 94214.5 Die BDB-Speicher-Engine ........................................................................................... 944

    14.5.1 Betriebssysteme, die von BDB unterstützt werden ............................................ 94414.5.2 BDB installieren .............................................................................................. 94514.5.3 BDB-Startoptionen .......................................................................................... 94514.5.4 Kennzeichen von BDB-Tabellen ....................................................................... 94714.5.5 Einschränkungen bei Verwendung von BDB-Tabellen ........................................ 94814.5.6 Fehler, die bei der Benutzung von BDB-Tabellen auftreten können .................... 949

    14.6 Die EXAMPLE-Speicher-Engine ................................................................................... 94914.7 Die FEDERATED-Speicher-Engine ............................................................................... 950

    14.7.1 Beschreibung der FEDERATED-Speicher-Engine ............................................... 95014.7.2 Benutzung von FEDERATED-Tabellen ............................................................... 95114.7.3 Beschränkungen der FEDERATED-Speicher-Engine .......................................... 952

    14.8 Die ARCHIVE-Speicher-Engine ................................................................................... 95214.9 Die CSV-Speicher-Engine ........................................................................................... 95314.10 Die BLACKHOLE-Speicher-Engine ............................................................................. 954

    15 Erstellung einer eigenen Speicher-Engine ............................................................................. 95715.1 Einführung ................................................................................................................. 95815.2 Überblick ................................................................................................................... 95815.3 Quelldateien für Speicher-Engines erstellen ................................................................ 96015.4 Erstellung des Handlerton ...................................................................................... 96015.5 Die Erzeugung von Handlern ..................................................................................... 96315.6 Definiton von Dateierweiterungen ............................................................................... 96415.7 Tabellen anlegen ....................................................................................................... 96415.8 Tabellen öffnen ......................................................................................................... 96515.9 Einfaches Tabellenscanning implementieren ............................................................... 966

    15.9.1 Implementierung der Funktion store_lock() ................................................ 96615.9.2 Implementierung der Funktion external_lock() ........................................... 96715.9.3 Implementierung der Funktion rnd_init() .................................................... 96715.9.4 Implementierung der Funktion info() ............................................................ 96815.9.5 Implementierung der Funktion extra() .......................................................... 96815.9.6 Implementierung der Funktion rnd_next() .................................................... 969

    15.10 Tabellen schließen ................................................................................................... 97015.11 INSERT-Unterstützung für Speicher-Engines ............................................................. 97015.12 UPDATE-Unterstützung für Speicher-Engines ............................................................. 97115.13 DELETE-Unterstützung für Speicher-Engines ............................................................. 97215.14 Unterstützung für nichtsequenzielle Leseoperationen ................................................. 972

    15.14.1 Implementierung der Funktion position() ................................................... 97215.14.2 Implementierung der Funktion rnd_pos() ..................................................... 973

    15.15 Unterstützung für Indizes ......................................................................................... 97315.15.1 Überblick über Indizes ................................................................................... 97315.15.2 Indexinformationen während CREATE TABLE-Operationen erhalten ................. 97315.15.3 Erzeugen von Indexschlüsseln ....................................................................... 97415.15.4 Schlüsselinformationen parsen ...................................................................... 97415.15.5 Indexinformationen an den Optimierer liefern .................................................. 97515.15.6 Nutzung des Indexes vorbereiten mit index_init() ..................................... 97615.15.7 Aufräumen mit index_end() ....................................................................... 97715.15.8 Implementierung der Funktion index_read() ............................................... 97715.15.9 Implementierung der Funktion index_read_idx() ....................................... 97715.15.10 Implementierung der Funktion index_next() ............................................. 97715.15.11 Implementierung der Funktion index_prev() ............................................. 97815.15.12 Implementierung der Funktion index_first() ........................................... 97815.15.13 Implementierung der Funktion index_last() ............................................. 978

    15.16 Unterstützung für Transaktionen ............................................................................... 97815.16.1 Überblick über Transaktionen ........................................................................ 97815.16.2 Eine Transaktion starten ............................................................................... 97915.16.3 Implementierung von ROLLBACK .................................................................. 980

  • MySQL 5.1 Referenzhandbuch

    xii

    15.16.4 Implementierung von COMMIT ...................................................................... 98115.16.5 Unterstützung für Savepoints ......................................................................... 981

    15.17 Die API-Referenz ..................................................................................................... 98215.17.1 bas_ext ........................................................................................................ 98215.17.2 close ............................................................................................................ 98315.17.3 create ........................................................................................................... 98415.17.4 delete_row .................................................................................................... 98515.17.5 delete_table .................................................................................................. 98615.17.6 external_lock ................................................................................................ 98615.17.7 extra ............................................................................................................. 98715.17.8 index_end ..................................................................................................... 98815.17.9 index_first ..................................................................................................... 98815.17.10 index_init .................................................................................................... 98915.17.11 index_last ................................................................................................... 99015.17.12 index_next .................................................................................................. 99015.17.13 index_prev .................................................................................................. 99115.17.14 index_read_idx ............................................................................................ 99115.17.15 index_read .................................................................................................. 99215.17.16 info ............................................................................................................. 99315.17.17 open ........................................................................................................... 99415.17.18 position ....................................................................................................... 99515.17.19 records_in_range ........................................................................................ 99615.17.20 rnd_init ....................................................................................................... 99615.17.21 rnd_next ..................................................................................................... 99715.17.22 rnd_pos ...................................................................................................... 99815.17.23 start_stmt .................................................................................................... 99915.17.24 store_lock ................................................................................................... 99915.17.25 update_row ............................................................................................... 100115.17.26 write_row .................................................................................................. 1002

    16 MySQL Cluster ................................................................................................................... 100516.1 MySQL Cluster: Überblick ........................................................................................ 100616.2 MySQL Cluster: grundlegende Konzepte ................................................................... 1008

    16.2.1 MySQL Cluster: Knoten, Knotengruppen, Repliken und Partitionen .................. 100916.3 Einfache Schritt-für-Schritt-Anleitung für mehrere Computer ....................................... 1011

    16.3.1 Hardware, Software und Netzwerk ................................................................. 101316.3.2 Installation auf mehreren Computern .............................................................. 101416.3.3 Konfiguration im Mehrcomputerbetrieb ........................................................... 101616.3.4 Erster Start ................................................................................................... 101716.3.5 Beispieldaten einladen und Abfragen ausführen ............................................. 101816.3.6 Sicheres Herunterfahren und Neustarten ........................................................ 1022

    16.4 MySQL Cluster: Konfiguration .................................................................................. 102316.4.1 MySQL Cluster vom Quellcode bauen ........................................................... 102316.4.2 Installation der Software ................................................................................ 102316.4.3 Schnelle Testeinrichtung von MySQL Cluster ................................................. 102316.4.4 Konfigurationsdatei ........................................................................................ 1026

    16.5 Prozessverwaltung in MySQL Cluster ....................................................................... 105216.5.1 Verwendung des MySQL Server-Prozesses für MySQL Cluster ....................... 105216.5.2 ndbd, der Speicher-Engine-Node-Prozess ..................................................... 105316.5.3 ndb_mgmd, der Management-Server-Prozess ................................................. 105416.5.4 ndb_mgm, der Management-Client-Prozess .................................................... 105516.5.5 Befehlsoptionen für MySQL Cluster-Prozesse ................................................. 1055

    16.6 Management von MySQL Cluster ............................................................................. 105816.6.1 MySQL Cluster: Startphasen ......................................................................... 105816.6.2 Befehle des Management-Clients .................................................................. 106016.6.3 Ereignisberichte, die MySQL Cluster erzeugt .................................................. 106116.6.4 Einbenutzermodus ........................................................................................ 106616.6.5 Online-Backup eines MySQL Clusters ............................................................ 1067

    16.7 Verwendung von Hochgeschwindigkeits-Interconnects mit MySQL Cluster .................. 1070

  • MySQL 5.1 Referenzhandbuch

    xiii

    16.7.1 Konfiguration von MySQL Cluster für SCI Sockets .......................................... 107016.7.2 Auswirkungen der Cluster-Interconnects verstehen ......................................... 1074

    16.8 Bekannte Beschränkungen von MySQL Cluster ........................................................ 107516.9 MySQL Cluster: Roadmap für die Entwicklung .......................................................... 1078

    16.9.1 MySQL Cluster: Änderungen in MySQL 5.0 .................................................... 107916.9.2 MySQL 5.1 Roadmap für die Entwicklung von MySQL Cluster ......................... 1079

    16.10 MySQL Cluster: FAQ ............................................................................................. 108016.11 MySQL Cluster: Glossar ......................................................................................... 1087

    17 Partitionierung .................................................................................................................... 109317.1 Überblick über die Partitionierung in MySQL ............................................................. 109417.2 Partitionstypen ......................................................................................................... 1096

    17.2.1 RANGE-Partitionierung .................................................................................... 109717.2.2 LIST-Partitionierung ...................................................................................... 109917.2.3 HASH-Partitionierung ...................................................................................... 110117.2.4 KEY-Partitionierung ........................................................................................ 110417.2.5 Unterpartitionen ............................................................................................ 110517.2.6 Wie die MySQL-Partitionierung NULL-Werte handhabt .................................... 1108

    17.3 Partitionsverwaltung ................................................................................................. 111017.3.1 Verwaltung von RANGE- und LIST-Partitionen ................................................ 111117.3.2 Verwaltung von HASH- und KEY-Partitionen .................................................... 111717.3.3 Wartung von Partitionen ................................................................................ 111817.3.4 Abruf von Informationen über Partitionen ....................................................... 1119

    17.4 Beschränkungen und Grenzen der Partitionierung ..................................................... 112118 Raumbezogene Erweiterungen in MySQL ............................................................................ 1123

    18.1 Einführung in die raumbezogenen Funktionen von MySQL ......................................... 112418.2 Das OpenGIS-Geometriemodell ............................................................................... 1124

    18.2.1 Hierarchie der Geometrieklassen ................................................................... 112518.2.2 Die Klasse Geometry ................................................................................... 112618.2.3 Die Klasse Point ......................................................................................... 112718.2.4 Die Klasse Curve ......................................................................................... 112718.2.5 Die Klasse LineString ............................................................................... 112718.2.6 Die Klasse Surface ..................................................................................... 112818.2.7 Die Klasse Polygon ..................................................................................... 112818.2.8 Die Klasse GeometryCollection ............................................................... 112818.2.9 Die Klasse MultiPoint ............................................................................... 112918.2.10 Die Klasse MultiCurve ............................................................................. 112918.2.11 Die Klasse MultiLineString ................................................................... 112918.2.12 Die Klasse MultiSurface ......................................................................... 113018.2.13 Die Klasse MultiPolygon ......................................................................... 1130

    18.3 Unterstützte raumbezogene Datenformate ................................................................ 113018.3.1 Well-Known Text(WKT)-Format ..................................................................... 113018.3.2 Well-Known Binary(WKB)-Format .................................................................. 1131

    18.4 Erzeugen einer MySQL-Datenbank mit raumbezogenen Werten ................................. 113218.4.1 Raumbezogene Datentypen in MySQL ........................................................... 113218.4.2 Erzeugung raumbezogener Werte .................................................................. 113218.4.3 Erzeugung raumbezogener Spalten ............................................................... 113518.4.4 Füllen raumbezogener Spalten ...................................................................... 113518.4.5 Abfragen raumbezogener Daten .................................................................... 1136

    18.5 Analyse raumbezogener Informationen ..................................................................... 113718.5.1 Umwandlungsfunktionen für das Geometrieformat .......................................... 113718.5.2 Geometry-Funktionen ................................................................................... 113818.5.3 Funktionen, die neue geometrische Objekte aus bestehenden erzeugen .......... 114318.5.4 Funktionen zum Testen raumbezogener Beziehungen zwischen geometrischenObjekten ................................................................................................................. 114418.5.5 Relationen auf geometrischen Minimal Bounding Rectangles (MBRs) ............... 114418.5.6 Funktionen, die raumbezogene Beziehungen zwischen Geometrienüberprüfen ............................................................................................................... 1145

    18.6 Optimierung der raumbezogenen Analyse ................................................................. 1146

  • MySQL 5.1 Referenzhandbuch

    xiv

    18.6.1 Erzeugung raumbezogener Indizes ................................................................ 114718.6.2 Verwendung eines raumbezogenen Indizes .................................................... 1148

    18.7 MySQL-Konformität und Kompatibilität ...................................................................... 114919 Gespeicherte Prozeduren und Funktionen ........................................................................... 1151

    19.1 Gespeicherte Routinen und die Berechtigungstabellen ............................................... 115219.2 Syntax gespeicherter Prozeduren ............................................................................. 1152

    19.2.1 CREATE PROCEDURE und CREATE FUNCTION .............................................. 115219.2.2 ALTER PROCEDURE und ALTER FUNCTION .................................................. 115619.2.3 DROP PROCEDURE und DROP FUNCTION ...................................................... 115619.2.4 Syntax der CALL-Anweisung ......................................................................... 115619.2.5 BEGIN ... END-Syntax für komplexe Anweisungen ..................................... 115719.2.6 Syntax der DECLARE-Anweisung ................................................................... 115719.2.7 Variablen in gespeicherten Routinen .............................................................. 115719.2.8 Bedingungen und Handler ............................................................................. 115819.2.9 Cursor .......................................................................................................... 116019.2.10 Konstrukte für die Ablaufsteuerung .............................................................. 1161

    19.3 Gespeicherte Prozeduren, Funktionen, Trigger und Replikation: häufig gestellteFragen ............................................................................................................................ 116419.4 Binärloggen gespeicherter Routinen und Trigger ....................................................... 1166

    20 Trigger ............................................................................................................................... 117120.1 CREATE TRIGGER .................................................................................................. 117120.2 DROP TRIGGER ...................................................................................................... 117420.3 Verwendung von Triggern ........................................................................................ 1174

    21 Views ................................................................................................................................. 117921.1 ALTER VIEW .......................................................................................................... 117921.2 CREATE VIEW ........................................................................................................ 117921.3 DROP VIEW ............................................................................................................ 118621.4 SHOW CREATE VIEW .............................................................................................. 1186

    22 Die Datenbank INFORMATION_SCHEMA .............................................................................. 118722.1 Die Tabelle INFORMATION_SCHEMA SCHEMATA ....................................................... 118922.2 Die Tabelle INFORMATION_SCHEMA TABLES .......................................................... 118922.3 Die Tabelle INFORMATION_SCHEMA COLUMNS ......................................................... 119022.4 Die Tabelle INFORMATION_SCHEMA STATISTICS ................................................... 119122.5 Die Tabelle INFORMATION_SCHEMA USER_PRIVILEGES ......................................... 119222.6 Die Tabelle INFORMATION_SCHEMA SCHEMA_PRIVILEGES ..................................... 119222.7 Die Tabelle INFORMATION_SCHEMA TABLE_PRIVILEGES ....................................... 119322.8 Die Tabelle INFORMATION_SCHEMA COLUMN_PRIVILEGES ..................................... 119322.9 Die Tabelle INFORMATION_SCHEMA CHARACTER_SETS ........................................... 119422.10 Die Tabelle INFORMATION_SCHEMA COLLATIONS ................................................. 119422.11 Die Tabelle INFORMATION_SCHEMACOLLATION_CHARACTER_SET_APPLICABILITY ............................................................. 119422.12 Die Tabelle INFORMATION_SCHEMA TABLE_CONSTRAINTS ................................... 119522.13 Die Tabelle INFORMATION_SCHEMA KEY_COLUMN_USAGE ..................................... 119522.14 Die Tabelle INFORMATION_SCHEMA ROUTINES ..................................................... 119622.15 Die Tabelle INFORMATION_SCHEMA VIEWS ........................................................... 119722.16 Die Tabelle INFORMATION_SCHEMA TRIGGERS ..................................................... 119822.17 Die Tabelle INFORMATION_SCHEMA PLUGINS ....................................................... 119922.18 Die Tabelle INFORMATION_SCHEMA ENGINES ....................................................... 120022.19 Die Tabelle INFORMATION_SCHEMA PARTITIONS ................................................. 120022.20 Die Tabelle INFORMATION_SCHEMA EVENTS ......................................................... 120122.21 Weitere INFORMATION_SCHEMA-Tabellen ............................................................... 120122.22 Erweiterungen der SHOW-Anweisungen ................................................................... 1201

    23 Präzisionsberechnungen ..................................................................................................... 120523.1 Typen numerischer Werte ........................................................................................ 120523.2 Änderungen beim Datentyp DECIMAL ....................................................................... 120623.3 Behandlung von Ausdrücken .................................................................................... 120723.4 Rundungsverhalten .................................................................................................. 120923.5 Beispiele für Präzisionsberechnungen ....................................................................... 1209

  • MySQL 5.1 Referenzhandbuch

    xv

    24 APIs und Bibliotheken ........................................................................................................ 121524.1 libmysqld, die eingebettete MySQL Server-Bibliothek ................................................. 1215

    24.1.1 Überblick über die eingebettete MySQL Server-Bibliothek ............................... 121524.1.2 Programme mit libmysqld kompilieren ........................................................ 121624.1.3 Einschränkungen bei der Benutzung des eingebetteten MySQL Servers ........... 121724.1.4 Optionen des eingebetteten Servers .............................................................. 121724.1.5 Ein einfaches Embedded Server-Beispiel ....................................................... 121724.1.6 Lizenzierung des eingebetteten Servers ......................................................... 1221

    24.2 MySQL-C-API .......................................................................................................... 122124.2.1 C-API: Datentypen ........................................................................................ 122124.2.2 C-API: Funktionsüberblick ............................................................................. 122524.2.3 C-API: Funktionsbeschreibungen ................................................................... 122924.2.4 C-API: Prepared Statements ......................................................................... 127224.2.5 C-API: Prepared Statement-Datentypen ......................................................... 127324.2.6 C-API Prepared Statements: Funktionsüberblick ............................................. 127624.2.7 C-API Prepared Statements: Funktionsbeschreibungen ................................... 127924.2.8 C-API: Probleme bei Prepared Statements ..................................................... 130024.2.9 C-API: Behandlung der Ausführung mehrerer Anweisungen ............................ 130024.2.10 C-API: Behandlung von Datums- und Zeitwerten .......................................... 130124.2.11 C-Threaded-Funktionsbeschreibungen ......................................................... 130224.2.12 C Embedded Server: Funktionsbeschreibungen ............................................ 130324.2.13 Häufige Fragen und Probleme bei der Benutzung der C-API .......................... 130424.2.14 Clientprogramme bauen .............................................................................. 130624.2.15 Wie man einen Thread-Client herstellt .......................................................... 1306

    24.3 MySQLs PHP-API .................................................................................................... 130824.3.1 Allgemeine Probleme mit MySQL und PHP .................................................... 1308

    24.4 MySQLs Perl-API .................................................................................................... 130924.5 MySQL-C++-APIs .................................................................................................... 1309

    24.5.1 Borland C++ ................................................................................................. 130924.6 MySQL-Python-APIs ......................................