1790
MySQL 5.0 Reference Manual

Mysql Refman 5.0 Es

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. El manual de referencia original de MySQL est escrito en ingls, y esta traduccin no necesariamente est tan actualizada como la versin original. Para cualquier sugerencia sobre la traduccin y para sealar errores de cualquier 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 are protected 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 any means. 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 report them 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 nombre del 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. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional 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 any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. 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, 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. Oracle Corporation 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 access to 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 access to and use of this material is subject to the terms and conditions of your Oracle Software License and Service Agreement, which has been executed and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed to anyone outside Oracle without prior written consent of Oracle or as specifically provided below. This document is not part of your license 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 the actual 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 you distribute 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 the prior written consent from an authorized representative of Oracle. Oracle and/or its affiliates reserve any and all rights to 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 in doing 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 other MySQL users. For additional documentation on MySQL products, including translations of the documentation into other languages, and downloadable versions in variety of formats, including HTML and PDF formats, see the MySQL Documentation Library.

Resumen Documento generado el: 2012-09-04 (revisin: 567)

Tabla de contenidosPrefacio .......................................................................................................................................... xix 1. Informacin general ....................................................................................................................... 1 Sobre este manual .................................................................................................................... 2 Convenciones utilizadas en este manual ..................................................................................... 2 Panormica de MySQL AB ........................................................................................................ 4 Panormica del sistema de gestin de base de datos MySQL ...................................................... 5 Historia de MySQL ............................................................................................................ 6 Las principales caractersticas de MySQL ........................................................................... 6 Estabilidad de MySQL ....................................................................................................... 9 Dimensiones mximas de las tablas MySQL ..................................................................... 10 Conformidad con el efecto 2000 ....................................................................................... 11 Mapa de desarrollo de MySQL ................................................................................................. 12 El servidor MySQL incrustado (embedded) ........................................................................ 13 Qu hay de nuevo en MySQL 5.0 .................................................................................... 13 Fuentes de informacin acerca de MySQL ................................................................................ 14 Listas de correo de MySQL .............................................................................................. 14 Soporte por IRC (Internet Relay Chat) de la comunidad MySQL ......................................... 21 Soporte por parte de la comunidad en los foros de MySQL ................................................ 21 Cumplimiento de los estndares por parte de MySQL ................................................................ 21 Estndares utilizados por MySQL ..................................................................................... 22 Seleccin de modos SQL ................................................................................................. 22 Ejecutar MySQL en modo ANSI ....................................................................................... 22 Extensiones MySQL al estndar SQL ............................................................................... 23 Diferencias en MySQL del estndar SQL .......................................................................... 25 Cmo trata MySQL las restricciones (Constraints) ............................................................. 31 2. Instalar MySQL ............................................................................................................................ 35 Cuestiones generales sobre la instalacin ................................................................................. 36 Sistemas operativos que MySQL soporta .......................................................................... 37 Escoger la distribucin MySQL a instalar .......................................................................... 39 Cmo obtener MySQL ..................................................................................................... 50 Comprobar la integridad de paquetes con sumas de verificacin MD5 o GnuPG ................... 50 Conformacin de la instalacin ......................................................................................... 52 Instalacin MySQL estndar con una distribucin binaria ........................................................... 54 Instalar MySQL en Windows .................................................................................................... 54 Requisitos de Windows .................................................................................................... 55 Eleccin de un paquete de instalacin .............................................................................. 55 Instalacin de MySQL con un instalador automtico .......................................................... 56 Usar el asistente de instalacin de MySQL ....................................................................... 56 Utilizacin del asistente de configuracin .......................................................................... 59 Instalar MySQL partiendo de un archivo Zip Noinstall ........................................................ 64 Descomprimir el fichero de instalacin .............................................................................. 64 Creacin de un fichero de opciones .................................................................................. 64 Seleccionar un tipo de servidor MySQL ............................................................................ 65 Arrancar el servidor la primera vez ................................................................................... 66 Arrancar MySQL desde la lnea de comandos de Windows ................................................ 68 Arrancar MySQL como un servicio de Windows ................................................................ 68 Comprobar la instalacin de MySQL Installation ................................................................ 71 Resolucin de problemas en la instalacin de MySQL bajo Windows .................................. 71 Aumentar la versin de MySQL en Windows ..................................................................... 73 Comparacin entre MySQL en Windows y MySQL en Unix ................................................ 73 Instalar MySQL en Linux .......................................................................................................... 76

iii

MySQL 5.0 Reference Manual

Instalar MySQL en Mac OS X .................................................................................................. 78 Instalar MySQL sobre NetWare ................................................................................................ 81 Instalacin de MySQL en otros sistemas similares a Unix .......................................................... 83 Instalacin de MySQL usando una distribucin de cdigo fuente ................................................ 85 Panormica de la instalacin de cdigo fuente .................................................................. 86 Opciones tpicas de configure ...................................................................................... 89 Instalar desde el rbol de cdigo fuente de desarrollo ........................................................ 92 Problemas en la compilacin de MySQL ........................................................................... 95 Notas sobre MIT-pthreads ................................................................................................ 98 Instalar MySQL desde el cdigo fuente en Windows .......................................................... 99 Compilar los clientes de MySQL en Windows .................................................................. 102 Puesta en marcha y comprobacin despus de la instalacin ................................................... 103 Pasos a seguir despus de la instalacin en Windows ..................................................... 103 Pasos a seguir despus de la instalacin en Unix ........................................................... 104 Hacer seguras las cuentas iniciales de MySQL ............................................................... 115 Aumentar la versin de MySQL .............................................................................................. 118 Aumentar la versin de 4.1 a 5.0 .................................................................................... 119 Aumentar la versin de las tablas de privilegios ............................................................... 121 Copiar bases de datos MySQL a otra mquina ................................................................ 122 Bajar la versin de MySQL .................................................................................................... 123 Volver a la versin 4.1 ................................................................................................... 124 Notas especficas sobre sistemas operativos ........................................................................... 125 Notas sobre Linux .......................................................................................................... 125 Notas sobre Mac OS X .................................................................................................. 132 Notas sobre Solaris ........................................................................................................ 133 Notas sobre BSD ........................................................................................................... 136 Notas sobre otros Unix .................................................................................................. 140 Notas sobre OS/2 .......................................................................................................... 154 Notas sobre la instalacin de Perl .......................................................................................... 155 Instalacin de Perl en Unix ............................................................................................. 155 Instalar ActiveState Perl en Windows .............................................................................. 156 Problemas en la utilizacin de la interfaz Perl DBI/DBD .................................................... 157 3. Curso (tutorial) de MySQL .......................................................................................................... 161 Conectarse al y desconectarse del servidor ............................................................................ 161 Entrar consultas ..................................................................................................................... 162 Crear y utilizar una base de datos .......................................................................................... 165 Crear y seleccionar una base de datos ........................................................................... 166 Crear una tabla .............................................................................................................. 167 Cargar datos en una tabla .............................................................................................. 168 Extraer informacin de una tabla .................................................................................... 170 Obtener informacin sobre bases de datos y tablas ................................................................. 183 Usar mysql en modo batch ................................................................................................... 184 Ejemplos de consultas comunes ............................................................................................. 185 El valor mximo de una columna .................................................................................... 186 El registro que tiene el valor mximo de determinada columna ......................................... 186 Mximo de columna por grupo ....................................................................................... 186 Los registros de un grupo que tienen el mximo valor en alguna columna ......................... 186 Utilizacin de variables de usuario .................................................................................. 187 Usar claves forneas (foreign keys) ................................................................................ 187 Buscar usando dos claves .............................................................................................. 189 Calcular visitas diarias .................................................................................................... 189 Utilizacin de AUTO_INCREMENT .................................................................................... 189 Consultas del proyecto Mellizos (Twin) ................................................................................... 191 Encontrar todos los mellizos no repartidos ...................................................................... 191

iv

MySQL 5.0 Reference Manual

Mostrar una tabla de estado de mellizos ......................................................................... 193 Usar MySQL con Apache ....................................................................................................... 194 4. Usar los programas MySQL ....................................................................................................... 195 Panormica de programas MySQL ......................................................................................... 195 Invocar programas MySQL ..................................................................................................... 196 Especificar opciones de programa .......................................................................................... 197 Usar opciones en la lnea de comandos .......................................................................... 197 Usar ficheros de opciones .............................................................................................. 199 Usar variables de entorno para especificar opciones ........................................................ 203 Utilizacin de opciones para establecer variables de programa ......................................... 204 5. Administracin de bases de datos .............................................................................................. 207 El servidor MySQL y scripts de arranque del servidor .............................................................. 208 Panormica de los programas scripts y las utilidades del lado del servidor (server-side) ...... 208 El servidor extendido de MySQL mysqld-max ................................................................ 209 El script de arranque del servidor mysqld_safe ............................................................. 212 El script mysql.server para el arranque del servidor .................................................... 215 El programa mysqld_multi para gestionar mltiples servidores MySQL .......................... 216 El gestor de instancias de MySQL .......................................................................................... 219 Arrancar el servidor MySQL con el gestor de instancias MySQL ....................................... 219 Conexin al gestor de instancias de MySQL y creacin de cuentas de usuario ................... 220 Opciones de los comandos del gestor de instancias MySQL ............................................ 221 Ficheros de configuracin del gestor de instancias de MySQL .......................................... 222 Los comandos que reconoce el gestor de instancias de MySQL ....................................... 223 Configuracin del servidor MySQL .......................................................................................... 225 Opciones del comando mysqld ...................................................................................... 225 El modo SQL del servidor .............................................................................................. 235 Variables de sistema del servidor ................................................................................... 240 Variables de estado del servidor ..................................................................................... 270 El proceso de cierre del servidor MySQL ................................................................................ 280 Cuestiones de seguridad general ............................................................................................ 281 Gua de seguridad general ............................................................................................. 282 Hacer que MySQL sea seguro contra ataques ................................................................. 284 Opciones de arranque para mysqld relacionadas con la seguridad .................................. 286 Cuestiones relacionadas con la seguridad y LOAD DATA LOCAL ..................................... 287 El sistema de privilegios de acceso de MySQL ....................................................................... 288 Qu hace el sistema de privilegios ................................................................................. 288 Cmo funciona el sistema de privilegios .......................................................................... 288 Privilegios de los que provee MySQL .............................................................................. 293 Conectarse al servidor MySQL ....................................................................................... 296 Control de acceso, nivel 1: Comprobacin de la conexin ................................................ 297 Control de acceso, nivel 2: comprobacin de solicitudes .................................................. 301 Cundo tienen efecto los camios de privilegios ................................................................ 303 Causas de errores Access denied .............................................................................. 304 Hashing de contraseas en MySQL 4.1 .......................................................................... 309 Gestin de la cuenta de usuario MySQL ................................................................................. 313 Nombres de usuario y contraseas de MySQL ................................................................ 313 Aadir nuevas cuentas de usuario a MySQL ................................................................... 315 Eliminar cuentas de usuario de MySQL ........................................................................... 317 Limitar recursos de cuentas ............................................................................................ 318 Asignar contraseas a cuentas ....................................................................................... 319 Guardar una contrasea de forma segura ....................................................................... 320 Usar conexiones seguras ............................................................................................... 321 Prevencin de desastres y recuperaciones .............................................................................. 328 Copias de seguridad de bases de datos ......................................................................... 328

v

MySQL 5.0 Reference Manual

Ejemplo de estrategia de copias de seguridad y recuperacin .......................................... Mantenimiento de tablas y recuperacin de un fallo catastrfico (crash) ............................ Organizar un programa de mantenimiento de tablas ........................................................ Obtener informacin acerca de una tabla ........................................................................ Uso internacional y localizacin de MySQL ............................................................................. El conjunto de caracteres utilizado para datos y ordenacin ............................................. Escoger el idioma de los mensajes de error .................................................................... Aadir un conjunto de caracteres nuevo ......................................................................... Los vectores de definicin de caracteres ......................................................................... Soporte para colacin de cadenas de caracteres ............................................................. Soporte de caracteres multi-byte .................................................................................... Problemas con conjuntos de caracteres .......................................................................... Soporte de zonas horarias en el servidor MySQL ............................................................ Los ficheros de registro (log) de MySQL ................................................................................. El registro de errroes (Error Log) .................................................................................... El registro general de consultas ...................................................................................... El registro binario (Binary Log) ....................................................................................... El registro de consultas lentas (Slow Query Log) ............................................................. Mantenimiento de ficheros de registro (log) ..................................................................... Ejecutar ms de un servidor MySQL en la misma mquina ...................................................... Ejecutar varios servidores en Windows ........................................................................... Ejecutar varios servidores en Unix .................................................................................. Utilizacin de programas cliente en un entorno de mltiples servidores ............................. La cach de consultas de MySQL .......................................................................................... Cmo opera la cach de consultas ................................................................................. Opciones de SELECT para la cach de consultas ............................................................ Configuracin de la cach de consultas .......................................................................... Estado y mantenimiento de la cach de consultas ........................................................... 6. Replicacin en MySQL ............................................................................................................... Introduccin a la replicacin ................................................................................................... Panormica de la implementacin de la replicacin ................................................................. Detalles de la implementacin de la replicacin ....................................................................... Estados de los subprocesos del maestro de replicacin ................................................... Estados de proceso E/S (I/O) del esclavo de replicacin .................................................. Estados del flujo SQL de un esclavo de replicacin ......................................................... Ficheros de replicacin, retardados y de estado .............................................................. Cmo montar la replicacin .................................................................................................... Compatibilidad entre versiones de MySQL con respecto a la replicacin ................................... Aumentar la versin de la replicacin ...................................................................................... Aumentar la versin de la replicacin a 5.0 ..................................................................... Caractersticas de la replicacin y problemas conocidos .......................................................... Opciones de arranque de replicacin ...................................................................................... Preguntas y respuestas sobre replicacin ............................................................................... Resolucin de problemas de replicacin ................................................................................. Reportar bugs de replicacin .................................................................................................. 7. Optimizacin de MySQL ............................................................................................................. Panormica sobre optimizacin .............................................................................................. Limitaciones y soluciones de compromiso en el diseo de MySQL .................................... Disear aplicaciones pensando en la portabilidad ............................................................ Para qu hemos usado MySQL ...................................................................................... El paquete de pruebas de rendimiento (benchmarks) de MySQL ...................................... Usar pruebas de rendimiento (benchmarks) propios ......................................................... Optimizar sentencias SELECT y otras consultas ....................................................................... Sintaxis de EXPLAIN (Obtener informacin acerca de un SELECT) ...................................

330 334 346 346 352 352 353 354 356 356 356 357 357 358 359 359 360 364 364 365 367 370 371 372 372 374 374 375 377 377 378 379 380 380 381 382 383 387 388 388 388 392 400 405 406 409 410 410 411 412 413 414 414 415

vi

MySQL 5.0 Reference Manual

Estimar el renidimiento de una consulta .......................................................................... Velocidad de las consultas SELECT ................................................................................ Optimizacin de las clusulas WHERE por parte de MySQL ............................................... Optimizacin de rango ................................................................................................... Index Merge Optimization ............................................................................................... Cmo optimiza MySQL IS NULL ................................................................................... Cmo MySQL optimiza DISTINCT .................................................................................. Cmo optimiza MySQL los LEFT JOIN y RIGHT JOIN .................................................. Cmo optimiza MySQL ORDER BY ................................................................................. Cmo optimiza MySQL los GROUP BY ............................................................................ Cmo optimiza MySQL las clusulas LIMIT ................................................................... Cmo evitar lecturas completas de tablas ....................................................................... Velocidad de la sentencia INSERT .................................................................................. Velocidad de las sentencias UPDATE .............................................................................. Velocidad de sentencias DELETE .................................................................................... Otros consejos sobre optimizacin .................................................................................. Temas relacionados con el bloqueo ........................................................................................ Mtodos de bloqueo ...................................................................................................... Cuestiones relacionadas con el bloqueo (locking) de tablas .............................................. Optimizar la estructura de una base de datos ......................................................................... Elecciones de diseo ..................................................................................................... Haga sus datos lo ms pequeos posibles ...................................................................... ndices de columna ........................................................................................................ ndices de mltiples columnas ........................................................................................ Cmo utiliza MySQL los ndices ..................................................................................... La cach de claves de MyISAM ...................................................................................... Cmo cuenta MySQL las tablas abiertas ......................................................................... Cmo abre y cierra tablas MySQL .................................................................................. Desventajas de crear muchas tablas en la misma base de datos ...................................... Optimizacin del servidor MySQL ........................................................................................... Factores de sistema y afinamientos de parmetros de arranque ....................................... Afinar parmetros del servidor ........................................................................................ Vigilar el rendimiento del optimizador de consultas .......................................................... Efectos de la compilacin y del enlace en la velocidad de MySQL .................................... Cmo utiliza MySQL la memoria ..................................................................................... Cmo usa MySQL las DNS ............................................................................................ Cuestiones relacionadas con el disco ..................................................................................... Utilizar enlaces simblicos .............................................................................................. 8. Programas cliente y utilidades MySQL ........................................................................................ Panormica de scripts y utilidades del lado del cliente ............................................................. myisampack, el generador de tablas comprimidas de slo lectura de MySQL ........................... La herramienta intrprete de comandos mysql ....................................................................... Comandos mysql .......................................................................................................... Ejecutar sentencias SQL desde un fichero de texto ......................................................... Sugerencias acerca de mysql ........................................................................................ Administrar un servidor MySQL con mysqladmin ................................................................... La utilidad mysqlbinlog para registros binarios ..................................................................... El programa mysqlcheck para mantener y reparar tablas ....................................................... El programa de copia de seguridad de base de datos mysqldump ........................................... El programa de copias de seguridad de base de datos mysqlhotcopy .................................... El programa para importar datos mysqlimport ...................................................................... Mostrar bases de datos, tablas y columnas con mysqlshow .................................................... perror, explicacin de cdigos de error ................................................................................ La utilidad replace de cambio de cadenas de caracteres .......................................................

423 423 423 425 428 430 431 432 433 434 436 436 437 439 439 439 442 442 444 445 445 446 447 447 448 451 455 455 457 457 457 457 460 461 462 464 464 465 469 469 471 477 484 487 488 489 494 498 501 508 509 512 513 514

vii

MySQL 5.0 Reference Manual

9. Estructura de lenguaje ............................................................................................................... Valores literales ..................................................................................................................... Cadenas de caracteres .................................................................................................. Nmeros ........................................................................................................................ Valores hexadecimales ................................................................................................... Valores booleanos ......................................................................................................... Valores de bits ............................................................................................................... Valores NULL ................................................................................................................. Nombres de bases de datos, tablas, ndices, columnas y alias ................................................. Cualificadores de los identificadores ............................................................................... Sensibilidad a maysuclas y minsculas de identificadores .............................................. Variables de usuario .............................................................................................................. Variables de sistema .............................................................................................................. Variables estructuradas de sistema ................................................................................. Sintaxis de comentarios ......................................................................................................... Tratamiento de palabras reservadas en MySQL ...................................................................... 10. Soporte de conjuntos de caracteres .......................................................................................... Conjuntos de caracteres y colaciones en general .................................................................... Conjuntos de caracteres y colaciones en MySQL .................................................................... Determinar el conjunto de caracteres y la colacin por defecto ................................................. Conjunto de caracteres y colacin del servidor ................................................................ Conjuntos de caracteres y colaciones de la base de datos ............................................... Conjunto de caracteres y colacin de tabla ..................................................................... Conjunto de caracteres y colacin de columnas .............................................................. Ejemplos de asignacin de conjunto de caracteres y colacin .......................................... Conjunto de caracteres y colacin de la conexin ............................................................ Conjunto de caracteres y colacin de columnas carcter ............................................... Usar COLLATE en sentencias SQL ................................................................................. Precedencia de la clusula COLLATE .............................................................................. Operador BINARY .......................................................................................................... Casos especiales en los que determinar la colacin es complicado ................................... A cada colacin un conjunto de caracteres correcto ......................................................... Un ejemplo del efecto de una colacin ............................................................................ Efectos del soporte de conjuntos de caracteres ....................................................................... Cadenas de caracteres de resultado ............................................................................... CONVERT() ................................................................................................................... CAST() ......................................................................................................................... Sentencias SHOW ............................................................................................................ Soporte Unicode .................................................................................................................... UTF8 para metadatos ............................................................................................................ Compatibilidad con otros SGBDs (Sistemas gestores de bases de datos) .................................. Formato del nuevo fichero de conjunto de caracateres ............................................................. Conjunto de caracteres nacional ............................................................................................. Conjuntos de caracteres y colaciones que soporta MySQL ....................................................... Conjuntos de caracteres Unicode ................................................................................... Conjuntos de caracteres de Europa occidental ................................................................ Conjuntos de caracteres de Europa central ..................................................................... Conjuntos de caracteres del sur de Europa y de Oriente Medio ........................................ Conjuntos de caracteres blticos .................................................................................... Conjuntos de caracteres cirlicos .................................................................................... Conjuntos de caracteres asiticos ................................................................................... 11. Tipos de columna .................................................................................................................... Panormica de tipos de columna ............................................................................................ Panormica de tipos numricos ......................................................................................

517 517 517 519 520 520 520 520 521 522 522 524 525 527 528 529 533 534 534 536 536 537 537 538 538 539 541 542 543 543 543 544 544 545 545 546 546 546 548 548 550 550 550 550 551 553 554 555 556 556 557 559 560 560

viii

MySQL 5.0 Reference Manual

Panormica de tipos de fechas y hora ............................................................................ Panormica de tipos de cadenas de caracteres ............................................................... Tipos numricos .................................................................................................................... Tipos de fecha y hora ............................................................................................................ Los tipos de datos DATETIME, DATE y TIMESTAMP ......................................................... El tipo TIME .................................................................................................................. El tipo de datos YEAR .................................................................................................... Efecto 2000 (Y2K) y tipos de datos ................................................................................ Tipos de cadenas de caracteres ............................................................................................. Los tipos CHAR y VARCHAR ............................................................................................ Los tipos BINARY y VARBINARY ..................................................................................... Los tipos BLOB y TEXT .................................................................................................. El tipo de columna ENUM ................................................................................................ El tipo SET .................................................................................................................... Requisitos de almacenamiento segn el tipo de columna ......................................................... Escoger el tipo de columna correcto ....................................................................................... Usar tipos de columnas de otros motores de bases de datos ................................................... 12. Funciones y operadores ........................................................................................................... Operadores ............................................................................................................................ Precedencias de los operadores ..................................................................................... Parntesis ...................................................................................................................... Funciones y operadores de comparacin ........................................................................ Operadores lgicos ........................................................................................................ Funciones de control de flujo .................................................................................................. Funciones para cadenas de caracteres ................................................................................... Funciones de comparacin de cadenas de caracteres ..................................................... Funciones numricas ............................................................................................................. Operadores aritmticos .................................................................................................. Funciones matemticas .................................................................................................. Funciones de fecha y hora ..................................................................................................... Qu calendario utiliza MySQL ................................................................................................ Funciones de bsqueda de texto completo (Full-Text) .............................................................. Bsquedas booleanas de texto completo (Full-Text) ........................................................ Bsquedas de texto completo (Full-Text) con expansin de consulta ................................. Limitaciones de las bsquedas de texto completo (Full-Text) ............................................ Afinar bsquedas de texto completo (Full-Text) con MySQL ............................................. Cosas por hacer en bsquedas de texto completo (Full-Text) ........................................... Funciones y operadores de cast ............................................................................................. Otras funciones ...................................................................................................................... Funciones bit ................................................................................................................. Funciones de cifrado ...................................................................................................... Funciones de informacin ............................................................................................... Funciones varias ............................................................................................................ Funciones y modificadores para clusulas GROUP BY ............................................................. Funciones (de agregacin) de GROUP BY ....................................................................... Modificadores de GROUP BY .......................................................................................... GROUP BY con campos escondidos ............................................................................... 13. Sintaxis de sentencias SQL ...................................................................................................... Sentencias de definicin de datos (Data Definition Statements) ................................................ Sintaxis de ALTER DATABASE ....................................................................................... Sintaxis de ALTER TABLE ............................................................................................. Sintaxis de CREATE DATABASE ..................................................................................... Sintaxis de CREATE INDEX ........................................................................................... Sintaxis de CREATE TABLE ...........................................................................................

563 564 568 570 572 576 577 577 578 578 579 579 581 582 584 586 586 589 590 590 590 590 596 597 599 610 612 612 613 620 637 637 640 642 643 643 645 645 647 647 649 652 657 660 660 663 666 669 669 669 670 674 675 676

ix

MySQL 5.0 Reference Manual

Sintaxis de DROP DATABASE ......................................................................................... Sintaxis de DROP INDEX ............................................................................................... Sintaxis de DROP TABLE ............................................................................................... Sintaxis de RENAME TABLE ........................................................................................... Sentencias de manipulacin de datos (Data Manipulation Statements) ...................................... Sintaxis de DELETE ....................................................................................................... Sintaxis de DO ............................................................................................................... Sintaxis de HANDLER ..................................................................................................... Sintaxis de INSERT ....................................................................................................... Sintaxis de LOAD DATA INFILE ................................................................................... Sintaxis de REPLACE ..................................................................................................... Sintaxis de SELECT ....................................................................................................... Sintaxis de subconsultas ................................................................................................ Sintaxis de TRUNCATE ................................................................................................... Sintaxis de UPDATE ....................................................................................................... Sentencias tiles de MySQL ................................................................................................... Sintaxis de DESCRIBE (Informacin acerca de las columnas) ........................................... Sintaxis de USE ............................................................................................................. Comandos transaccionales y de bloqueo de MySQL ................................................................ Sintaxis de START TRANSACTION, COMMIT y ROLLBACK ................................................ Sentencias que no se pueden deshacer .......................................................................... Sentencias que causan una ejecucin (commit) implcita .................................................. Sintaxis de SAVEPOINT y ROLLBACK TO SAVEPOINT .................................................... Sintaxis de LOCK TABLES y UNLOCK TABLES ............................................................... Sintaxis de SET TRANSACTION ..................................................................................... Sentencias de administracin de base de datos ...................................................................... Sentencias para la gestin de cuentas ............................................................................ Sentencias para el mantenimiento de tablas .................................................................... Sintaxis de SET ............................................................................................................. Sintaxis de SHOW ........................................................................................................... Otras sentencias para la administracin .......................................................................... Sentencias de replicacin ....................................................................................................... Sentencias SQL para el control de servidores maestros ................................................... Sentencias SQL para el control de servidores esclavos .................................................... Sintaxis SQL de sentencias preparadas .................................................................................. 14. Motores de almacenamiento de MySQL y tipos de tablas ........................................................... El motor de almacenamiento MyISAM ..................................................................................... Opciones de arranque de MyISAM .................................................................................. Cunto espacio necesitan las claves ............................................................................... Formatos de almacenamiento de tablas MyISAM ............................................................. Problemas en tablas MyISAM ......................................................................................... El motor de almacenamiento MERGE ....................................................................................... Problemas con tablas MERGE .......................................................................................... El motor de almacenamiento MEMORY (HEAP) .......................................................................... El motor de almacenamiento BDB (BerkeleyDB) .................................................................... Sistemas operativos que soporta BDB ............................................................................. Instalacin de BDB ......................................................................................................... Opciones de arranque de BDB ........................................................................................ Caractersticas de las tablas BDB .................................................................................... Temas pendientes de arreglo para BDB .......................................................................... Limitaciones en las tablas BDB ....................................................................................... Errores que pueden darse en el uso de tablas BDB ......................................................... El motor de almacenamiento EXAMPLE ................................................................................... El motor de almacenamiento FEDERATED ...............................................................................

686 687 687 688 688 688 691 691 692 698 706 707 715 724 725 726 726 727 728 728 729 729 729 730 732 733 733 742 747 752 770 774 774 776 784 787 789 791 792 793 795 796 799 799 801 802 802 803 804 805 806 806 807 807

x

MySQL 5.0 Reference Manual

Instalacin del motor de almacenamiento FEDERATED ..................................................... 807 Descripcin del motor de almacenamiento FEDERATED .................................................... 807 Cmo usar las tablas FEDERATED .................................................................................. 808 Limitaciones del motor de almacenamiento FEDERATED ................................................... 809 El motor de almacenamiento ARCHIVE ................................................................................... 809 El motor de almacenamiento CSV ........................................................................................... 810 15. El motor de almacenamiento InnoDB ....................................................................................... 811 Panormica de InnoDB ......................................................................................................... 812 Informacin de contacto de InnoDB ....................................................................................... 812 Configuracin de InnoDB ....................................................................................................... 812 Opciones de arranque de InnoDB .......................................................................................... 817 Crear el espacio de tablas InnoDB ........................................................................................ 823 Resolucin de problemas en la inicializacin de InnoDB .................................................. 824 Crear tablas InnoDB .............................................................................................................. 825 Cmo utilizar transacciones en InnoDB con distintas APIs ............................................... 825 Pasar tablas MyISAM a InnoDB ..................................................................................... 826 Cmo funciona una columna AUTO_INCREMENT en InnoDB ............................................ 827 Restricciones (constraints) FOREIGN KEY ...................................................................... 827 InnoDB y replicacin MySQL ......................................................................................... 832 Usar un espacio de tablas para cada tabla ...................................................................... 832 Aadir y suprimir registros y ficheros de datos InnoDB ............................................................ 834 Hacer una copia de seguridad y recuperar una base de datos InnoDB ..................................... 835 Forzar una recuperacin ................................................................................................ 836 Marcadores .................................................................................................................... 837 Trasladar una base de datos InnoDB a otra mquina .............................................................. 838 Bloqueo y modelo de transacciones de InnoDB ...................................................................... 838 Modos de bloqueo InnoDB ............................................................................................ 838 InnoDB y AUTOCOMMIT ................................................................................................. 839 InnoDB y TRANSACTION ISOLATION LEVEL ............................................................... 840 Lecturas consistentes que no bloquean ........................................................................... 841 Bloquear lecturas SELECT ... FOR UPDATEy SELECT ... LOCK IN SHARE MODE 842 .... Bloqueo de la prxima clave (Next-Key Locking): evitar el problema fantasma ................... 842 Un ejemplo de lectura consistente en InnoDB ................................................................. 843 Establecimiento de bloqueos con diferentes sentencias SQL en InnoDB ........................... 844 Cundo ejecuta o deshace implicitamente MySQL una transaccin? ............................... 845 Deteccin de interbloqueos (deadlocks) y cancelacin de transacciones (rollbacks) ............ 846 Cmo tratar con interbloqueos ........................................................................................ 846 Consejos de afinamiento del rendimiento de InnoDB ............................................................... 847 SHOW INNODB STATUS y los monitores InnoDB ............................................................ 849 Implementacin de multiversin .............................................................................................. 853 Estructuras de tabla y de ndice ............................................................................................. 854 Estructura fsica de un ndice ......................................................................................... 854 Bfer de inserciones ...................................................................................................... 855 Indices hash adaptables ................................................................................................. 855 Estructura fsica de los registros ..................................................................................... 855 Gestin de espacio de ficheros y de E/S de disco (Disk I/O) .................................................... 856 E/S de disco (Disk I/O) .................................................................................................. 856 Usar dispositivos en bruto (raw devices) para espacios de tablas ...................................... 857 Gestin del espacio de ficheros ...................................................................................... 857 Desfragmentar una tabla ................................................................................................ 858 Tratamiento de errores de InnoDB .......................................................................................... 858 Cdigos de error de InnoDB .......................................................................................... 859 Cdigos de error del sistema operativo ........................................................................... 860 Restricciones de las tablas InnoDB ........................................................................................ 865

xi

MySQL 5.0 Reference Manual

Resolver problemas relacionados con InnoDB ........................................................................ Resolver problemas de las operaciones del diccionario de datos de InnoDB ..................... 16. MySQL Cluster ........................................................................................................................ Panormica de MySQL Cluster ............................................................................................... Conceptos bsicos de Basic MySQL Cluster ........................................................................... Cmo configurar varios ordenadores ....................................................................................... Hardware, software y redes ............................................................................................ Instalacin ..................................................................................................................... Configuracin ................................................................................................................. Arranque inicial .............................................................................................................. Cargar datos de ejemplo y realizar consultas .................................................................. Apagado y encendido seguros ........................................................................................ Configuracin de MySQL Cluster ............................................................................................ Generar MySQL Cluster desde el cdigo fuente .............................................................. Instalar el software ......................................................................................................... Rpido montaje de prueba de MySQL Cluster ................................................................. Fichero de configuracin ................................................................................................ Gestin de procesos en MySQL Cluster .................................................................................. El uso del proceso del servidor MySQL para MySQL Cluster ............................................ ndbd, el proceso del nodo de motor de almacenamiento ................................................. El proceso del servidor de administracin ndb_mgmd ....................................................... El proceso de cliente de administracin ndb_mgm ............................................................ Opciones de comando para procesos de MySQL Cluster ................................................. Administracin de MySQL Cluster ........................................................................................... Comandos del cliente de administracin ......................................................................... Informes de eventos generados por MySQL Cluster ........................................................ Modo de usuario nico ................................................................................................... Copias de seguridad On-line para MySQL Cluster ........................................................... Usar interconexiones de alta velocidad con MySQL Cluster ...................................................... Configurar MySQL Cluster para que utilice Sockets SCI ................................................... Entender el impacto de interconexiones de nodos ........................................................... Limitaciones conocidas de MySQL Cluster .............................................................................. Mapa de desarrollo de MySQL Cluster .................................................................................... Cambios de MySQL Cluster en MySQL 5.0 ..................................................................... Mapa de desarrollo de MySQL 5.1 para MySQL Cluster ................................................... Preguntas frecuentes sobre MySQL Cluster ............................................................................ Glosario de MySQL Cluster .................................................................................................... 17. Introduccin a MaxDB .............................................................................................................. Historia de MaxDB ................................................................................................................. Licenciamiento y soporte ........................................................................................................ Enlaces relacionados con MaxDB ........................................................................................... Conceptos bsicos de MaxDB ................................................................................................ Diferencias de prestaciones entre MaxDB y MySQL ................................................................ Caractersticas de interoperabilidad entre MaxDB y MySQL ..................................................... Palabras reservadas de MaxDB .............................................................................................. 18. Extensiones espaciales de MySQL ........................................................................................... Introduccin ........................................................................................................................... El modelo geomtrico OpenGIS .............................................................................................. La jerarqua de las clases geomtricas ........................................................................... La clase Geometry ....................................................................................................... La clase Point ............................................................................................................. La clase Curve ............................................................................................................. La clase LineString ................................................................................................... La clase Surface .........................................................................................................

867 867 869 870 872 873 875 876 877 879 880 883 884 884 884 884 886 912 912 913 914 915 915 917 918 919 924 925 927 928 931 933 935 936 936 937 944 949 949 949 949 950 950 950 951 955 956 956 957 958 959 959 959 960

xii

MySQL 5.0 Reference Manual

19.

20.

21.

22.

La clase Polygon ......................................................................................................... 960 La clase GeometryCollection .................................................................................... 960 La clase MultiPoint ................................................................................................... 961 La clase MultiCurve ................................................................................................... 961 La clase MultiLineString .......................................................................................... 961 La clase MultiSurface ............................................................................................... 962 La clase MultiPolygon ............................................................................................... 962 Formatos de datos espaciales soportados ............................................................................... 962 Formato Well-Known Text (WKT) .................................................................................... 963 Formato Well-Known Binary (WKB) ................................................................................ 963 Crear una base de datos MySQL con capacidades espaciales ................................................. 964 Tipos de datos espaciales de MySQL ............................................................................. 964 Crear valores espaciales ................................................................................................ 965 Crear columnas espaciales ............................................................................................. 968 Poblar columnas espaciales ........................................................................................... 969 Extraer datos espaciales ................................................................................................ 970 Analizar informacin espacial ................................................................................................. 970 Funciones de conversin de formato geomtrico ............................................................. 971 Funciones Geometry ..................................................................................................... 971 Funciones que crean nuevas geometras a partir de unas existentes ................................. 978 Funciones para probar relaciones espaciales entre objetos geomtricos ............................ 979 Relaciones entre rectngulos MBR (Minimal Bounding Rectangles) .................................. 979 Funciones que prueban relaciones espaciales entre geometras ....................................... 980 Optimizacin del anlisis espacial ........................................................................................... 982 Crear ndices espaciales ................................................................................................ 982 Usar un ndice espacial .................................................................................................. 983 Conformidad y compatibilidad de MySQL ................................................................................ 985 Caractersticas GIS que todava no han sido implementadas ............................................ 985 Procedimientos almacenados y funciones .................................................................................. 987 Procedimientos almacenados y las tablas de permisos ............................................................ 988 Sintaxis de procedimientos almacenados ................................................................................ 988 CREATE PROCEDURE y CREATE FUNCTION ................................................................... 989 ALTER PROCEDURE y ALTER FUNCTION ....................................................................... 991 DROP PROCEDURE y DROP FUNCTION .......................................................................... 992 SHOW CREATE PROCEDURE y SHOW CREATE FUNCTION ............................................... 992 SHOW PROCEDURE STATUS y SHOW FUNCTION STATUS ............................................... 992 La sentencia CALL ......................................................................................................... 992 Sentencia compuesta BEGIN ... END .......................................................................... 993 Sentencia DECLARE ....................................................................................................... 993 Variables en procedimientos almacenados ...................................................................... 993 Conditions and Handlers ................................................................................................ 994 Cursores ........................................................................................................................ 995 Constructores de control de flujo .................................................................................... 997 Registro binario de procedimientos almacenados y disparadores .............................................. 999 Disparadores (triggers) ........................................................................................................... 1003 Sintaxis de CREATE TRIGGER ............................................................................................. 1003 Sintaxis de DROP TRIGGER ................................................................................................. 1005 Utilizacin de disparadores ................................................................................................... 1006 Vistas (Views) ........................................................................................................................ 1009 Sintaxis de ALTER VIEW ..................................................................................................... 1009 Sintaxis de CREATE VIEW ................................................................................................... 1009 Sintaxis de DROP VIEW ....................................................................................................... 1014 Sintaxis de SHOW CREATE VIEW ......................................................................................... 1015 La base de datos de informacin INFORMATION_SCHEMA ........................................................ 1017

xiii

MySQL 5.0 Reference Manual

Las tablas INFORMATION_SCHEMA ....................................................................................... La tabla INFORMATION_SCHEMA SCHEMATA ................................................................ La tabla INFORMATION_SCHEMA TABLES .................................................................... La tabla INFORMATION_SCHEMA COLUMNS .................................................................. La tabla INFORMATION_SCHEMA STATISTICS ............................................................ La tabla INFORMATION_SCHEMA USER_PRIVILEGES .................................................. La tabla INFORMATION_SCHEMA SCHEMA_PRIVILEGES ............................................... La tabla INFORMATION_SCHEMA TABLE_PRIVILEGES ................................................ La tabla INFORMATION_SCHEMA COLUMN_PRIVILEGES ............................................... La tabla INFORMATION_SCHEMA CHARACTER_SETS .................................................... La tabla INFORMATION_SCHEMA COLLATIONS ............................................................ La tabla INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY ....... La tabla INFORMATION_SCHEMA TABLE_CONSTRAINTS ............................................... La tabla INFORMATION_SCHEMA KEY_COLUMN_USAGE ................................................ La tabla INFORMATION_SCHEMA ROUTINES ................................................................ La tabla INFORMATION_SCHEMA VIEWS ...................................................................... La tabla INFORMATION_SCHEMA TRIGGERS ................................................................ Otras tablas INFORMATION_SCHEMA ............................................................................ Extensiones a las sentencias SHOW ....................................................................................... 23. Matemticas de precisin ....................................................................................................... Tipos de valores numricos .................................................................................................. Cambios en el tipo de datos DECIMAL .................................................................................. Manejo de expresiones ........................................................................................................ Cmo se redondea .............................................................................................................. Ejemplos de matemticas de precisin .................................................................................. 24. APIs de MySQL ..................................................................................................................... Utilidades para el desarrollo de programas MySQL ................................................................ msql2mysql ............................................................................................................. mysql_config ........................................................................................................... La API C de MySQL ............................................................................................................ Tipos de datos de la API C .......................................................................................... Panormica de funciones de la API C ........................................................................... Descripcin de funciones de la API C ........................................................................... Sentencias preparadas de la API C .............................................................................. Tipos de datos de sentencias preparadas de la API C ................................................... Panormica de las funciones de sentencias preparadas de la API C ............................... Descripciones de funciones de sentencias preparadas de la API C ................................. Problemas con sentencias preparadas de la API C ........................................................ Tratamiento por parte de la API C de la ejecucin de mltiples consultas ........................ Manejo de valores de fecha y hora por parte de la API C ............................................... Descripcin de funciones de la API C para el control de subprocesos .............................. Descripcin de las funciones de la API C del servidor incrustado (embedded) .................. Preguntas y problemas comunes en el uso de la API C ................................................. Generar programas cliente ........................................................................................... Cmo hacer un cliente multihilo .................................................................................... libmysqld, la biblioteca del servidor MySQL incrustado (embedded) ................................. API PHP de MySQL ............................................................................................................. Problemas comunes con MySQL y PHP ....................................................................... La API Perl de MySQL ......................................................................................................... API C++ de MySQL ............................................................................................................. Borland C++ ................................................................................................................ La API Python de MySQL .................................................................................................... La API Tcl de MySQL .......................................................................................................... El visor de MySQL Eiffel ......................................................................................................

1019 1019 1020 1021 1022 1022 1023 1023 1023 1024 1024 1025 1025 1025 1027 1027 1028 1030 1030 1033 1034 1034 1036 1037 1038 1043 1043 1044 1044 1045 1046 1049 1053 1094 1095 1098 1100 1122 1123 1123 1125 1126 1127 1129 1129 1131 1136 1137 1137 1138 1138 1138 1138 1138

xiv

MySQL 5.0 Reference Manual

25. Conectores ............................................................................................................................ MySQL Connector/ODBC ..................................................................................................... Introduction to Connector/ODBC ................................................................................... Connector/ODBC Installation ......................................................................................... Connector/ODBC Configuration ..................................................................................... Connector/ODBC Examples .......................................................................................... Connector/ODBC Reference ......................................................................................... Connector/ODBC Notes and Tips .................................................................................. Connector/ODBC Support ............................................................................................. MySQL Connector/NET ........................................................................................................ Connector/NET Versions .............................................................................................. Connector/NET Installation ........................................................................................... Connector/NET Examples ............................................................................................. Connector/NET Reference ............................................................................................ Connector/NET Notes and Tips .................................................................................... Connector/NET Support ................................................................................................ MySQL Visual Studio Plugin ................................................................................................. Installing the MySQL Visual Studio Plugin ..................................................................... Creating a connection to the MySQL server ................................................................... Using the MySQL Visual Studio Plugin .......................................................................... Visual Studio Plugin Support ........................................................................................ MySQL Connector/J ............................................................................................................. Connector/J Versions ................................................................................................... Connector/J Installation ................................................................................................ Connector/J Examples .................................................................................................. Connector/J (JDBC) Reference ..................................................................................... Connector/J Notes and Tips ......................................................................................... Connector/J Support ..................................................................................................... MySQL Connector/MXJ ........................................................................................................ Introduction to Connector/MXJ ...................................................................................... Connector/MXJ Installation ........................................................................................... Connector/MXJ Configuration ........................................................................................ Connector/MXJ Reference ............................................................................................ Connector/MXJ Notes and Tips .................................................................................... Connector/MXJ Support ................................................................................................ Connector/PHP .................................................................................................................... 26. Manejo de errores en MySQL ................................................................................................. 27. Extender MySQL .................................................................................................................... El interior de MySQL ............................................................................................................ Los subprocesos (threads) MySQL ............................................................................... El paquete de pruebas MySQL Test ............................................................................. Aadir nuevas funciones a MySQL ....................................................................................... Caractersticas de la interfaz para funciones definidas por el usuario ............................... Sintaxis de CREATE FUNCTION/DROP FUNCTION ....................................................... Aadir una nueva funcin definida por el usuario ........................................................... Aadir una nueva funcin nativa ................................................................................... Aadir nuevos procedimientos a MySQL ............................................................................... Procedimiento Analyse ................................................................................................. Escribir un procedimiento ............................................................................................. A. Problemas y errores comunes .................................................................................................. Cmo determinar a qu es debido un problema .................................................................... Errores comunes al usar programas MySQL ......................................................................... Access denied ......................................................................................................... Can't connect to [local] MySQL server ........................................................

1139 1140 1140 1144 1165 1181 1207 1213 1222 122