View
90
Download
3
Category
Preview:
Citation preview
MySQL 5.0 Reference Manual
MySQL 5.0 Reference Manualsta es una traduccin del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. Elmanual de referencia original de MySQL est escrito en ingls, y esta traduccin no necesariamente est tanactualizada como la versin original. Para cualquier sugerencia sobre la traduccin y para sealar errores decualquier tipo, no dude en dirigirse a mysql-es@vespito.com.Copyright 1997, 2011, 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.
Si este software o la documentacin relacionada se entrega al Gobierno de EE.UU. o a cualquier entidad que adquiera licencias en nombredel Gobierno de EE.UU. se aplicar la siguiente disposicin:
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 Prefacio.
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.
Resumen
Documento generado el: 2012-09-04 (revisin: 567)
iii
Tabla de contenidosPrefacio ..................................................................................................................................... xix1. Informacin general .................................................................................................................. 1
Sobre este manual ............................................................................................................... 2Convenciones utilizadas en este manual ............................................................................... 2Panormica de MySQL AB ................................................................................................... 4Panormica del sistema de gestin de base de datos MySQL ................................................ 4
Historia de MySQL ....................................................................................................... 6Las principales caractersticas de MySQL ..................................................................... 6Estabilidad de MySQL .................................................................................................. 8Dimensiones mximas de las tablas MySQL ................................................................. 9Conformidad con el efecto 2000 ................................................................................. 10
Mapa de desarrollo de MySQL ........................................................................................... 12El servidor MySQL incrustado (embedded) .................................................................. 12Qu hay de nuevo en MySQL 5.0 ............................................................................... 12
Fuentes de informacin acerca de MySQL .......................................................................... 13Listas de correo de MySQL ........................................................................................ 13Soporte por IRC (Internet Relay Chat) de la comunidad MySQL .................................... 20Soporte por parte de la comunidad en los foros de MySQL .......................................... 20
Cumplimiento de los estndares por parte de MySQL .......................................................... 20Estndares utilizados por MySQL ............................................................................... 21Seleccin de modos SQL ........................................................................................... 21Ejecutar MySQL en modo ANSI .................................................................................. 21Extensiones MySQL al estndar SQL .......................................................................... 22Diferencias en MySQL del estndar SQL .................................................................... 24Cmo trata MySQL las restricciones (Constraints) ........................................................ 30
2. Instalar MySQL ...................................................................................................................... 33Cuestiones generales sobre la instalacin ........................................................................... 34
Sistemas operativos que MySQL soporta .................................................................... 35Escoger la distribucin MySQL a instalar ..................................................................... 36Cmo obtener MySQL ................................................................................................ 47Comprobar la integridad de paquetes con sumas de verificacin MD5 o GnuPG .............. 47Conformacin de la instalacin ................................................................................... 49
Instalacin MySQL estndar con una distribucin binaria ...................................................... 51Instalar MySQL en Windows ............................................................................................... 51
Requisitos de Windows .............................................................................................. 52Eleccin de un paquete de instalacin ........................................................................ 52Instalacin de MySQL con un instalador automtico ..................................................... 53Usar el asistente de instalacin de MySQL .................................................................. 53Utilizacin del asistente de configuracin ..................................................................... 56Instalar MySQL partiendo de un archivo Zip Noinstall ................................................... 60Descomprimir el fichero de instalacin ......................................................................... 61Creacin de un fichero de opciones ............................................................................ 61Seleccionar un tipo de servidor MySQL ....................................................................... 62Arrancar el servidor la primera vez ............................................................................. 63Arrancar MySQL desde la lnea de comandos de Windows .......................................... 64Arrancar MySQL como un servicio de Windows ........................................................... 65Comprobar la instalacin de MySQL Installation ........................................................... 67Resolucin de problemas en la instalacin de MySQL bajo Windows ............................. 67Aumentar la versin de MySQL en Windows ............................................................... 69Comparacin entre MySQL en Windows y MySQL en Unix ........................................... 69
Instalar MySQL en Linux .................................................................................................... 72Instalar MySQL en Mac OS X ............................................................................................ 74Instalar MySQL sobre NetWare ........................................................................................... 76Instalacin de MySQL en otros sistemas similares a Unix ..................................................... 78Instalacin de MySQL usando una distribucin de cdigo fuente ........................................... 81
MySQL 5.0 Reference Manual
iv
Panormica de la instalacin de cdigo fuente ............................................................ 82Opciones tpicas de configure ................................................................................. 84Instalar desde el rbol de cdigo fuente de desarrollo .................................................. 87Problemas en la compilacin de MySQL ..................................................................... 90Notas sobre MIT-pthreads .......................................................................................... 92Instalar MySQL desde el cdigo fuente en Windows .................................................... 93Compilar los clientes de MySQL en Windows .............................................................. 97
Puesta en marcha y comprobacin despus de la instalacin ............................................... 97Pasos a seguir despus de la instalacin en Windows ................................................. 97Pasos a seguir despus de la instalacin en Unix ........................................................ 98Hacer seguras las cuentas iniciales de MySQL .......................................................... 108
Aumentar la versin de MySQL ........................................................................................ 111Aumentar la versin de 4.1 a 5.0 .............................................................................. 112Aumentar la versin de las tablas de privilegios ......................................................... 114Copiar bases de datos MySQL a otra mquina .......................................................... 116
Bajar la versin de MySQL ............................................................................................... 117Volver a la versin 4.1 .............................................................................................. 117
Notas especficas sobre sistemas operativos ..................................................................... 118Notas sobre Linux .................................................................................................... 118Notas sobre Mac OS X ............................................................................................ 125Notas sobre Solaris .................................................................................................. 125Notas sobre BSD ..................................................................................................... 129Notas sobre otros Unix ............................................................................................. 132Notas sobre OS/2 ..................................................................................................... 146
Notas sobre la instalacin de Perl ..................................................................................... 146Instalacin de Perl en Unix ....................................................................................... 147Instalar ActiveState Perl en Windows ........................................................................ 148Problemas en la utilizacin de la interfaz Perl DBI/DBD ............................................... 148
3. Curso (tutorial) de MySQL .................................................................................................... 151Conectarse al y desconectarse del servidor ....................................................................... 151Entrar consultas ............................................................................................................... 152Crear y utilizar una base de datos .................................................................................... 155
Crear y seleccionar una base de datos ..................................................................... 156Crear una tabla ........................................................................................................ 156Cargar datos en una tabla ........................................................................................ 158Extraer informacin de una tabla ............................................................................... 159
Obtener informacin sobre bases de datos y tablas ........................................................... 171Usar mysql en modo batch .............................................................................................. 172Ejemplos de consultas comunes ....................................................................................... 173
El valor mximo de una columna .............................................................................. 174El registro que tiene el valor mximo de determinada columna .................................... 174Mximo de columna por grupo .................................................................................. 174Los registros de un grupo que tienen el mximo valor en alguna columna .................... 175Utilizacin de variables de usuario ............................................................................ 175Usar claves forneas (foreign keys) ........................................................................... 175Buscar usando dos claves ........................................................................................ 177Calcular visitas diarias .............................................................................................. 177Utilizacin de AUTO_INCREMENT ............................................................................... 177
Consultas del proyecto Mellizos (Twin) .............................................................................. 179Encontrar todos los mellizos no repartidos ................................................................. 179Mostrar una tabla de estado de mellizos .................................................................... 181
Usar MySQL con Apache ................................................................................................. 1814. Usar los programas MySQL .................................................................................................. 183
Panormica de programas MySQL .................................................................................... 183Invocar programas MySQL ............................................................................................... 184Especificar opciones de programa ..................................................................................... 185
Usar opciones en la lnea de comandos .................................................................... 185Usar ficheros de opciones ........................................................................................ 187
MySQL 5.0 Reference Manual
v
Usar variables de entorno para especificar opciones .................................................. 191Utilizacin de opciones para establecer variables de programa ................................... 192
5. Administracin de bases de datos ......................................................................................... 193El servidor MySQL y scripts de arranque del servidor ......................................................... 194
Panormica de los programas scripts y las utilidades del lado del servidor (server-side)................................................................................................................................. 194El servidor extendido de MySQL mysqld-max .......................................................... 195El script de arranque del servidor mysqld_safe ....................................................... 198El script mysql.server para el arranque del servidor ............................................... 201El programa mysqld_multi para gestionar mltiples servidores MySQL .................... 201
El gestor de instancias de MySQL .................................................................................... 204Arrancar el servidor MySQL con el gestor de instancias MySQL .................................. 205Conexin al gestor de instancias de MySQL y creacin de cuentas de usuario ............. 205Opciones de los comandos del gestor de instancias MySQL ....................................... 206Ficheros de configuracin del gestor de instancias de MySQL ..................................... 207Los comandos que reconoce el gestor de instancias de MySQL .................................. 208
Configuracin del servidor MySQL .................................................................................... 210Opciones del comando mysqld ................................................................................ 210El modo SQL del servidor ......................................................................................... 219Variables de sistema del servidor .............................................................................. 224Variables de estado del servidor ............................................................................... 252
El proceso de cierre del servidor MySQL ........................................................................... 262Cuestiones de seguridad general ...................................................................................... 263
Gua de seguridad general ....................................................................................... 263Hacer que MySQL sea seguro contra ataques ........................................................... 266Opciones de arranque para mysqld relacionadas con la seguridad ............................. 267Cuestiones relacionadas con la seguridad y LOAD DATA LOCAL ................................ 269
El sistema de privilegios de acceso de MySQL .................................................................. 269Qu hace el sistema de privilegios ............................................................................ 269Cmo funciona el sistema de privilegios .................................................................... 270Privilegios de los que provee MySQL ........................................................................ 274Conectarse al servidor MySQL .................................................................................. 277Control de acceso, nivel 1: Comprobacin de la conexin ........................................... 278Control de acceso, nivel 2: comprobacin de solicitudes ............................................. 281Cundo tienen efecto los camios de privilegios .......................................................... 284Causas de errores Access denied ........................................................................ 284Hashing de contraseas en MySQL 4.1 ..................................................................... 289
Gestin de la cuenta de usuario MySQL ........................................................................... 293Nombres de usuario y contraseas de MySQL ........................................................... 293Aadir nuevas cuentas de usuario a MySQL .............................................................. 294Eliminar cuentas de usuario de MySQL ..................................................................... 297Limitar recursos de cuentas ...................................................................................... 297Asignar contraseas a cuentas ................................................................................. 299Guardar una contrasea de forma segura .................................................................. 300Usar conexiones seguras .......................................................................................... 301
Prevencin de desastres y recuperaciones ........................................................................ 307Copias de seguridad de bases de datos .................................................................... 307Ejemplo de estrategia de copias de seguridad y recuperacin ..................................... 309Mantenimiento de tablas y recuperacin de un fallo catastrfico (crash) ....................... 312Organizar un programa de mantenimiento de tablas ................................................... 324Obtener informacin acerca de una tabla .................................................................. 325
Uso internacional y localizacin de MySQL ........................................................................ 330El conjunto de caracteres utilizado para datos y ordenacin ........................................ 330Escoger el idioma de los mensajes de error .............................................................. 331Aadir un conjunto de caracteres nuevo .................................................................... 332Los vectores de definicin de caracteres ................................................................... 333Soporte para colacin de cadenas de caracteres ....................................................... 334Soporte de caracteres multi-byte ............................................................................... 334
MySQL 5.0 Reference Manual
vi
Problemas con conjuntos de caracteres ..................................................................... 334Soporte de zonas horarias en el servidor MySQL ....................................................... 334
Los ficheros de registro (log) de MySQL ............................................................................ 336El registro de errroes (Error Log) .............................................................................. 336El registro general de consultas ................................................................................ 337El registro binario (Binary Log) .................................................................................. 337El registro de consultas lentas (Slow Query Log) ....................................................... 341Mantenimiento de ficheros de registro (log) ................................................................ 341
Ejecutar ms de un servidor MySQL en la misma mquina ................................................. 342Ejecutar varios servidores en Windows ...................................................................... 344Ejecutar varios servidores en Unix ............................................................................ 346Utilizacin de programas cliente en un entorno de mltiples servidores ........................ 348
La cach de consultas de MySQL ..................................................................................... 348Cmo opera la cach de consultas ........................................................................... 349Opciones de SELECT para la cach de consultas ....................................................... 350Configuracin de la cach de consultas ..................................................................... 351Estado y mantenimiento de la cach de consultas ..................................................... 352
6. Replicacin en MySQL ......................................................................................................... 355Introduccin a la replicacin .............................................................................................. 355Panormica de la implementacin de la replicacin ............................................................ 356Detalles de la implementacin de la replicacin ................................................................. 356
Estados de los subprocesos del maestro de replicacin .............................................. 358Estados de proceso E/S (I/O) del esclavo de replicacin ............................................. 358Estados del flujo SQL de un esclavo de replicacin .................................................... 359Ficheros de replicacin, retardados y de estado ......................................................... 359
Cmo montar la replicacin .............................................................................................. 361Compatibilidad entre versiones de MySQL con respecto a la replicacin .............................. 365Aumentar la versin de la replicacin ................................................................................ 365
Aumentar la versin de la replicacin a 5.0 ................................................................ 365Caractersticas de la replicacin y problemas conocidos ..................................................... 365Opciones de arranque de replicacin ................................................................................ 369Preguntas y respuestas sobre replicacin .......................................................................... 377Resolucin de problemas de replicacin ............................................................................ 382Reportar bugs de replicacin ............................................................................................ 383
7. Optimizacin de MySQL ....................................................................................................... 385Panormica sobre optimizacin ......................................................................................... 386
Limitaciones y soluciones de compromiso en el diseo de MySQL .............................. 386Disear aplicaciones pensando en la portabilidad ....................................................... 387Para qu hemos usado MySQL ................................................................................ 388El paquete de pruebas de rendimiento (benchmarks) de MySQL ................................. 388Usar pruebas de rendimiento (benchmarks) propios ................................................... 389
Optimizar sentencias SELECT y otras consultas ................................................................. 390Sintaxis de EXPLAIN (Obtener informacin acerca de un SELECT) .............................. 390Estimar el renidimiento de una consulta .................................................................... 398Velocidad de las consultas SELECT ........................................................................... 398Optimizacin de las clusulas WHERE por parte de MySQL ......................................... 398Optimizacin de rango .............................................................................................. 400Index Merge Optimization ......................................................................................... 403Cmo optimiza MySQL IS NULL ............................................................................. 405Cmo MySQL optimiza DISTINCT ............................................................................ 406Cmo optimiza MySQL los LEFT JOIN y RIGHT JOIN ............................................. 406Cmo optimiza MySQL ORDER BY ........................................................................... 407Cmo optimiza MySQL los GROUP BY ...................................................................... 409Cmo optimiza MySQL las clusulas LIMIT .............................................................. 410Cmo evitar lecturas completas de tablas .................................................................. 411Velocidad de la sentencia INSERT ............................................................................ 411Velocidad de las sentencias UPDATE ......................................................................... 413Velocidad de sentencias DELETE .............................................................................. 413
MySQL 5.0 Reference Manual
vii
Otros consejos sobre optimizacin ............................................................................ 413Temas relacionados con el bloqueo .................................................................................. 416
Mtodos de bloqueo ................................................................................................. 416Cuestiones relacionadas con el bloqueo (locking) de tablas ........................................ 418
Optimizar la estructura de una base de datos .................................................................... 419Elecciones de diseo ................................................................................................ 419Haga sus datos lo ms pequeos posibles ................................................................ 419ndices de columna .................................................................................................. 420ndices de mltiples columnas ................................................................................... 421Cmo utiliza MySQL los ndices ................................................................................ 422La cach de claves de MyISAM ................................................................................ 424Cmo cuenta MySQL las tablas abiertas ................................................................... 428Cmo abre y cierra tablas MySQL ............................................................................ 429Desventajas de crear muchas tablas en la misma base de datos ................................. 430
Optimizacin del servidor MySQL ...................................................................................... 430Factores de sistema y afinamientos de parmetros de arranque .................................. 430Afinar parmetros del servidor .................................................................................. 430Vigilar el rendimiento del optimizador de consultas ..................................................... 433Efectos de la compilacin y del enlace en la velocidad de MySQL ............................... 434Cmo utiliza MySQL la memoria ............................................................................... 435Cmo usa MySQL las DNS ...................................................................................... 436
Cuestiones relacionadas con el disco ................................................................................ 437Utilizar enlaces simblicos ........................................................................................ 438
8. Programas cliente y utilidades MySQL .................................................................................. 441Panormica de scripts y utilidades del lado del cliente ........................................................ 441myisampack, el generador de tablas comprimidas de slo lectura de MySQL ...................... 443La herramienta intrprete de comandos mysql .................................................................. 449
Comandos mysql .................................................................................................... 455Ejecutar sentencias SQL desde un fichero de texto .................................................... 458Sugerencias acerca de mysql .................................................................................. 459
Administrar un servidor MySQL con mysqladmin .............................................................. 460La utilidad mysqlbinlog para registros binarios ............................................................... 465El programa mysqlcheck para mantener y reparar tablas ................................................. 468El programa de copia de seguridad de base de datos mysqldump ...................................... 471El programa de copias de seguridad de base de datos mysqlhotcopy .............................. 477El programa para importar datos mysqlimport ................................................................ 479Mostrar bases de datos, tablas y columnas con mysqlshow .............................................. 481perror, explicacin de cdigos de error ........................................................................... 483La utilidad replace de cambio de cadenas de caracteres ................................................. 483
9. Estructura de lenguaje .......................................................................................................... 485Valores literales ................................................................................................................ 485
Cadenas de caracteres ............................................................................................. 485Nmeros .................................................................................................................. 487Valores hexadecimales ............................................................................................. 488Valores booleanos .................................................................................................... 488Valores de bits ......................................................................................................... 488Valores NULL ........................................................................................................... 488
Nombres de bases de datos, tablas, ndices, columnas y alias ............................................ 489Cualificadores de los identificadores .......................................................................... 490Sensibilidad a maysuclas y minsculas de identificadores ......................................... 490
Variables de usuario ......................................................................................................... 492Variables de sistema ........................................................................................................ 493
Variables estructuradas de sistema ........................................................................... 495Sintaxis de comentarios .................................................................................................... 496Tratamiento de palabras reservadas en MySQL ................................................................. 497
10. Soporte de conjuntos de caracteres .................................................................................... 501Conjuntos de caracteres y colaciones en general ............................................................... 502Conjuntos de caracteres y colaciones en MySQL ............................................................... 502
MySQL 5.0 Reference Manual
viii
Determinar el conjunto de caracteres y la colacin por defecto ........................................... 504Conjunto de caracteres y colacin del servidor ........................................................... 504Conjuntos de caracteres y colaciones de la base de datos .......................................... 504Conjunto de caracteres y colacin de tabla ................................................................ 505Conjunto de caracteres y colacin de columnas ......................................................... 505Ejemplos de asignacin de conjunto de caracteres y colacin ..................................... 506Conjunto de caracteres y colacin de la conexin ...................................................... 507Conjunto de caracteres y colacin de columnas carcter .......................................... 508Usar COLLATE en sentencias SQL ............................................................................ 509Precedencia de la clusula COLLATE ........................................................................ 510Operador BINARY .................................................................................................... 510Casos especiales en los que determinar la colacin es complicado ............................. 510A cada colacin un conjunto de caracteres correcto ................................................... 511Un ejemplo del efecto de una colacin ...................................................................... 511
Efectos del soporte de conjuntos de caracteres ................................................................. 512Cadenas de caracteres de resultado ......................................................................... 512CONVERT() .............................................................................................................. 513CAST() .................................................................................................................... 513Sentencias SHOW ...................................................................................................... 513
Soporte Unicode ............................................................................................................... 515UTF8 para metadatos ....................................................................................................... 515Compatibilidad con otros SGBDs (Sistemas gestores de bases de datos) ............................ 517Formato del nuevo fichero de conjunto de caracateres ....................................................... 517Conjunto de caracteres nacional ....................................................................................... 517Conjuntos de caracteres y colaciones que soporta MySQL ................................................. 517
Conjuntos de caracteres Unicode .............................................................................. 518Conjuntos de caracteres de Europa occidental ........................................................... 520Conjuntos de caracteres de Europa central ................................................................ 521Conjuntos de caracteres del sur de Europa y de Oriente Medio ................................... 522Conjuntos de caracteres blticos ............................................................................... 522Conjuntos de caracteres cirlicos ............................................................................... 523Conjuntos de caracteres asiticos ............................................................................. 523
11. Tipos de columna ............................................................................................................... 525Panormica de tipos de columna ...................................................................................... 526
Panormica de tipos numricos ................................................................................ 526Panormica de tipos de fechas y hora ....................................................................... 529Panormica de tipos de cadenas de caracteres ......................................................... 530
Tipos numricos ............................................................................................................... 533Tipos de fecha y hora ...................................................................................................... 536
Los tipos de datos DATETIME, DATE y TIMESTAMP .................................................... 537El tipo TIME ............................................................................................................. 541El tipo de datos YEAR ............................................................................................... 542Efecto 2000 (Y2K) y tipos de datos ........................................................................... 542
Tipos de cadenas de caracteres ....................................................................................... 543Los tipos CHAR y VARCHAR ....................................................................................... 543Los tipos BINARY y VARBINARY ............................................................................... 544Los tipos BLOB y TEXT ............................................................................................. 545El tipo de columna ENUM .......................................................................................... 546El tipo SET ............................................................................................................... 547
Requisitos de almacenamiento segn el tipo de columna ................................................... 548Escoger el tipo de columna correcto ................................................................................. 551Usar tipos de columnas de otros motores de bases de datos .............................................. 551
12. Funciones y operadores ...................................................................................................... 553Operadores ...................................................................................................................... 554
Precedencias de los operadores ............................................................................... 554Parntesis ................................................................................................................ 554Funciones y operadores de comparacin ................................................................... 554Operadores lgicos ................................................................................................... 559
MySQL 5.0 Reference Manual
ix
Funciones de control de flujo ............................................................................................ 560Funciones para cadenas de caracteres ............................................................................. 562
Funciones de comparacin de cadenas de caracteres ................................................ 572Funciones numricas ........................................................................................................ 574
Operadores aritmticos ............................................................................................. 574Funciones matemticas ............................................................................................ 576
Funciones de fecha y hora ............................................................................................... 582Qu calendario utiliza MySQL ........................................................................................... 597Funciones de bsqueda de texto completo (Full-Text) ........................................................ 598
Bsquedas booleanas de texto completo (Full-Text) ................................................... 601Bsquedas de texto completo (Full-Text) con expansin de consulta ........................... 603Limitaciones de las bsquedas de texto completo (Full-Text) ...................................... 603Afinar bsquedas de texto completo (Full-Text) con MySQL ........................................ 604Cosas por hacer en bsquedas de texto completo (Full-Text) ...................................... 605
Funciones y operadores de cast ....................................................................................... 606Otras funciones ................................................................................................................ 608
Funciones bit ............................................................................................................ 608Funciones de cifrado ................................................................................................ 609Funciones de informacin ......................................................................................... 612Funciones varias ...................................................................................................... 617
Funciones y modificadores para clusulas GROUP BY ........................................................ 620Funciones (de agregacin) de GROUP BY ................................................................. 620Modificadores de GROUP BY .................................................................................... 623GROUP BY con campos escondidos .......................................................................... 625
13. Sintaxis de sentencias SQL ................................................................................................ 627Sentencias de definicin de datos (Data Definition Statements) ........................................... 627
Sintaxis de ALTER DATABASE ................................................................................. 627Sintaxis de ALTER TABLE ....................................................................................... 628Sintaxis de CREATE DATABASE ................................................................................ 632Sintaxis de CREATE INDEX ..................................................................................... 632Sintaxis de CREATE TABLE ..................................................................................... 634Sintaxis de DROP DATABASE ................................................................................... 643Sintaxis de DROP INDEX ......................................................................................... 644Sintaxis de DROP TABLE ......................................................................................... 644Sintaxis de RENAME TABLE ..................................................................................... 645
Sentencias de manipulacin de datos (Data Manipulation Statements) ................................ 645Sintaxis de DELETE .................................................................................................. 645Sintaxis de DO .......................................................................................................... 648Sintaxis de HANDLER ................................................................................................ 648Sintaxis de INSERT .................................................................................................. 649Sintaxis de LOAD DATA INFILE ............................................................................. 655Sintaxis de REPLACE ................................................................................................ 662Sintaxis de SELECT .................................................................................................. 663Sintaxis de subconsultas ........................................................................................... 671Sintaxis de TRUNCATE .............................................................................................. 679Sintaxis de UPDATE .................................................................................................. 680
Sentencias tiles de MySQL ............................................................................................. 681Sintaxis de DESCRIBE (Informacin acerca de las columnas) ...................................... 681Sintaxis de USE ........................................................................................................ 682
Comandos transaccionales y de bloqueo de MySQL .......................................................... 682Sintaxis de START TRANSACTION, COMMIT y ROLLBACK ........................................... 682Sentencias que no se pueden deshacer .................................................................... 684Sentencias que causan una ejecucin (commit) implcita ............................................ 684Sintaxis de SAVEPOINT y ROLLBACK TO SAVEPOINT .............................................. 684Sintaxis de LOCK TABLES y UNLOCK TABLES .......................................................... 684Sintaxis de SET TRANSACTION ................................................................................ 687
Sentencias de administracin de base de datos ................................................................. 687Sentencias para la gestin de cuentas ...................................................................... 687
MySQL 5.0 Reference Manual
x
Sentencias para el mantenimiento de tablas .............................................................. 696Sintaxis de SET ........................................................................................................ 701Sintaxis de SHOW ...................................................................................................... 705Otras sentencias para la administracin ..................................................................... 722
Sentencias de replicacin ................................................................................................. 726Sentencias SQL para el control de servidores maestros ............................................. 726Sentencias SQL para el control de servidores esclavos .............................................. 727
Sintaxis SQL de sentencias preparadas ............................................................................ 73514. Motores de almacenamiento de MySQL y tipos de tablas ..................................................... 739
El motor de almacenamiento MyISAM ................................................................................ 741Opciones de arranque de MyISAM ............................................................................ 743Cunto espacio necesitan las claves ......................................................................... 744Formatos de almacenamiento de tablas MyISAM ........................................................ 744Problemas en tablas MyISAM .................................................................................... 746
El motor de almacenamiento MERGE .................................................................................. 748Problemas con tablas MERGE .................................................................................... 750
El motor de almacenamiento MEMORY (HEAP) .................................................................... 751El motor de almacenamiento BDB (BerkeleyDB) ............................................................... 752
Sistemas operativos que soporta BDB ........................................................................ 753Instalacin de BDB .................................................................................................... 753Opciones de arranque de BDB .................................................................................. 754Caractersticas de las tablas BDB .............................................................................. 755Temas pendientes de arreglo para BDB ..................................................................... 756Limitaciones en las tablas BDB .................................................................................. 757Errores que pueden darse en el uso de tablas BDB .................................................... 757
El motor de almacenamiento EXAMPLE .............................................................................. 757El motor de almacenamiento FEDERATED .......................................................................... 758
Instalacin del motor de almacenamiento FEDERATED ................................................ 758Descripcin del motor de almacenamiento FEDERATED .............................................. 758Cmo usar las tablas FEDERATED ............................................................................. 759Limitaciones del motor de almacenamiento FEDERATED ............................................. 760
El motor de almacenamiento ARCHIVE .............................................................................. 760El motor de almacenamiento CSV ..................................................................................... 760
15. El motor de almacenamiento InnoDB .................................................................................. 763Panormica de InnoDB .................................................................................................... 763Informacin de contacto de InnoDB .................................................................................. 764Configuracin de InnoDB ................................................................................................. 764Opciones de arranque de InnoDB .................................................................................... 769Crear el espacio de tablas InnoDB ................................................................................... 775
Resolucin de problemas en la inicializacin de InnoDB ............................................ 776Crear tablas InnoDB ........................................................................................................ 776
Cmo utilizar transacciones en InnoDB con distintas APIs ......................................... 776Pasar tablas MyISAM a InnoDB ................................................................................ 777Cmo funciona una columna AUTO_INCREMENT en InnoDB ....................................... 778Restricciones (constraints) FOREIGN KEY ................................................................. 779InnoDB y replicacin MySQL .................................................................................... 783Usar un espacio de tablas para cada tabla ................................................................ 783
Aadir y suprimir registros y ficheros de datos InnoDB ...................................................... 785Hacer una copia de seguridad y recuperar una base de datos InnoDB ................................ 786
Forzar una recuperacin ........................................................................................... 787Marcadores .............................................................................................................. 788
Trasladar una base de datos InnoDB a otra mquina ........................................................ 788Bloqueo y modelo de transacciones de InnoDB ................................................................ 789
Modos de bloqueo InnoDB ....................................................................................... 789InnoDB y AUTOCOMMIT ............................................................................................ 790InnoDB y TRANSACTION ISOLATION LEVEL ......................................................... 790Lecturas consistentes que no bloquean ..................................................................... 792
MySQL 5.0 Reference Manual
xi
Bloquear lecturas SELECT ... FOR UPDATE y SELECT ... LOCK IN SHAREMODE ........................................................................................................................ 792Bloqueo de la prxima clave (Next-Key Locking): evitar el problema fantasma .............. 793Un ejemplo de lectura consistente en InnoDB ........................................................... 794Establecimiento de bloqueos con diferentes sentencias SQL en InnoDB ..................... 794Cundo ejecuta o deshace implicitamente MySQL una transaccin? .......................... 795Deteccin de interbloqueos (deadlocks) y cancelacin de transacciones (rollbacks) ...... 796Cmo tratar con interbloqueos .................................................................................. 796
Consejos de afinamiento del rendimiento de InnoDB ......................................................... 797SHOW INNODB STATUS y los monitores InnoDB ...................................................... 799
Implementacin de multiversin ........................................................................................ 803Estructuras de tabla y de ndice ........................................................................................ 804
Estructura fsica de un ndice .................................................................................... 804Bfer de inserciones ................................................................................................. 805Indices hash adaptables ........................................................................................... 805Estructura fsica de los registros ............................................................................... 805
Gestin de espacio de ficheros y de E/S de disco (Disk I/O) ............................................... 806E/S de disco (Disk I/O) ............................................................................................. 806Usar dispositivos en bruto (raw devices) para espacios de tablas ................................ 806Gestin del espacio de ficheros ................................................................................ 807Desfragmentar una tabla ........................................................................................... 808
Tratamiento de errores de InnoDB .................................................................................... 808Cdigos de error de InnoDB .................................................................................... 809Cdigos de error del sistema operativo ...................................................................... 809
Restricciones de las tablas InnoDB .................................................................................. 814Resolver problemas relacionados con InnoDB ................................................................... 816
Resolver problemas de las operaciones del diccionario de datos de InnoDB ................ 81616. MySQL Cluster ................................................................................................................... 819
Panormica de MySQL Cluster ......................................................................................... 820Conceptos bsicos de Basic MySQL Cluster ...................................................................... 822Cmo configurar varios ordenadores ................................................................................. 823
Hardware, software y redes ...................................................................................... 825Instalacin ................................................................................................................ 825Configuracin ........................................................................................................... 827Arranque inicial ........................................................................................................ 828Cargar datos de ejemplo y realizar consultas ............................................................. 829Apagado y encendido seguros .................................................................................. 832
Configuracin de MySQL Cluster ...................................................................................... 833Generar MySQL Cluster desde el cdigo fuente ......................................................... 833Instalar el software ................................................................................................... 834Rpido montaje de prueba de MySQL Cluster ........................................................... 834Fichero de configuracin ........................................................................................... 836
Gestin de procesos en MySQL Cluster ............................................................................ 860El uso del proceso del servidor MySQL para MySQL Cluster ...................................... 860ndbd, el proceso del nodo de motor de almacenamiento ............................................ 861El proceso del servidor de administracin ndb_mgmd ................................................. 862El proceso de cliente de administracin ndb_mgm ...................................................... 862Opciones de comando para procesos de MySQL Cluster ............................................ 863
Administracin de MySQL Cluster ..................................................................................... 865Comandos del cliente de administracin .................................................................... 865Informes de eventos generados por MySQL Cluster ................................................... 866Modo de usuario nico ............................................................................................. 871Copias de seguridad On-line para MySQL Cluster ...................................................... 872
Usar interconexiones de alta velocidad con MySQL Cluster ................................................ 875Configurar MySQL Cluster para que utilice Sockets SCI ............................................. 875Entender el impacto de interconexiones de nodos ...................................................... 878
Limitaciones conocidas de MySQL Cluster ........................................................................ 880Mapa de desarrollo de MySQL Cluster .............................................................................. 882
MySQL 5.0 Reference Manual
xii
Cambios de MySQL Cluster en MySQL 5.0 ............................................................... 882Mapa de desarrollo de MySQL 5.1 para MySQL Cluster ............................................. 883
Preguntas frecuentes sobre MySQL Cluster ....................................................................... 884Glosario de MySQL Cluster .............................................................................................. 890
17. Introduccin a MaxDB ........................................................................................................ 895Historia de MaxDB ........................................................................................................... 895Licenciamiento y soporte .................................................................................................. 895Enlaces relacionados con MaxDB ..................................................................................... 895Conceptos bsicos de MaxDB .......................................................................................... 895Diferencias de prestaciones entre MaxDB y MySQL ........................................................... 896Caractersticas de interoperabilidad entre MaxDB y MySQL ................................................ 896Palabras reservadas de MaxDB ........................................................................................ 896
18. Extensiones espaciales de MySQL ...................................................................................... 901Introduccin ...................................................................................................................... 902El modelo geomtrico OpenGIS ........................................................................................ 902
La jerarqua de las clases geomtricas ...................................................................... 902La clase Geometry .................................................................................................. 903La clase Point ........................................................................................................ 905La clase Curve ........................................................................................................ 905La clase LineString .............................................................................................. 905La clase Surface .................................................................................................... 906La clase Polygon .................................................................................................... 906La clase GeometryCollection .............................................................................. 906La clase MultiPoint .............................................................................................. 907La clase MultiCurve .............................................................................................. 907La clase MultiLineString .................................................................................... 907La clase MultiSurface .......................................................................................... 907La clase MultiPolygon .......................................................................................... 908
Formatos de datos espaciales soportados ......................................................................... 908Formato Well-Known Text (WKT) .............................................................................. 908Formato Well-Known Binary (WKB) ........................................................................... 909
Crear una base de datos MySQL con capacidades espaciales ............................................ 910Tipos de datos espaciales de MySQL ........................................................................ 910Crear valores espaciales ........................................................................................... 910Crear columnas espaciales ....................................................................................... 914Poblar columnas espaciales ...................................................................................... 914Extraer datos espaciales ........................................................................................... 915
Analizar informacin espacial ............................................................................................ 916Funciones de conversin de formato geomtrico ........................................................ 916Funciones Geometry ............................................................................................... 917Funciones que crean nuevas geometras a partir de unas existentes ........................... 923Funciones para probar relaciones espaciales entre objetos geomtricos ...................... 924Relaciones entre rectngulos MBR (Minimal Bounding Rectangles) ............................. 924Funciones que prueban relaciones espaciales entre geometras .................................. 925
Optimizacin del anlisis espacial ..................................................................................... 927Crear ndices espaciales ........................................................................................... 927Usar un ndice espacial ............................................................................................ 928
Conformidad y compatibilidad de MySQL .......................................................................... 929Caractersticas GIS que todava no han sido implementadas ...................................... 929
19. Procedimientos almacenados y funciones ............................................................................ 931Procedimientos almacenados y las tablas de permisos ....................................................... 932Sintaxis de procedimientos almacenados ........................................................................... 932
CREATE PROCEDURE y CREATE FUNCTION ............................................................. 932ALTER PROCEDURE y ALTER FUNCTION ................................................................. 935DROP PROCEDURE y DROP FUNCTION ..................................................................... 935SHOW CREATE PROCEDURE y SHOW CREATE FUNCTION ......................................... 936SHOW PROCEDURE STATUS y SHOW FUNCTION STATUS ......................................... 936La sentencia CALL ................................................................................................... 936
MySQL 5.0 Reference Manual
xiii
Sentencia compuesta BEGIN ... END .................................................................... 936Sentencia DECLARE .................................................................................................. 937Variables en procedimientos almacenados ................................................................. 937Conditions and Handlers ........................................................................................... 938Cursores .................................................................................................................. 939Constructores de control de flujo ............................................................................... 940
Registro binario de procedimientos almacenados y disparadores ........................................ 94220. Disparadores (triggers) ........................................................................................................ 947
Sintaxis de CREATE TRIGGER ......................................................................................... 947Sintaxis de DROP TRIGGER ............................................................................................. 949Utilizacin de disparadores ............................................................................................... 949
21. Vistas (Views) .................................................................................................................... 953Sintaxis de ALTER VIEW ................................................................................................. 953Sintaxis de CREATE VIEW ............................................................................................... 953Sintaxis de DROP VIEW ................................................................................................... 958Sintaxis de SHOW CREATE VIEW ..................................................................................... 958
22. La base de datos de informacin INFORMATION_SCHEMA .................................................... 959Las tablas INFORMATION_SCHEMA ................................................................................... 960
La tabla INFORMATION_SCHEMA SCHEMATA ............................................................ 961La tabla INFORMATION_SCHEMA TABLES ................................................................ 961La tabla INFORMATION_SCHEMA COLUMNS .............................................................. 962La tabla INFORMATION_SCHEMA STATISTICS ......................................................... 963La tabla INFORMATION_SCHEMA USER_PRIVILEGES ............................................... 964La tabla INFORMATION_SCHEMA SCHEMA_PRIVILEGES ........................................... 964La tabla INFORMATION_SCHEMA TABLE_PRIVILEGES ............................................. 965La tabla INFORMATION_SCHEMA COLUMN_PRIVILEGES ........................................... 965La tabla INFORMATION_SCHEMA CHARACTER_SETS ................................................. 966La tabla INFORMATION_SCHEMA COLLATIONS ......................................................... 966La tabla INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY .... 966La tabla INFORMATION_SCHEMA TABLE_CONSTRAINTS ........................................... 967La tabla INFORMATION_SCHEMA KEY_COLUMN_USAGE ............................................. 967La tabla INFORMATION_SCHEMA ROUTINES ............................................................ 968La tabla INFORMATION_SCHEMA VIEWS .................................................................. 969La tabla INFORMATION_SCHEMA TRIGGERS ............................................................ 969Otras tablas INFORMATION_SCHEMA ......................................................................... 971
Extensiones a las sentencias SHOW ................................................................................... 97123. Matemticas de precisin .................................................................................................... 973
Tipos de valores numricos .............................................................................................. 973Cambios en el tipo de datos DECIMAL .............................................................................. 974Manejo de expresiones ..................................................................................................... 975Cmo se redondea ........................................................................................................... 977Ejemplos de matemticas de precisin .............................................................................. 977
24. APIs de MySQL ................................................................................................................. 983Utilidades para el desarrollo de programas MySQL ............................................................ 983
msql2mysql .......................................................................................................... 983mysql_config ........................................................................................................ 984
La API C de MySQL ........................................................................................................ 985Tipos de datos de la API C ...................................................................................... 985Panormica de funciones de la API C ....................................................................... 988Descripcin de funciones de la API C ....................................................................... 992Sentencias preparadas de la API C ......................................................................... 1032Tipos de datos de sentencias preparadas de la API C .............................................. 1033Panormica de las funciones de sentencias preparadas de la API C .......................... 1036Descripciones de funciones de sentencias preparadas de la API C ............................ 1038Problemas con sentencias preparadas de la API C .................................................. 1058Tratamiento por parte de la API C de la ejecucin de mltiples consultas ................... 1059Manejo de valores de fecha y hora por parte de la API C ......................................... 1059Descripcin de funciones de la API C para el control de subprocesos ........................ 1060
MySQL 5.0 Reference Manual
xiv
Descripcin de las funciones de la API C del servidor incrustado (embedded) ............. 1061Preguntas y problemas comunes en el uso de la API C ............................................ 1063Generar programas cliente ...................................................................................... 1064Cmo hacer un cliente multihilo .............................................................................. 1065libmysqld, la biblioteca del servidor MySQL incrustado (embedded) ........................... 1066
API PHP de MySQL ....................................................................................................... 1071Problemas comunes con MySQL y PHP .................................................................. 1072
La API Perl de MySQL ................................................................................................... 1072API C++ de MySQL ........................................................................................................ 1072
Borland C++ ........................................................................................................... 1072La API Python de MySQL ............................................................................................... 1073La API Tcl de MySQL ..................................................................................................... 1073El visor de MySQL Eiffel ................................................................................................. 1073
25. Conectores ....................................................................................................................... 1075MySQL Connector/ODBC ................................................................................................ 1076
Introduction to Connector/ODBC .............................................................................. 1076Connector/ODBC Installation ................................................................................... 1080Connector/ODBC Configuration ............................................................................... 1099Connector/ODBC Examples .................................................................................... 1115Connector/ODBC Reference .................................................................................... 1138Connector/ODBC Notes and Tips ............................................................................ 1144Connector/ODBC Support ....................................................................................... 1153
MySQL Connector/NET ................................................................................................... 1155Connector/NET Versions ......................................................................................... 1155Connector/NET Installation ...................................................................................... 1155Connector/NET Examples ....................................................................................... 1161Connector/NET Reference ...................................................................................... 1209Connector/NET Notes and Tips ............................................................................... 1310Connector/NET Support .......................................................................................... 1327
MySQL Visual Studio Plugin ........................................................................................... 1328Installing the MySQL Visual Studio Plugin ................................................................ 1328Creating a connection to the MySQL server ............................................................. 1330Using the MySQL Visual Studio Plugin .................................................................... 1331Visual Studio Plugin Support ................................................................................... 1339
MySQL Connector/J ........................................................................................................ 1339Connector/J Versions .............................................................................................. 1339Connector/J Installation ........................................................................................... 1340Connector/J Examples ............................................................................................ 1344Connector/J (JDBC) Reference ............................................................................... 1345Connector/J Notes and Tips .................................................................................... 1367Connector/J Support ............................................................................................... 1385
MySQL Connector/MXJ ................................................................................................... 1386Introduction to Connector/MXJ ................................................................................ 1386Connector/MXJ Installation ...................................................................................... 1388Connector/MXJ Configuration .................................................................................. 1392Connector/MXJ Reference ...................................................................................... 1395Connector/MXJ Notes and Tips ............................................................................... 1396Connector/MXJ Support .......................................................................................... 1400
Connector/PHP ............................................................................................................... 140126. Manejo de errores en MySQL ........................................................................................... 140327. Extender MySQL .............................................................................................................. 1439
El interior de MySQL ...................................................................................................... 1439Los subprocesos (threads) MySQL .......................................................................... 1439El paquete de pruebas MySQL Test ........................................................................ 1440
Aadir nuevas funciones a MySQL .................................................................................. 1442Caractersticas de la interfaz para funciones definidas por el usuario ......................... 1443Sintaxis de CREATE FUNCTION/DROP FUNCTION .................................................. 1443Aadir una nueva funcin definida por el usuario ..................................................... 1443
MySQL 5.0 Reference Manual
xv
Aadir una nueva funcin nativa ............................................................................. 1451Aadir nuevos procedimientos a MySQL .......................................................................... 1452
Procedimiento Analyse ............................................................................................ 1453Escribir un procedimiento ........................................................................................ 1453
A. Problemas y errores comunes ............................................................................................ 1455Cmo determinar a qu es debido un problema ............................................................... 1456Errores comunes al usar programas MySQL .................................................................... 1457
Access denied ................................................................................................... 1457Can't connect to [local] MySQL server .................................................. 1457Client does not support authentication protocol ............................... 1459La contrasea falla cuando se introduce interactivamente ......................................... 1460La mquina 'host_name' est bloqueada ................................................... 1460Demasiadas conexiones ................................................................................... 1460Out of memory .................................................................................................. 1461MySQL se ha apagado ...................................................................................... 1461Packet too large ............................................................................................. 1463Errores de comunicacin y conexiones abortadas .................................................... 1464The table is full .......................................................................................... 1464Can't create/write to file ........................................................................ 1465Commands out of sync .................................................................................... 1466Ignoring user ................................................................................................... 1466Table 'nombre_de_tabla' doesn't exist ................................................... 1466Can't initialize character set ................................................................. 1467No se encontr el fichero ........................................................................................ 1467
Problemas relacionados con la instalacin ....................................................................... 1468Problemas al enlazar a la biblioteca de clientes MySQL ............................................ 1468Cmo ejecutar MySQL como usuario normal ........................................................... 1469Problemas con permisos de archivos ....................................................................... 1470
Cuestiones relacionadas con la administracin ................................................................. 1470Cmo reiniciar la contrasea de root ....................................................................... 1470Qu hacer si MySQL sigue fallando (
Recommended