1688
MySQL 5.0 Reference Manual

Mysql refman-5.0-es.a4.pdf

Embed Size (px)

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 [email protected] 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 (