refman-5.1-de.a4

1738
MySQL 5.1 Referenzhandbuch

description

refman-5.1-de.a4

Transcript of refman-5.1-de.a4

  • MySQL 5.1 Referenzhandbuch

  • MySQL 5.1 ReferenzhandbuchDies ist eine bersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Dasursprngliche 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 zugehrige 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)

  • 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 knnen MySQL-Tabellen sein? ............................................................. 101.4.5 Jahr-2000-Konformitt ......................................................................................... 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 Interoperabilitt 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 Untersttzung fr 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 hlt 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 untersttzt werden ............................................ 432.1.2 Welche MySQL-Version Sie benutzen sollten ....................................................... 452.1.3 Woher man MySQL bekommt ............................................................................. 562.1.4 Besttigen der Paketintegritt mittels MD5-Prfsummen 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 fr 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 durchzufhrende Schritte ............................ 1102.9.2 Schritte nach der Installation unter Unix ............................................................. 1112.9.3 Einrichtung der anfnglichen 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 Einfhrung 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 auswhlen ......................................................... 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 gebruchlicher Abfragen ............................................................................... 192

    3.6.1 Der hchste Wert einer Spalte .......................................................................... 1933.6.2 Die Zeile, die den hchsten Wert einer bestimmten Spalte enthlt ....................... 1933.6.3 Hchster 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 Fremdschlssel verwendet werden ............................................................. 1943.6.7 ber zwei Schlssel 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 fr mysqld ....................................................................... 2054.3.2 my.cnf-Optionsdateien ....................................................................................... 2074.3.3 Verwendung von Umgebungsvariablen fr 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 fr 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 fr den MySQL-Server ........................................................................ 281

    5.4.1 mysqld_safe Startskript fr den MySQL-Server ........................................... 2815.4.2 mysql.server Startskript fr 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: Untersttzte 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 fr mysqld in Bezug auf Sicherheit .............................................. 3015.7.4 Sicherheitsprobleme mit LOAD DATA LOCAL .................................................... 3025.7.5 Wie man MySQL als normaler Benutzer laufen lt ............................................ 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 Verfgung gestellte Berechtigungen .......................................... 3095.8.4 Verbinden mit dem MySQL-Server .................................................................... 3125.8.5 Zugriffskontrolle, Phase 1: Verbindungsberprfung ........................................... 3135.8.6 Zugriffskontrolle, Phase 2: Anfrageberprfung .................................................. 3175.8.7 Wann Berechtigungsnderungen wirksam werden .............................................. 3205.8.8 Grnde fr Access denied-Fehler .................................................................. 3215.8.9 Kennwort-Hashing ab MySQL 4.1 ...................................................................... 326

    5.9 MySQL-Benutzerkontenverwaltung ............................................................................... 3305.9.1 MySQL-Benutzernamen und -Kennwrter .......................................................... 3315.9.2 Hinzufgen neuer MySQL-Benutzer ................................................................... 3325.9.3 Entfernen von Benutzerkonten in MySQL ........................................................... 3355.9.4 Begrenzen von Benutzer-Ressourcen ................................................................ 3355.9.5 Kennwrter einrichten ....................................................................................... 3375.9.6 Wie Sie Ihre Kennwrter 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 fr Tabellenwartung und Absturzreparatur .............. 353

  • MySQL 5.1 Referenzhandbuch

    vi

    5.11 Lokalisierung und internationaler Gebrauch von MySQL .............................................. 3645.11.1 Der fr Daten und zum Sortieren benutzte Zeichensatz ..................................... 3645.11.2 Nicht englische Fehlermeldungen .................................................................... 3665.11.3 Einen neuen Zeichensatz hinzufgen ............................................................... 3665.11.4 Die Zeichendefinitionsarrays ............................................................................ 3685.11.5 Untersttzung fr String-Vergleiche .................................................................. 3685.11.6 Untersttzung fr Multi-Byte-Zeichen ............................................................... 3685.11.7 Probleme mit Zeichenstzen ........................................................................... 3695.11.8 Zeitzonen-Untersttzung 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 binre Update-Logdatei ............................................................................. 3725.12.4 Die Logdatei fr 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 Einfhrung in die Replikation ....................................................................................... 3916.2 Replikation: Implementation ......................................................................................... 3926.3 Zeilenbasierte Replikation ............................................................................................ 3936.4 Replikation: Implementationsdetails .............................................................................. 394

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

    6.5 Wie man eine Replikation aufsetzt ............................................................................... 3996.6 Replikation: Kompatibilitt 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: hufig gestellte Fragen ............................................................................ 4186.12 Vergleich zwischen anweisungsbasierter und zeilenbasierter Replikation ...................... 4246.13 Replikation: Problemlsungen .................................................................................... 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 Einschrnkungen ........................................................... 4307.1.2 Applikationskonzepte unter Beachtung von Portabilittsaspekten ......................... 4317.1.3 Wofr 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 abschtzen ..................................................................... 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 Vereinfachungsmglichkeit fr uere 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 Einfgevorgnge .......................................................................... 478

    7.4 Optimierung der Datenbankstruktur .............................................................................. 4797.4.1 berlegungen zum Datenbankdesign ................................................................ 4797.4.2 Wie Sie Ihre Daten so klein wie mglich bekommen ........................................... 4797.4.3 Spaltenindizes .................................................................................................. 4817.4.4 Mehrspaltige Indizes ......................................................................................... 4817.4.5 Wie MySQL Indizes benutzt .............................................................................. 4827.4.6 Der MyISAM-Schlssel-Cache ........................................................................... 4857.4.7 Sammlung von MyISAM-Indexstatistiken ............................................................ 4897.4.8 Nachteile der Erzeugung groer 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 Verknpfungen ............................................................................. 504

    8 Client- und Hilfsprogramme .................................................................................................... 5078.1 myisamchk Hilfsprogramm fr die Tabellenwartung von MyISAM .............................. 509

    8.1.1 Allgemeine Optionen fr myisamchk ................................................................. 5118.1.2 Prfoptionen fr myisamchk ............................................................................. 5138.1.3 Reparaturoptionen fr myisamchk .................................................................... 5148.1.4 Weitere Optionen fr myisamchk ...................................................................... 5158.1.5 Speicherbenutzung von myisamchk .................................................................. 516

    8.2 myisamlog Anzeige von MyISAM-Logdateiinhalten .................................................. 5178.3 myisampack Erzeugung komprimierter, schreibgeschtzter 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 fr die berprfung von Zugriffsberechtigungen ........................ 5348.6 mysqladmin Client fr die Verwaltung eines MySQL Servers ................................... 5368.7 mysqlbinlog Hilfsprogramm fr die Verarbeitung binrer Logdateien ....................... 5418.8 mysqlcheck Hilfsprogramm fr die Wartung und Reparatur von Tabellen .................. 5478.9 mysqldump Programm zur Datensicherung ............................................................. 5508.10 mysqlhotcopy Backup-Programm fr 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 Erklrung der Fehlercodes ....................................................................... 5688.16 replace Hilfsprogramm fr 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 fr Bezeichner ............................................................................ 5769.2.2 Gro-/Kleinschreibung in Namen ....................................................................... 577

    9.3 Benutzerdefinierte Variablen ........................................................................................ 5789.4 Kommentar ................................................................................................................. 5809.5 Ist MySQL pingelig hinsichtlich reservierter Wrter? ...................................................... 581

    10 Zeichensatz-Untersttzung .................................................................................................... 58510.1 Zeichenstze und Sortierfolgen im Allgemeinen .......................................................... 58610.2 Zeichenstze und Sortierfolgen in MySQL .................................................................. 58710.3 Festlegen von Zeichenstzen 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 fr die Zuordnung von Zeichensatz und Sortierfolge ........................... 59210.3.8 Kompatibilitt 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 Spezialflle, in denen die Festlegung der Sortierfolge problematisch ist .............. 59710.5.5 Sortierfolgen mssen fr den richtigen Zeichensatz angegeben werden ............. 59810.5.6 Beispiel fr die Auswirkung von Sortierfolgen ................................................... 598

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

    10.7 Unicode-Untersttzung ............................................................................................... 60210.8 UTF8 fr Metadaten .................................................................................................. 60310.9 Zeichenstze und Sortierfolgen, die MySQL untersttzt ............................................... 604

    10.9.1 Unicode-Zeichenstze ..................................................................................... 60510.9.2 Westeuropische Zeichenstze ....................................................................... 60710.9.3 Mitteleuropische Zeichenstze ....................................................................... 60910.9.4 Zeichenstze fr Sdeuropa und den Mittleren Osten ....................................... 60910.9.5 Baltische Zeichenstze ................................................................................... 61010.9.6 Kyrillische Zeichenstze .................................................................................. 61010.9.7 Asiatische Zeichenstze .................................................................................. 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 fr eine Spalte ......................................................... 64311.7 Verwendung von Datentypen anderer Datenbanken .................................................... 644

    12 Funktionen fr 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 Ausdrcken ....................................... 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 Stoppwrter in der Volltextsuche ..................................................................... 69712.7.4 Beschrnkungen 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 Verschlsselungs- und Kompressionsfunktionen ............................................. 70812.10.3 Informationsfunktionen .................................................................................. 71212.10.4 Verschiedene Funktionen .............................................................................. 718

    12.11 Funktionen und Modifizierer fr 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 fr 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 knnen nicht zurckgerollt 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 fr 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 fr die Steuerung von Master-Servern ................................. 86013.6.2 SQL-Anweisungen fr die Steuerung von Slave-Servern ................................... 862

    13.7 SQL-Syntax fr vorbereitete Anweisungen .................................................................. 87014 Speicher-Engines und Tabellentypen .................................................................................... 873

    14.1 Die MyISAM-Speicher-Engine ..................................................................................... 87514.1.1 MyISAM-Startoptionen ..................................................................................... 87814.1.2 Fr Indizes bentigter 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 Hinzufgen 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 fr Dateien und von Festplattenein- und -ausgaben .................................................................................................................. 92814.2.15 InnoDB-Fehlerbehandlung ............................................................................ 93014.2.16 Beschrnkungen 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 untersttzt werden ............................................ 94414.5.2 BDB installieren .............................................................................................. 94514.5.3 BDB-Startoptionen .......................................................................................... 94514.5.4 Kennzeichen von BDB-Tabellen ....................................................................... 94714.5.5 Einschrnkungen bei Verwendung von BDB-Tabellen ........................................ 94814.5.6 Fehler, die bei der Benutzung von BDB-Tabellen auftreten knnen .................... 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 Beschrnkungen 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 Einfhrung ................................................................................................................. 95815.2 berblick ................................................................................................................... 95815.3 Quelldateien fr 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 schlieen ................................................................................................... 97015.11 INSERT-Untersttzung fr Speicher-Engines ............................................................. 97015.12 UPDATE-Untersttzung fr Speicher-Engines ............................................................. 97115.13 DELETE-Untersttzung fr Speicher-Engines ............................................................. 97215.14 Untersttzung fr nichtsequenzielle Leseoperationen ................................................. 972

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

    15.15 Untersttzung fr Indizes ......................................................................................... 97315.15.1 berblick ber Indizes ................................................................................... 97315.15.2 Indexinformationen whrend CREATE TABLE-Operationen erhalten ................. 97315.15.3 Erzeugen von Indexschlsseln ....................................................................... 97415.15.4 Schlsselinformationen parsen ...................................................................... 97415.15.5 Indexinformationen an den Optimierer liefern .................................................. 97515.15.6 Nutzung des Indexes vorbereiten mit index_init() ..................................... 97615.15.7 Aufrumen 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 Untersttzung fr 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 Untersttzung fr 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-fr-Schritt-Anleitung fr 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 ausfhren ............................................. 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 fr 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 fr 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 fr SCI Sockets .......................................... 107016.7.2 Auswirkungen der Cluster-Interconnects verstehen ......................................... 1074

    16.8 Bekannte Beschrnkungen von MySQL Cluster ........................................................ 107516.9 MySQL Cluster: Roadmap fr die Entwicklung .......................................................... 1078

    16.9.1 MySQL Cluster: nderungen in MySQL 5.0 .................................................... 107916.9.2 MySQL 5.1 Roadmap fr 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 Beschrnkungen und Grenzen der Partitionierung ..................................................... 112118 Raumbezogene Erweiterungen in MySQL ............................................................................ 1123

    18.1 Einfhrung 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 Untersttzte 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 Fllen raumbezogener Spalten ...................................................................... 113518.4.5 Abfragen raumbezogener Daten .................................................................... 1136

    18.5 Analyse raumbezogener Informationen ..................................................................... 113718.5.1 Umwandlungsfunktionen fr 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 Geometrienberprfen ............................................................................................................... 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-Konformitt und Kompatibilitt ...................................................................... 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 fr 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 fr die Ablaufsteuerung .............................................................. 1161

    19.3 Gespeicherte Prozeduren, Funktionen, Trigger und Replikation: hufig gestellteFragen ............................................................................................................................ 116419.4 Binrloggen 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 Przisionsberechnungen ..................................................................................................... 120523.1 Typen numerischer Werte ........................................................................................ 120523.2 nderungen beim Datentyp DECIMAL ....................................................................... 120623.3 Behandlung von Ausdrcken .................................................................................... 120723.4 Rundungsverhalten .................................................................................................. 120923.5 Beispiele fr Przisionsberechnungen ....................................................................... 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 Einschrnkungen 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: Funktionsberblick ............................................................................. 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: Funktionsberblick ............................................. 127624.2.7 C-API Prepared Statements: Funktionsbeschreibungen ................................... 127924.2.8 C-API: Probleme bei Prepared Statements ..................................................... 130024.2.9 C-API: Behandlung der Ausfhrung 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 Hufige 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 ................................................................................................ 131024.7 MySQL-Tcl-APIs ...................................................................................................... 131024.8 MySQL-Eiffel-Wrapper ............................................................................................. 131024.9 MySQL-Hilfsprogramme fr die Programmentwicklung ............................................... 1310

    24.9.1 msql2mysql Umwandeln von mSQL-Programmen fr die Benutzung mitMySQL .................................................................................................................... 131024.9.2 mysql_config Kompilieroptionen zum Kompilieren von Clients erhalten .... 1311

    25 Connectors ..................................................................