1834
MySQL 5.0 Reference Manual

MySQL 5.0 Reference Manual · 2017. 3. 29. · MySQL 5.0 Reference Manual Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

  • MySQL 5.0 Reference Manual

  • MySQL 5.0 Reference ManualÉsta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual dereferencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada comola versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude endirigirse a [email protected].

    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 are protectedby 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 any means. Reverseengineering, 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 report themto us in writing.

    Si este software o la documentación relacionada se entrega al Gobierno de EE.UU. o a cualquier entidad que adquiera licencias en nombre delGobierno de EE.UU. se aplicará la siguiente disposición:

    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 Regulation andagency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictionsand license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, theadditional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle 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 safe use of thissoftware. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.

    Oracle is a registered trademark of Oracle Corporation and/or its affiliates. MySQL is a trademark of Oracle Corporation and/or its affiliates, andshall 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. Oracle Corporationand 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 access to or use of third-partycontent, products, or services.

    This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access toand use of this material is subject to the terms and conditions of your Oracle Software License and Service Agreement, which has been executedand with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed toanyone outside Oracle without prior written consent of Oracle or as specifically provided below. This document is not part of your license agreementnor 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, except if youdistribute the documentation in a manner similar to how Oracle disseminates it (that is, electronically for download on a Web site with the software)or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium.Any other use, such as any dissemination of printed copies or use of this documentation, in whole or in part, in another publication, requires theprior written consent from an authorized representative of Oracle. Oracle and/or its affiliates reserve any and all rights to this documentation notexpressly 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 with otherMySQL users.

    For additional documentation on MySQL products, including translations of the documentation into other languages, and downloadable versions invariety of formats, including HTML and PDF formats, see the MySQL Documentation Library.

    Resumen

    Documento generado el: 2014-05-24 (revisión: 572)

    http://dev.mysql.com/doc/mysql/enmailto:[email protected]://dev.mysql.com/contact/http://forums.mysql.comhttp://lists.mysql.comhttp://dev.mysql.com/doc

  • iii

    Tabla de contenidosPrefacio ........................................................................................................................................... xix1 Información general ......................................................................................................................... 1

    1.1 Sobre este manual ............................................................................................................... 21.2 Convenciones utilizadas en este manual ............................................................................... 21.3 Panorámica de MySQL AB ................................................................................................... 41.4 Panorámica del sistema de gestión de base de datos MySQL ................................................ 5

    1.4.1 Historia de MySQL .................................................................................................... 61.4.2 Las principales características de MySQL ................................................................... 61.4.3 Estabilidad de MySQL ............................................................................................... 91.4.4 Dimensiones máximas de las tablas MySQL ............................................................. 101.4.5 Conformidad con el efecto 2000 ............................................................................... 11

    1.5 Mapa de desarrollo de MySQL ............................................................................................ 131.5.1 El servidor MySQL incrustado (embedded) ................................................................ 131.5.2 Qué hay de nuevo en MySQL 5.0 ............................................................................ 13

    1.6 Fuentes de información acerca de MySQL ........................................................................... 141.6.1 Listas de correo de MySQL ...................................................................................... 141.6.2 Soporte por IRC (Internet Relay Chat) de la comunidad MySQL ................................. 211.6.3 Soporte por parte de la comunidad en los foros de MySQL ........................................ 21

    1.7 Cumplimiento de los estándares por parte de MySQL .......................................................... 211.7.1 Estándares utilizados por MySQL ............................................................................. 221.7.2 Selección de modos SQL ......................................................................................... 221.7.3 Ejecutar MySQL en modo ANSI ............................................................................... 231.7.4 Extensiones MySQL al estándar SQL ....................................................................... 231.7.5 Diferencias en MySQL del estándar SQL .................................................................. 261.7.6 Cómo trata MySQL las restricciones (Constraints) ..................................................... 32

    2 Instalar MySQL ............................................................................................................................. 372.1 Cuestiones generales sobre la instalación ........................................................................... 39

    2.1.1 Sistemas operativos que MySQL soporta .................................................................. 392.1.2 Escoger la distribución MySQL a instalar .................................................................. 412.1.3 Cómo obtener MySQL ............................................................................................. 522.1.4 Comprobar la integridad de paquetes con sumas de verificación MD5 o GnuPG ........... 522.1.5 Conformación de la instalación ................................................................................. 55

    2.2 Instalación MySQL estándar con una distribución binaria ...................................................... 562.3 Instalar MySQL en Windows ............................................................................................... 56

    2.3.1 Requisitos de Windows ............................................................................................ 572.3.2 Elección de un paquete de instalación ...................................................................... 582.3.3 Instalación de MySQL con un instalador automático .................................................. 582.3.4 Usar el asistente de instalación de MySQL ............................................................... 582.3.5 Utilización del asistente de configuración .................................................................. 612.3.6 Instalar MySQL partiendo de un archivo Zip Noinstall ................................................ 662.3.7 Descomprimir el fichero de instalación ...................................................................... 662.3.8 Creación de un fichero de opciones .......................................................................... 662.3.9 Seleccionar un tipo de servidor MySQL .................................................................... 682.3.10 Arrancar el servidor la primera vez ......................................................................... 682.3.11 Arrancar MySQL desde la línea de comandos de Windows ...................................... 702.3.12 Arrancar MySQL como un servicio de Windows ....................................................... 702.3.13 Comprobar la instalación de MySQL Installation ...................................................... 732.3.14 Resolución de problemas en la instalación de MySQL bajo Windows ........................ 732.3.15 Aumentar la versión de MySQL en Windows ........................................................... 752.3.16 Comparación entre MySQL en Windows y MySQL en Unix ...................................... 76

    2.4 Instalar MySQL en Linux ..................................................................................................... 78

  • MySQL 5.0 Reference Manual

    iv

    2.5 Instalar MySQL en Mac OS X ............................................................................................. 812.6 Instalar MySQL sobre NetWare ........................................................................................... 832.7 Instalación de MySQL en otros sistemas similares a Unix ..................................................... 852.8 Instalación de MySQL usando una distribución de código fuente ........................................... 88

    2.8.1 Panorámica de la instalación de código fuente .......................................................... 892.8.2 Opciones típicas de configure .............................................................................. 922.8.3 Instalar desde el árbol de código fuente de desarrollo ................................................ 952.8.4 Problemas en la compilación de MySQL ................................................................... 982.8.5 Notas sobre MIT-pthreads ...................................................................................... 1012.8.6 Instalar MySQL desde el código fuente en Windows ................................................ 1022.8.7 Compilar los clientes de MySQL en Windows .......................................................... 106

    2.9 Puesta en marcha y comprobación después de la instalación ............................................. 1062.9.1 Pasos a seguir después de la instalación en Windows ............................................. 1072.9.2 Pasos a seguir después de la instalación en Unix .................................................... 1082.9.3 Hacer seguras las cuentas iniciales de MySQL ........................................................ 119

    2.10 Aumentar la versión de MySQL ....................................................................................... 1222.10.1 Aumentar la versión de 4.1 a 5.0 .......................................................................... 1232.10.2 Aumentar la versión de las tablas de privilegios ..................................................... 1262.10.3 Copiar bases de datos MySQL a otra máquina ...................................................... 127

    2.11 Bajar la versión de MySQL .............................................................................................. 1282.11.1 Volver a la versión 4.1 ......................................................................................... 129

    2.12 Notas específicas sobre sistemas operativos .................................................................... 1302.12.1 Notas sobre Linux ................................................................................................ 1302.12.2 Notas sobre Mac OS X ........................................................................................ 1372.12.3 Notas sobre Solaris .............................................................................................. 1382.12.4 Notas sobre BSD ................................................................................................. 1422.12.5 Notas sobre otros Unix ......................................................................................... 1452.12.6 Notas sobre OS/2 ................................................................................................ 161

    2.13 Notas sobre la instalación de Perl ................................................................................... 1612.13.1 Instalación de Perl en Unix ................................................................................... 1622.13.2 Instalar ActiveState Perl en Windows .................................................................... 1632.13.3 Problemas en la utilización de la interfaz Perl DBI/DBD .......................................... 163

    3 Curso (tutorial) de MySQL ........................................................................................................... 1673.1 Conectarse al y desconectarse del servidor ....................................................................... 1673.2 Entrar consultas ................................................................................................................ 1683.3 Crear y utilizar una base de datos ..................................................................................... 171

    3.3.1 Crear y seleccionar una base de datos ................................................................... 1733.3.2 Crear una tabla ...................................................................................................... 1733.3.3 Cargar datos en una tabla ...................................................................................... 1753.3.4 Extraer información de una tabla ............................................................................ 176

    3.4 Obtener información sobre bases de datos y tablas ............................................................ 1903.5 Usar mysql en modo batch .............................................................................................. 1913.6 Ejemplos de consultas comunes ........................................................................................ 192

    3.6.1 El valor máximo de una columna ............................................................................ 1933.6.2 El registro que tiene el valor máximo de determinada columna ................................. 1933.6.3 Máximo de columna por grupo ............................................................................... 1933.6.4 Los registros de un grupo que tienen el máximo valor en alguna columna ................. 1943.6.5 Utilización de variables de usuario .......................................................................... 1943.6.6 Usar claves foráneas (foreign keys) ........................................................................ 1943.6.7 Buscar usando dos claves ...................................................................................... 1963.6.8 Calcular visitas diarias ............................................................................................ 1963.6.9 Utilización de AUTO_INCREMENT ............................................................................ 197

    3.7 Consultas del proyecto Mellizos (Twin) .............................................................................. 1983.7.1 Encontrar todos los mellizos no repartidos .............................................................. 199

  • MySQL 5.0 Reference Manual

    v

    3.7.2 Mostrar una tabla de estado de mellizos ................................................................. 2013.8 Usar MySQL con Apache .................................................................................................. 201

    4 Usar los programas MySQL ......................................................................................................... 2034.1 Panorámica de programas MySQL .................................................................................... 2034.2 Invocar programas MySQL ................................................................................................ 2044.3 Especificar opciones de programa ..................................................................................... 205

    4.3.1 Usar opciones en la línea de comandos .................................................................. 2054.3.2 Usar ficheros de opciones ...................................................................................... 2074.3.3 Usar variables de entorno para especificar opciones ................................................ 2124.3.4 Utilización de opciones para establecer variables de programa ................................. 212

    5 Administración de bases de datos ................................................................................................ 2155.1 El servidor MySQL y scripts de arranque del servidor ......................................................... 216

    5.1.1 Panorámica de los programas scripts y las utilidades del lado del servidor (server-side) ............................................................................................................................... 2165.1.2 El servidor extendido de MySQL mysqld-max ........................................................ 2175.1.3 El script de arranque del servidor mysqld_safe ..................................................... 2205.1.4 El script mysql.server para el arranque del servidor ............................................ 2235.1.5 El programa mysqld_multi para gestionar múltiples servidores MySQL .................. 224

    5.2 El gestor de instancias de MySQL ..................................................................................... 2275.2.1 Arrancar el servidor MySQL con el gestor de instancias MySQL ............................... 2285.2.2 Conexión al gestor de instancias de MySQL y creación de cuentas de usuario ........... 2285.2.3 Opciones de los comandos del gestor de instancias MySQL ..................................... 2295.2.4 Ficheros de configuración del gestor de instancias de MySQL .................................. 2305.2.5 Los comandos que reconoce el gestor de instancias de MySQL ............................... 231

    5.3 Configuración del servidor MySQL ..................................................................................... 2335.3.1 Opciones del comando mysqld .............................................................................. 2335.3.2 El modo SQL del servidor ...................................................................................... 2445.3.3 Variables de sistema del servidor ........................................................................... 2495.3.4 Variables de estado del servidor ............................................................................. 280

    5.4 El proceso de cierre del servidor MySQL ........................................................................... 2895.5 Cuestiones de seguridad general ...................................................................................... 291

    5.5.1 Guía de seguridad general ..................................................................................... 2915.5.2 Hacer que MySQL sea seguro contra ataques ......................................................... 2945.5.3 Opciones de arranque para mysqld relacionadas con la seguridad .......................... 2965.5.4 Cuestiones relacionadas con la seguridad y LOAD DATA LOCAL ............................. 297

    5.6 El sistema de privilegios de acceso de MySQL .................................................................. 2985.6.1 Qué hace el sistema de privilegios ......................................................................... 2985.6.2 Cómo funciona el sistema de privilegios .................................................................. 2985.6.3 Privilegios de los que provee MySQL ...................................................................... 3035.6.4 Conectarse al servidor MySQL ............................................................................... 3065.6.5 Control de acceso, nivel 1: Comprobación de la conexión ........................................ 3075.6.6 Control de acceso, nivel 2: comprobación de solicitudes .......................................... 3115.6.7 Cuándo tienen efecto los camios de privilegios ........................................................ 3145.6.8 Causas de errores Access denied ...................................................................... 3145.6.9 Hashing de contraseñas en MySQL 4.1 .................................................................. 319

    5.7 Gestión de la cuenta de usuario MySQL ............................................................................ 3245.7.1 Nombres de usuario y contraseñas de MySQL ........................................................ 3245.7.2 Añadir nuevas cuentas de usuario a MySQL ........................................................... 3255.7.3 Eliminar cuentas de usuario de MySQL ................................................................... 3285.7.4 Limitar recursos de cuentas .................................................................................... 3285.7.5 Asignar contraseñas a cuentas ............................................................................... 3305.7.6 Guardar una contraseña de forma segura ............................................................... 3315.7.7 Usar conexiones seguras ....................................................................................... 332

    5.8 Prevención de desastres y recuperaciones ........................................................................ 340

  • MySQL 5.0 Reference Manual

    vi

    5.8.1 Copias de seguridad de bases de datos ................................................................. 3405.8.2 Ejemplo de estrategia de copias de seguridad y recuperación .................................. 3425.8.3 Mantenimiento de tablas y recuperación de un fallo catastrófico (crash) .................... 3455.8.4 Organizar un programa de mantenimiento de tablas ................................................ 3575.8.5 Obtener información acerca de una tabla ................................................................ 358

    5.9 Uso internacional y localización de MySQL ........................................................................ 3645.9.1 El conjunto de caracteres utilizado para datos y ordenación ..................................... 3645.9.2 Escoger el idioma de los mensajes de error ............................................................ 3655.9.3 Añadir un conjunto de caracteres nuevo .................................................................. 3665.9.4 Los vectores de definición de caracteres ................................................................. 3685.9.5 Soporte para colación de cadenas de caracteres ..................................................... 3685.9.6 Soporte de caracteres multi-byte ............................................................................. 3685.9.7 Problemas con conjuntos de caracteres .................................................................. 3695.9.8 Soporte de zonas horarias en el servidor MySQL .................................................... 369

    5.10 Los ficheros de registro (log) de MySQL .......................................................................... 3715.10.1 El registro de errroes (Error Log) .......................................................................... 3715.10.2 El registro general de consultas ............................................................................ 3715.10.3 El registro binario (Binary Log) .............................................................................. 3725.10.4 El registro de consultas lentas (Slow Query Log) ................................................... 3765.10.5 Mantenimiento de ficheros de registro (log) ........................................................... 376

    5.11 Ejecutar más de un servidor MySQL en la misma máquina ............................................... 3775.11.1 Ejecutar varios servidores en Windows ................................................................. 3795.11.2 Ejecutar varios servidores en Unix ........................................................................ 3825.11.3 Utilización de programas cliente en un entorno de múltiples servidores .................... 383

    5.12 La caché de consultas de MySQL ................................................................................... 3845.12.1 Cómo opera la caché de consultas ....................................................................... 3855.12.2 Opciones de SELECT para la caché de consultas .................................................. 3865.12.3 Configuración de la caché de consultas ................................................................ 3875.12.4 Estado y mantenimiento de la caché de consultas ................................................. 388

    6 Replicación en MySQL ................................................................................................................ 3916.1 Introducción a la replicación .............................................................................................. 3916.2 Panorámica de la implementación de la replicación ............................................................ 3926.3 Detalles de la implementación de la replicación .................................................................. 393

    6.3.1 Estados de los subprocesos del maestro de replicación ........................................... 3946.3.2 Estados de proceso E/S (I/O) del esclavo de replicación .......................................... 3946.3.3 Estados del flujo SQL de un esclavo de replicación ................................................. 3956.3.4 Ficheros de replicación, retardados y de estado ...................................................... 396

    6.4 Cómo montar la replicación ............................................................................................... 3976.5 Compatibilidad entre versiones de MySQL con respecto a la replicación .............................. 4026.6 Aumentar la versión de la replicación ................................................................................ 402

    6.6.1 Aumentar la versión de la replicación a 5.0 ............................................................. 4026.7 Características de la replicación y problemas conocidos ..................................................... 4026.8 Opciones de arranque de replicación ................................................................................. 4066.9 Preguntas y respuestas sobre replicación .......................................................................... 4156.10 Resolución de problemas de replicación .......................................................................... 4206.11 Reportar bugs de replicación ........................................................................................... 421

    7 Optimización de MySQL .............................................................................................................. 4237.1 Panorámica sobre optimización ......................................................................................... 424

    7.1.1 Limitaciones y soluciones de compromiso en el diseño de MySQL ............................ 4247.1.2 Diseñar aplicaciones pensando en la portabilidad .................................................... 4257.1.3 Para qué hemos usado MySQL .............................................................................. 4267.1.4 El paquete de pruebas de rendimiento (benchmarks) de MySQL .............................. 4277.1.5 Usar pruebas de rendimiento (benchmarks) propios ................................................. 428

    7.2 Optimizar sentencias SELECT y otras consultas ................................................................. 428

  • MySQL 5.0 Reference Manual

    vii

    7.2.1 Sintaxis de EXPLAIN (Obtener información acerca de un SELECT) ........................... 4297.2.2 Estimar el renidimiento de una consulta .................................................................. 4377.2.3 Velocidad de las consultas SELECT ........................................................................ 4377.2.4 Optimización de las cláusulas WHERE por parte de MySQL ....................................... 4387.2.5 Optimización de rango ........................................................................................... 4397.2.6 Index Merge Optimization ....................................................................................... 4437.2.7 Cómo optimiza MySQL IS NULL ........................................................................... 4457.2.8 Cómo MySQL optimiza DISTINCT .......................................................................... 4467.2.9 Cómo optimiza MySQL los LEFT JOIN y RIGHT JOIN .......................................... 4477.2.10 Cómo optimiza MySQL ORDER BY ....................................................................... 4487.2.11 Cómo optimiza MySQL los GROUP BY .................................................................. 4497.2.12 Cómo optimiza MySQL las cláusulas LIMIT .......................................................... 4517.2.13 Cómo evitar lecturas completas de tablas .............................................................. 4527.2.14 Velocidad de la sentencia INSERT ........................................................................ 4527.2.15 Velocidad de las sentencias UPDATE .................................................................... 4547.2.16 Velocidad de sentencias DELETE .......................................................................... 4547.2.17 Otros consejos sobre optimización ........................................................................ 454

    7.3 Temas relacionados con el bloqueo ................................................................................... 4577.3.1 Métodos de bloqueo ............................................................................................... 4577.3.2 Cuestiones relacionadas con el bloqueo (locking) de tablas ...................................... 459

    7.4 Optimizar la estructura de una base de datos .................................................................... 4607.4.1 Elecciones de diseño ............................................................................................. 4607.4.2 Haga sus datos lo más pequeños posibles .............................................................. 4617.4.3 Índices de columna ................................................................................................ 4627.4.4 Índices de múltiples columnas ................................................................................ 4637.4.5 Cómo utiliza MySQL los índices ............................................................................. 4637.4.6 La caché de claves de MyISAM .............................................................................. 4667.4.7 Cómo cuenta MySQL las tablas abiertas ................................................................. 4707.4.8 Cómo abre y cierra tablas MySQL .......................................................................... 4717.4.9 Desventajas de crear muchas tablas en la misma base de datos .............................. 472

    7.5 Optimización del servidor MySQL ...................................................................................... 4727.5.1 Factores de sistema y afinamientos de parámetros de arranque ............................... 4727.5.2 Afinar parámetros del servidor ................................................................................ 4727.5.3 Vigilar el rendimiento del optimizador de consultas .................................................. 4767.5.4 Efectos de la compilación y del enlace en la velocidad de MySQL ............................ 4767.5.5 Cómo utiliza MySQL la memoria ............................................................................. 4777.5.6 Cómo usa MySQL las DNS .................................................................................... 479

    7.6 Cuestiones relacionadas con el disco ................................................................................ 4797.6.1 Utilizar enlaces simbólicos ...................................................................................... 480

    8 Programas cliente y utilidades MySQL ......................................................................................... 4858.1 Panorámica de scripts y utilidades del lado del cliente ........................................................ 4858.2 myisampack, el generador de tablas comprimidas de sólo lectura de MySQL ...................... 4878.3 La herramienta intérprete de comandos mysql .................................................................. 493

    8.3.1 Comandos mysql .................................................................................................. 5008.3.2 Ejecutar sentencias SQL desde un fichero de texto ................................................. 5048.3.3 Sugerencias acerca de mysql ................................................................................ 504

    8.4 Administrar un servidor MySQL con mysqladmin .............................................................. 5068.5 La utilidad mysqlbinlog para registros binarios ............................................................... 5118.6 El programa mysqlcheck para mantener y reparar tablas .................................................. 5158.7 El programa de copia de seguridad de base de datos mysqldump ...................................... 5188.8 El programa de copias de seguridad de base de datos mysqlhotcopy ............................... 5258.9 El programa para importar datos mysqlimport ................................................................ 5278.10 Mostrar bases de datos, tablas y columnas con mysqlshow ............................................. 5298.11 perror, explicación de códigos de error ......................................................................... 531

  • MySQL 5.0 Reference Manual

    viii

    8.12 La utilidad replace de cambio de cadenas de caracteres ................................................ 5319 Estructura de lenguaje ................................................................................................................. 533

    9.1 Valores literales ................................................................................................................ 5339.1.1 Cadenas de caracteres .......................................................................................... 5339.1.2 Números ................................................................................................................ 5359.1.3 Valores hexadecimales ........................................................................................... 5369.1.4 Valores booleanos ................................................................................................. 5369.1.5 Valores de bits ....................................................................................................... 5369.1.6 Valores NULL ......................................................................................................... 537

    9.2 Nombres de bases de datos, tablas, índices, columnas y alias ............................................ 5379.2.1 Cualificadores de los identificadores ....................................................................... 5389.2.2 Sensibilidad a mayúsuclas y minúsculas de identificadores ...................................... 539

    9.3 Variables de usuario ......................................................................................................... 5419.4 Variables de sistema ......................................................................................................... 542

    9.4.1 Variables estructuradas de sistema ......................................................................... 5439.5 Sintaxis de comentarios .................................................................................................... 5459.6 Tratamiento de palabras reservadas en MySQL ................................................................. 546

    10 Soporte de conjuntos de caracteres ........................................................................................... 55110.1 Conjuntos de caracteres y colaciones en general ............................................................. 55210.2 Conjuntos de caracteres y colaciones en MySQL ............................................................. 55210.3 Determinar el conjunto de caracteres y la colación por defecto .......................................... 554

    10.3.1 Conjunto de caracteres y colación del servidor ...................................................... 55410.3.2 Conjuntos de caracteres y colaciones de la base de datos ..................................... 55510.3.3 Conjunto de caracteres y colación de tabla ............................................................ 55510.3.4 Conjunto de caracteres y colación de columnas ..................................................... 55610.3.5 Ejemplos de asignación de conjunto de caracteres y colación ................................. 55610.3.6 Conjunto de caracteres y colación de la conexión .................................................. 55710.3.7 Conjunto de caracteres y colación de columnas “carácter” ...................................... 55910.3.8 Usar COLLATE en sentencias SQL ........................................................................ 56010.3.9 Precedencia de la cláusula COLLATE .................................................................... 56110.3.10 Operador BINARY .............................................................................................. 56110.3.11 Casos especiales en los que determinar la colación es complicado ....................... 56110.3.12 A cada colación un conjunto de caracteres correcto ............................................. 56310.3.13 Un ejemplo del efecto de una colación ................................................................ 563

    10.4 Efectos del soporte de conjuntos de caracteres ................................................................ 56310.4.1 Cadenas de caracteres de resultado ..................................................................... 56310.4.2 CONVERT() .......................................................................................................... 56410.4.3 CAST() ................................................................................................................ 56410.4.4 Sentencias SHOW .................................................................................................. 565

    10.5 Soporte Unicode ............................................................................................................. 56610.6 UTF8 para metadatos ..................................................................................................... 56710.7 Compatibilidad con otros SGBDs (Sistemas gestores de bases de datos) .......................... 56810.8 Formato del nuevo fichero de conjunto de caracateres ..................................................... 56910.9 Conjunto de caracteres nacional ...................................................................................... 56910.10 Conjuntos de caracteres y colaciones que soporta MySQL .............................................. 569

    10.10.1 Conjuntos de caracteres Unicode ........................................................................ 57010.10.2 Conjuntos de caracteres de Europa occidental ..................................................... 57210.10.3 Conjuntos de caracteres de Europa central .......................................................... 57310.10.4 Conjuntos de caracteres del sur de Europa y de Oriente Medio ............................. 57410.10.5 Conjuntos de caracteres bálticos ......................................................................... 57510.10.6 Conjuntos de caracteres cirílicos ......................................................................... 57510.10.7 Conjuntos de caracteres asiáticos ....................................................................... 576

    11 Tipos de columna ...................................................................................................................... 57911.1 Panorámica de tipos de columna ..................................................................................... 580

  • MySQL 5.0 Reference Manual

    ix

    11.1.1 Panorámica de tipos numéricos ............................................................................ 58011.1.2 Panorámica de tipos de fechas y hora .................................................................. 58311.1.3 Panorámica de tipos de cadenas de caracteres ..................................................... 584

    11.2 Tipos numéricos .............................................................................................................. 58811.3 Tipos de fecha y hora ..................................................................................................... 590

    11.3.1 Los tipos de datos DATETIME, DATE y TIMESTAMP ............................................... 59211.3.2 El tipo TIME ......................................................................................................... 59611.3.3 El tipo de datos YEAR .......................................................................................... 59711.3.4 Efecto 2000 (Y2K) y tipos de datos ....................................................................... 598

    11.4 Tipos de cadenas de caracteres ...................................................................................... 59811.4.1 Los tipos CHAR y VARCHAR ................................................................................... 59811.4.2 Los tipos BINARY y VARBINARY ........................................................................... 59911.4.3 Los tipos BLOB y TEXT ......................................................................................... 60011.4.4 El tipo de columna ENUM ...................................................................................... 60111.4.5 El tipo SET ........................................................................................................... 603

    11.5 Requisitos de almacenamiento según el tipo de columna .................................................. 60411.6 Escoger el tipo de columna correcto ................................................................................ 60611.7 Usar tipos de columnas de otros motores de bases de datos ............................................ 607

    12 Funciones y operadores ............................................................................................................. 60912.1 Operadores ..................................................................................................................... 610

    12.1.1 Precedencias de los operadores ........................................................................... 61012.1.2 Paréntesis ............................................................................................................ 61012.1.3 Funciones y operadores de comparación .............................................................. 61012.1.4 Operadores lógicos .............................................................................................. 616

    12.2 Funciones de control de flujo ........................................................................................... 61712.3 Funciones para cadenas de caracteres ............................................................................ 619

    12.3.1 Funciones de comparación de cadenas de caracteres ............................................ 63112.4 Funciones numéricas ...................................................................................................... 633

    12.4.1 Operadores aritméticos ......................................................................................... 63312.4.2 Funciones matemáticas ........................................................................................ 635

    12.5 Funciones de fecha y hora .............................................................................................. 64212.6 Qué calendario utiliza MySQL ......................................................................................... 65912.7 Funciones de búsqueda de texto completo (Full-Text) ....................................................... 660

    12.7.1 Búsquedas booleanas de texto completo (Full-Text) ............................................... 66312.7.2 Búsquedas de texto completo (Full-Text) con expansión de consulta ....................... 66512.7.3 Limitaciones de las búsquedas de texto completo (Full-Text) .................................. 66612.7.4 Afinar búsquedas de texto completo (Full-Text) con MySQL ................................... 66612.7.5 Cosas por hacer en búsquedas de texto completo (Full-Text) ................................. 668

    12.8 Funciones y operadores de cast ...................................................................................... 66812.9 Otras funciones ............................................................................................................... 671

    12.9.1 Funciones bit ....................................................................................................... 67112.9.2 Funciones de cifrado ............................................................................................ 67212.9.3 Funciones de información ..................................................................................... 67612.9.4 Funciones varias .................................................................................................. 681

    12.10 Funciones y modificadores para cláusulas GROUP BY .................................................... 68412.10.1 Funciones (de agregación) de GROUP BY ........................................................... 68412.10.2 Modificadores de GROUP BY .............................................................................. 68812.10.3 GROUP BY con campos escondidos .................................................................... 690

    13 Sintaxis de sentencias SQL ....................................................................................................... 69313.1 Sentencias de definición de datos (Data Definition Statements) ......................................... 693

    13.1.1 Sintaxis de ALTER DATABASE ............................................................................. 69313.1.2 Sintaxis de ALTER TABLE ................................................................................... 69413.1.3 Sintaxis de CREATE DATABASE ........................................................................... 69813.1.4 Sintaxis de CREATE INDEX ................................................................................. 699

  • MySQL 5.0 Reference Manual

    x

    13.1.5 Sintaxis de CREATE TABLE ................................................................................. 70013.1.6 Sintaxis de DROP DATABASE ............................................................................... 71113.1.7 Sintaxis de DROP INDEX ..................................................................................... 71213.1.8 Sintaxis de DROP TABLE ..................................................................................... 71213.1.9 Sintaxis de RENAME TABLE ................................................................................. 712

    13.2 Sentencias de manipulación de datos (Data Manipulation Statements) ............................... 71313.2.1 Sintaxis de DELETE .............................................................................................. 71313.2.2 Sintaxis de DO ...................................................................................................... 71613.2.3 Sintaxis de HANDLER ............................................................................................ 71613.2.4 Sintaxis de INSERT .............................................................................................. 71713.2.5 Sintaxis de LOAD DATA INFILE ......................................................................... 72413.2.6 Sintaxis de REPLACE ............................................................................................ 73213.2.7 Sintaxis de SELECT .............................................................................................. 73313.2.8 Sintaxis de subconsultas ...................................................................................... 74213.2.9 Sintaxis de TRUNCATE .......................................................................................... 75213.2.10 Sintaxis de UPDATE ............................................................................................ 752

    13.3 Sentencias útiles de MySQL ............................................................................................ 75413.3.1 Sintaxis de DESCRIBE (Información acerca de las columnas) ................................. 75413.3.2 Sintaxis de USE .................................................................................................... 755

    13.4 Comandos transaccionales y de bloqueo de MySQL ......................................................... 75513.4.1 Sintaxis de START TRANSACTION, COMMIT y ROLLBACK ...................................... 75513.4.2 Sentencias que no se pueden deshacer ................................................................ 75713.4.3 Sentencias que causan una ejecución (commit) implícita ........................................ 75713.4.4 Sintaxis de SAVEPOINT y ROLLBACK TO SAVEPOINT .......................................... 75713.4.5 Sintaxis de LOCK TABLES y UNLOCK TABLES ..................................................... 75713.4.6 Sintaxis de SET TRANSACTION ........................................................................... 760

    13.5 Sentencias de administración de base de datos ............................................................... 76113.5.1 Sentencias para la gestión de cuentas .................................................................. 76113.5.2 Sentencias para el mantenimiento de tablas .......................................................... 77113.5.3 Sintaxis de SET .................................................................................................... 77613.5.4 Sintaxis de SHOW .................................................................................................. 78013.5.5 Otras sentencias para la administración ................................................................ 799

    13.6 Sentencias de replicación ................................................................................................ 80313.6.1 Sentencias SQL para el control de servidores maestros ......................................... 80313.6.2 Sentencias SQL para el control de servidores esclavos .......................................... 805

    13.7 Sintaxis SQL de sentencias preparadas ........................................................................... 81414 Motores de almacenamiento de MySQL y tipos de tablas ............................................................ 817

    14.1 El motor de almacenamiento MyISAM .............................................................................. 81914.1.1 Opciones de arranque de MyISAM ........................................................................ 82114.1.2 Cuánto espacio necesitan las claves ..................................................................... 82214.1.3 Formatos de almacenamiento de tablas MyISAM ................................................... 82314.1.4 Problemas en tablas MyISAM ............................................................................... 825

    14.2 El motor de almacenamiento MERGE ................................................................................ 82714.2.1 Problemas con tablas MERGE ................................................................................ 829

    14.3 El motor de almacenamiento MEMORY (HEAP) ................................................................... 83014.4 El motor de almacenamiento BDB (BerkeleyDB) ............................................................. 831

    14.4.1 Sistemas operativos que soporta BDB ................................................................... 83214.4.2 Instalación de BDB ............................................................................................... 83314.4.3 Opciones de arranque de BDB .............................................................................. 83314.4.4 Características de las tablas BDB .......................................................................... 83414.4.5 Temas pendientes de arreglo para BDB ................................................................. 83614.4.6 Limitaciones en las tablas BDB ............................................................................. 83614.4.7 Errores que pueden darse en el uso de tablas BDB ................................................ 837

    14.5 El motor de almacenamiento EXAMPLE ............................................................................ 837

  • MySQL 5.0 Reference Manual

    xi

    14.6 El motor de almacenamiento FEDERATED ........................................................................ 83714.6.1 Instalación del motor de almacenamiento FEDERATED ........................................... 83814.6.2 Descripción del motor de almacenamiento FEDERATED .......................................... 83814.6.3 Cómo usar las tablas FEDERATED ........................................................................ 83814.6.4 Limitaciones del motor de almacenamiento FEDERATED ......................................... 839

    14.7 El motor de almacenamiento ARCHIVE ............................................................................ 84014.8 El motor de almacenamiento CSV .................................................................................... 840

    15 El motor de almacenamiento InnoDB ......................................................................................... 84315.1 Panorámica de InnoDB .................................................................................................. 84415.2 Información de contacto de InnoDB ................................................................................ 84415.3 Configuración de InnoDB ................................................................................................ 84415.4 Opciones de arranque de InnoDB ................................................................................... 84915.5 Crear el espacio de tablas InnoDB ................................................................................. 856

    15.5.1 Resolución de problemas en la inicialización de InnoDB ........................................ 85715.6 Crear tablas InnoDB ....................................................................................................... 857

    15.6.1 Cómo utilizar transacciones en InnoDB con distintas APIs ..................................... 85815.6.2 Pasar tablas MyISAM a InnoDB ........................................................................... 85815.6.3 Cómo funciona una columna AUTO_INCREMENT en InnoDB .................................. 85915.6.4 Restricciones (constraints) FOREIGN KEY ............................................................. 86015.6.5 InnoDB y replicación MySQL ............................................................................... 86415.6.6 Usar un espacio de tablas para cada tabla ............................................................ 865

    15.7 Añadir y suprimir registros y ficheros de datos InnoDB ..................................................... 86715.8 Hacer una copia de seguridad y recuperar una base de datos InnoDB .............................. 868

    15.8.1 Forzar una recuperación ....................................................................................... 86915.8.2 Marcadores .......................................................................................................... 870

    15.9 Trasladar una base de datos InnoDB a otra máquina ....................................................... 87115.10 Bloqueo y modelo de transacciones de InnoDB ............................................................. 871

    15.10.1 Modos de bloqueo InnoDB ................................................................................. 87115.10.2 InnoDB y AUTOCOMMIT ...................................................................................... 87215.10.3 InnoDB y TRANSACTION ISOLATION LEVEL ................................................... 87315.10.4 Lecturas consistentes que no bloquean ............................................................... 87415.10.5 Bloquear lecturas SELECT ... FOR UPDATE y SELECT ... LOCK IN SHAREMODE .............................................................................................................................. 87515.10.6 Bloqueo de la próxima clave (Next-Key Locking): evitar el problema fantasma ........ 87615.10.7 Un ejemplo de lectura consistente en InnoDB ..................................................... 87615.10.8 Establecimiento de bloqueos con diferentes sentencias SQL en InnoDB ............... 87715.10.9 ¿Cuándo ejecuta o deshace implicitamente MySQL una transacción? ................... 87815.10.10 Detección de interbloqueos (deadlocks) y cancelación de transacciones(rollbacks) ....................................................................................................................... 87915.10.11 Cómo tratar con interbloqueos .......................................................................... 879

    15.11 Consejos de afinamiento del rendimiento de InnoDB ...................................................... 88015.11.1 SHOW INNODB STATUS y los monitores InnoDB ................................................ 882

    15.12 Implementación de multiversión ..................................................................................... 88615.13 Estructuras de tabla y de índice .................................................................................... 887

    15.13.1 Estructura física de un índice .............................................................................. 88815.13.2 Búfer de inserciones ........................................................................................... 88815.13.3 Indices hash adaptables ..................................................................................... 88915.13.4 Estructura física de los registros ......................................................................... 889

    15.14 Gestión de espacio de ficheros y de E/S de disco (Disk I/O) ............................................ 89015.14.1 E/S de disco (Disk I/O) ....................................................................................... 89015.14.2 Usar dispositivos en bruto (raw devices) para espacios de tablas .......................... 89015.14.3 Gestión del espacio de ficheros .......................................................................... 89115.14.4 Desfragmentar una tabla .................................................................................... 892

    15.15 Tratamiento de errores de InnoDB ................................................................................. 892

  • MySQL 5.0 Reference Manual

    xii

    15.15.1 Códigos de error de InnoDB .............................................................................. 89315.15.2 Códigos de error del sistema operativo ................................................................ 893

    15.16 Restricciones de las tablas InnoDB ............................................................................... 89815.17 Resolver problemas relacionados con InnoDB ............................................................... 900

    15.17.1 Resolver problemas de las operaciones del diccionario de datos de InnoDB .......... 90116 MySQL Cluster .......................................................................................................................... 903

    16.1 Panorámica de MySQL Cluster ........................................................................................ 90416.2 Conceptos básicos de Basic MySQL Cluster .................................................................... 90616.3 Cómo configurar varios ordenadores ................................................................................ 907

    16.3.1 Hardware, software y redes .................................................................................. 90916.3.2 Instalación ............................................................................................................ 91016.3.3 Configuración ....................................................................................................... 91116.3.4 Arranque inicial .................................................................................................... 91316.3.5 Cargar datos de ejemplo y realizar consultas ......................................................... 91416.3.6 Apagado y encendido seguros .............................................................................. 917

    16.4 Configuración de MySQL Cluster ..................................................................................... 91816.4.1 Generar MySQL Cluster desde el código fuente .................................................... 91816.4.2 Instalar el software ............................................................................................... 91916.4.3 Rápido montaje de prueba de MySQL Cluster ....................................................... 91916.4.4 Fichero de configuración ....................................................................................... 921

    16.5 Gestión de procesos en MySQL Cluster ........................................................................... 94716.5.1 El uso del proceso del servidor MySQL para MySQL Cluster .................................. 94716.5.2 ndbd, el proceso del nodo de motor de almacenamiento ........................................ 94716.5.3 El proceso del servidor de administración ndb_mgmd ............................................. 94916.5.4 El proceso de cliente de administración ndb_mgm .................................................. 94916.5.5 Opciones de comando para procesos de MySQL Cluster ....................................... 950

    16.6 Administración de MySQL Cluster .................................................................................... 95216.6.1 Comandos del cliente de administración ................................................................ 95316.6.2 Informes de eventos generados por MySQL Cluster ............................................... 95416.6.3 Modo de usuario único ......................................................................................... 95916.6.4 Copias de seguridad On-line para MySQL Cluster ................................................. 960

    16.7 Usar interconexiones de alta velocidad con MySQL Cluster .............................................. 96316.7.1 Configurar MySQL Cluster para que utilice Sockets SCI ......................................... 96316.7.2 Entender el impacto de interconexiones de nodos .................................................. 967

    16.8 Limitaciones conocidas de MySQL Cluster ....................................................................... 96816.9 Mapa de desarrollo de MySQL Cluster ............................................................................. 971

    16.9.1 Cambios de MySQL Cluster en MySQL 5.0 ........................................................... 97116.9.2 Mapa de desarrollo de MySQL 5.1 para MySQL Cluster ......................................... 972

    16.10 Preguntas frecuentes sobre MySQL Cluster ................................................................... 97316.11 Glosario de MySQL Cluster ........................................................................................... 979

    17 Introducción a MaxDB ................................................................................................................ 98517.1 Historia de MaxDB .......................................................................................................... 98517.2 Licenciamiento y soporte ................................................................................................. 98517.3 Enlaces relacionados con MaxDB .................................................................................... 98517.4 Conceptos básicos de MaxDB ......................................................................................... 98617.5 Diferencias de prestaciones entre MaxDB y MySQL ......................................................... 98617.6 Características de interoperabilidad entre MaxDB y MySQL .............................................. 98617.7 Palabras reservadas de MaxDB ....................................................................................... 987

    18 Extensiones espaciales de MySQL ............................................................................................. 99118.1 Introducción .................................................................................................................... 99218.2 El modelo geométrico OpenGIS ....................................................................................... 992

    18.2.1 La jerarquía de las clases geométricas .................................................................. 99318.2.2 La clase Geometry .............................................................................................. 99418.2.3 La clase Point .................................................................................................... 995

  • MySQL 5.0 Reference Manual

    xiii

    18.2.4 La clase Curve .................................................................................................... 99518.2.5 La clase LineString .......................................................................................... 99618.2.6 La clase Surface ................................................................................................ 99618.2.7 La clase Polygon ................................................................................................ 99618.2.8 La clase GeometryCollection .......................................................................... 99718.2.9 La clase MultiPoint .......................................................................................... 99718.2.10 La clase MultiCurve ........................................................................................ 99718.2.11 La clase MultiLineString .............................................................................. 99818.2.12 La clase MultiSurface .................................................................................... 99818.2.13 La clase MultiPolygon .................................................................................... 998

    18.3 Formatos de datos espaciales soportados ........................................................................ 99918.3.1 Formato Well-Known Text (WKT) .......................................................................... 99918.3.2 Formato Well-Known Binary (WKB) ..................................................................... 1000

    18.4 Crear una base de datos MySQL con capacidades espaciales ........................................ 100018.4.1 Tipos de datos espaciales de MySQL .................................................................. 100018.4.2 Crear valores espaciales .................................................................................... 100118.4.3 Crear columnas espaciales ................................................................................. 100518.4.4 Poblar columnas espaciales ................................................................................ 100518.4.5 Extraer datos espaciales ..................................................................................... 1006

    18.5 Analizar información espacial ......................................................................................... 100718.5.1 Funciones de conversión de formato geométrico .................................................. 100718.5.2 Funciones Geometry ......................................................................................... 100818.5.3 Funciones que crean nuevas geometrías a partir de unas existentes ..................... 101518.5.4 Funciones para probar relaciones espaciales entre objetos geométricos ................ 101618.5.5 Relaciones entre rectángulos MBR (Minimal Bounding Rectangles) ....................... 101618.5.6 Funciones que prueban relaciones espaciales entre geometrías ............................ 1017

    18.6 Optimización del análisis espacial .................................................................................. 101918.6.1 Crear índices espaciales ..................................................................................... 101918.6.2 Usar un índice espacial ...................................................................................... 1020

    18.7 Conformidad y compatibilidad de MySQL ....................................................................... 102218.7.1 Características GIS que todavía no han sido implementadas ................................ 1022

    19 Procedimientos almacenados y funciones ................................................................................. 102319.1 Procedimientos almacenados y las tablas de permisos ................................................... 102419.2 Sintaxis de procedimientos almacenados ....................................................................... 1024

    19.2.1 CREATE PROCEDURE y CREATE FUNCTION ....................................................... 102519.2.2 ALTER PROCEDURE y ALTER FUNCTION ........................................................... 102719.2.3 DROP PROCEDURE y DROP FUNCTION ............................................................... 102819.2.4 SHOW CREATE PROCEDURE y SHOW CREATE FUNCTION ................................... 102819.2.5 SHOW PROCEDURE STATUS y SHOW FUNCTION STATUS ................................... 102819.2.6 La sentencia CALL ............................................................................................. 102919.2.7 Sentencia compuesta BEGIN ... END .............................................................. 102919.2.8 Sentencia DECLARE ............................................................................................ 102919.2.9 Variables en procedimientos almacenados .......................................................... 102919.2.10 Conditions and Handlers ................................................................................... 103019.2.11 Cursores .......................................................................................................... 103219.2.12 Constructores de control de flujo ....................................................................... 1033

    19.3 Registro binario de procedimientos almacenados y disparadores ..................................... 103520 Disparadores (triggers) ............................................................................................................. 1041

    20.1 Sintaxis de CREATE TRIGGER ...................................................................................... 104120.2 Sintaxis de DROP TRIGGER .......................................................................................... 104320.3 Utilización de disparadores ............................................................................................ 1044

    21 Vistas (Views) .......................................................................................................................... 104721.1 Sintaxis de ALTER VIEW .............................................................................................. 104721.2 Sintaxis de CREATE VIEW ............................................................................................ 1047

  • MySQL 5.0 Reference Manual

    xiv

    21.3 Sintaxis de DROP VIEW ................................................................................................ 105321.4 Sintaxis de SHOW CREATE VIEW .................................................................................. 1053

    22 La base de datos de información INFORMATION_SCHEMA ......................................................... 105522.1 Las tablas INFORMATION_SCHEMA ................................................................................ 1057

    22.1.1 La tabla INFORMATION_SCHEMA SCHEMATA ...................................................... 105722.1.2 La tabla INFORMATION_SCHEMA TABLES .......................................................... 105822.1.3 La tabla INFORMATION_SCHEMA COLUMNS ........................................................ 105922.1.4 La tabla INFORMATION_SCHEMA STATISTICS .................................................. 106022.1.5 La tabla INFORMATION_SCHEMA USER_PRIVILEGES ......................................... 106022.1.6 La tabla INFORMATION_SCHEMA SCHEMA_PRIVILEGES ..................................... 106122.1.7 La tabla INFORMATION_SCHEMA TABLE_PRIVILEGES ....................................... 106122.1.8 La tabla INFORMATION_SCHEMA COLUMN_PRIVILEGES ..................................... 106222.1.9 La tabla INFORMATION_SCHEMA CHARACTER_SETS ........................................... 106222.1.10 La tabla INFORMATION_SCHEMA COLLATIONS ................................................. 106322.1.11 La tabla INFORMATION_SCHEMACOLLATION_CHARACTER_SET_APPLICABILITY .......................................................... 106322.1.12 La tabla INFORMATION_SCHEMA TABLE_CONSTRAINTS ................................... 106322.1.13 La tabla INFORMATION_SCHEMA KEY_COLUMN_USAGE ..................................... 106422.1.14 La tabla INFORMATION_SCHEMA ROUTINES .................................................... 106522.1.15 La tabla INFORMATION_SCHEMA VIEWS .......................................................... 106622.1.16 La tabla INFORMATION_SCHEMA TRIGGERS .................................................... 106622.1.17 Otras tablas INFORMATION_SCHEMA ................................................................. 1068

    22.2 Extensiones a las sentencias SHOW ................................................................................ 106823 Matemáticas de precisión ......................................................................................................... 1071

    23.1 Tipos de valores numéricos ........................................................................................... 107223.2 Cambios en el tipo de datos DECIMAL ........................................................................... 107223.3 Manejo de expresiones ................................................................................................. 107423.4 Cómo se redondea ....................................................................................................... 107523.5 Ejemplos de matemáticas de precisión ........................................................................... 1076

    24 APIs de MySQL ....................................................................................................................... 108124.1 Utilidades para el desarrollo de programas MySQL ......................................................... 1081

    24.1.1 msql2mysql — .................................................................................................... 108224.1.2 mysql_config — .................................................................................................. 1082

    24.2 La API C de MySQL ..................................................................................................... 108324.2.1 Tipos de datos de la API C ................................................................................ 108424.2.2 Panorámica de funciones de la API C ................................................................. 108724.2.3 Descripción de funciones de la API C ................................................................. 109124.2.4 Sentencias preparadas de la API C ..................................................................... 113424.2.5 Tipos de datos de sentencias preparadas de la API C .......................................... 113524.2.6 Panorámica de las funciones de sentencias preparadas de la API C ..................... 113824.2.7 Descripciones de funciones de sentencias preparadas de la API C ........................ 114024.2.8 Problemas con sentencias preparadas de la API C .............................................. 116224.2.9 Tratamiento por parte de la API C de la ejecución de múltiples consultas ............... 116324.2.10 Manejo de valores de fecha y hora por parte de la API C .................................... 116324.2.11 Descripción de funciones de la API C para el control de subprocesos .................. 116524.2.12 Descripción de las funciones de la API C del servidor incrustado (embedded) ...... 116624.2.13 Preguntas y problemas comunes en el uso de la API C ...................................... 116724.2.14 Generar programas cliente ................................................................................ 116924.2.15 Cómo hacer un cliente multihilo ........................................................................ 116924.2.16 libmysqld, la biblioteca del servidor MySQL incrustado (embedded) ..................... 1171

    24.3 API PHP de MySQL ...................................................................................................... 117624.3.1 Problemas comunes con MySQL y PHP .............................................................. 1177

    24.4 La API Perl de MySQL .................................................................................................. 117724.5 API C++ de MySQL ...................................................................................................... 1178

  • MySQL 5.0 Reference Manual

    xv

    24.5.1 Borland C++ ....................................................................................................... 117824.6 La API Python de MySQL ............................................................................................. 117824.7 La API Tcl de MySQL ................................................................................................... 117824.8 El visor de MySQL Eiffel ............................................................................................... 1178

    25 Conectores .............................................................................................................................. 117925.1 MySQL Connector/ODBC .............................................................................................. 1180

    25.1.1 Introduction to Connector/ODBC ......................................................................... 118025.1.2 Connector/ODBC Installation ............................................................................... 118425.1.3 Connector/ODBC Configuration ........................................................................... 120525.1.4 Connector/ODBC Examples ................................................................................ 122225.1.5 Connector/ODBC Reference ............................................................................... 124825.1.6 Connector/ODBC Notes and Tips ........................................................................ 125425.1.7 Connector/ODBC Support ................................................................................... 1264

    25.2 MySQL Connector/NET ................................................................................................. 126525.2.1 Connector/NET Versions ..................................................................................... 126625.2.2 Connector/NET Installation .................................................................................. 126625.2.3 Connector/NET Examples ................................................................................... 127225.2.4 Connector/NET Reference .................................................................................. 132325.2.5 Connector/NET Notes and Tips ........................................................................... 143125.2.6 Connector/NET Support ...................................................................................... 1450

    25.3 MySQL Visual Studio Plugin .......................................................................................... 145125.3.1 Installing the MySQL Visual Studio Plugin ............................................................ 145125.3.2 Creating a connection to the MySQL server ......................................................... 145325.3.3 Using the MySQL Visual Studio Plugin ................................................................ 145425.3.4 Visual Studio Plugin Support ............................................................................... 1463

    25.4 MySQL Connector/J ...................................................................................................... 146325.4.1 Connector/J Versions .......................................................................................... 146325.4.2 Connector/J Installation ....................................................................................... 146425.4.3 Connector/J Examples ........................................................................................ 146825.4.4 Connector/J (JDBC) Reference ........................................................................... 146925.4.5 Connector/J Notes and Tips ................................................................................ 149225.4.6 Connector/J Support ........................................................................................... 1511

    25.5 MySQL Connector/MXJ ................................................................................................. 151325.5.1 Introduction to Connector/MXJ ............................................................................ 151325.5.2 Connector/MXJ Installation .................................................................................. 151425.5.3 Connector/MXJ Configuration .............................................................................. 151925.5.4 Connector/MXJ Reference .................................................................................. 152225.5.5 Connector/MXJ Notes and Tips ........................................................................... 152325.5.6 Connector/MXJ Support ...................................................................................... 1528

    25.6 Connector/PHP ............................................................................................................. 152926 Manejo de errores en MySQL .................................................................................................. 153127 Extender MySQL ..................................................................................................................... 1569

    27.1 El interior de MySQL ..................................................................................................... 156927.1.1 Los subprocesos (threads) MySQL ...................................................................... 156927.1.2 El paquete de pruebas MySQL Test .................................................................... 1570

    27.2 Añadir nuevas funciones a MySQL ................................................................................ 157227.2.1 Características de la interfaz para funciones definidas por el usuario ..................... 157327.2.2 Sintaxis de CREATE FUNCTION/DROP FUNCTION .............................................. 157327.2.3 Añadir una nueva función definida por el usuario ................................................. 157427.2.4 Aña