• No se han encontrado resultados

MySQL 5.0 Reference Manual

N/A
N/A
Protected

Academic year: 2021

Share "MySQL 5.0 Reference Manual"

Copied!
10
0
0

Texto completo

(1)
(2)

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 de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse 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 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 documentación 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 disposición:

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

(3)

iii

Tabla de contenidos

Prefacio ... xix

1 Información general ... 1

1.1 Sobre este manual ... 2

1.2 Convenciones utilizadas en este manual ... 2

1.3 Panorámica de MySQL AB ... 4

1.4 Panorámica del sistema de gestión de base de datos MySQL ... 5

1.4.1 Historia de MySQL ... 6

1.4.2 Las principales características de MySQL ... 6

1.4.3 Estabilidad de MySQL ... 9

1.4.4 Dimensiones máximas de las tablas MySQL ... 9

1.4.5 Conformidad con el efecto 2000 ... 10

1.5 Mapa de desarrollo de MySQL ... 12

1.5.1 El servidor MySQL incrustado (embedded) ... 12

1.5.2 Qué hay de nuevo en MySQL 5.0 ... 13

1.6 Fuentes de información acerca de MySQL ... 13

1.6.1 Listas de correo de MySQL ... 13

1.6.2 Soporte por IRC (Internet Relay Chat) de la comunidad MySQL ... 20

1.6.3 Soporte por parte de la comunidad en los foros de MySQL ... 20

1.7 Cumplimiento de los estándares por parte de MySQL ... 20

1.7.1 Estándares utilizados por MySQL ... 21

1.7.2 Selección de modos SQL ... 21

1.7.3 Ejecutar MySQL en modo ANSI ... 21

1.7.4 Extensiones MySQL al estándar SQL ... 22

1.7.5 Diferencias en MySQL del estándar SQL ... 25

1.7.6 Cómo trata MySQL las restricciones (Constraints) ... 30

2 Instalar MySQL ... 35

2.1 Cuestiones generales sobre la instalación ... 36

2.1.1 Sistemas operativos que MySQL soporta ... 37

2.1.2 Escoger la distribución MySQL a instalar ... 39

2.1.3 Cómo obtener MySQL ... 49

2.1.4 Comprobar la integridad de paquetes con sumas de verificación MD5 o GnuPG ... 49

2.1.5 Conformación de la instalación ... 52

2.2 Instalación MySQL estándar con una distribución binaria ... 53

2.3 Instalar MySQL en Windows ... 54

2.3.1 Requisitos de Windows ... 54

2.3.2 Elección de un paquete de instalación ... 55

2.3.3 Instalación de MySQL con un instalador automático ... 55

2.3.4 Usar el asistente de instalación de MySQL ... 55

2.3.5 Utilización del asistente de configuración ... 58

2.3.6 Instalar MySQL partiendo de un archivo Zip Noinstall ... 63

2.3.7 Descomprimir el fichero de instalación ... 63

2.3.8 Creación de un fichero de opciones ... 63

2.3.9 Seleccionar un tipo de servidor MySQL ... 64

2.3.10 Arrancar el servidor la primera vez ... 65

2.3.11 Arrancar MySQL desde la línea de comandos de Windows ... 66

2.3.12 Arrancar MySQL como un servicio de Windows ... 67

2.3.13 Comprobar la instalación de MySQL Installation ... 70

2.3.14 Resolución de problemas en la instalación de MySQL bajo Windows ... 70

2.3.15 Aumentar la versión de MySQL en Windows ... 71

2.3.16 Comparación entre MySQL en Windows y MySQL en Unix ... 72

2.4 Instalar MySQL en Linux ... 74

2.5 Instalar MySQL en Mac OS X ... 77

2.6 Instalar MySQL sobre NetWare ... 79

2.7 Instalación de MySQL en otros sistemas similares a Unix ... 81

(4)

MySQL 5.0 Reference Manual

2.8.1 Panorámica de la instalación de código fuente ... 85

2.8.2 Opciones típicas de configure ... 87

2.8.3 Instalar desde el árbol de código fuente de desarrollo ... 90

2.8.4 Problemas en la compilación de MySQL ... 93

2.8.5 Notas sobre MIT-pthreads ... 96

2.8.6 Instalar MySQL desde el código fuente en Windows ... 98

2.8.7 Compilar los clientes de MySQL en Windows ... 101

2.9 Puesta en marcha y comprobación después de la instalación ... 101

2.9.1 Pasos a seguir después de la instalación en Windows ... 102

2.9.2 Pasos a seguir después de la instalación en Unix ... 102

2.9.3 Hacer seguras las cuentas iniciales de MySQL ... 113

2.10 Aumentar la versión de MySQL ... 116

2.10.1 Aumentar la versión de 4.1 a 5.0 ... 117

2.10.2 Aumentar la versión de las tablas de privilegios ... 120

2.10.3 Copiar bases de datos MySQL a otra máquina ... 121

2.11 Bajar la versión de MySQL ... 122

2.11.1 Volver a la versión 4.1 ... 122

2.12 Notas específicas sobre sistemas operativos ... 123

2.12.1 Notas sobre Linux ... 123

2.12.2 Notas sobre Mac OS X ... 130

2.12.3 Notas sobre Solaris ... 131

2.12.4 Notas sobre BSD ... 135

2.12.5 Notas sobre otros Unix ... 138

2.12.6 Notas sobre OS/2 ... 152

2.13 Notas sobre la instalación de Perl ... 153

2.13.1 Instalación de Perl en Unix ... 153

2.13.2 Instalar ActiveState Perl en Windows ... 154

2.13.3 Problemas en la utilización de la interfaz Perl DBI/DBD ... 155

3 Curso (tutorial) de MySQL ... 159

3.1 Conectarse al y desconectarse del servidor ... 159

3.2 Entrar consultas ... 160

3.3 Crear y utilizar una base de datos ... 163

3.3.1 Crear y seleccionar una base de datos ... 164

3.3.2 Crear una tabla ... 165

3.3.3 Cargar datos en una tabla ... 166

3.3.4 Extraer información de una tabla ... 167

3.4 Obtener información sobre bases de datos y tablas ... 180

3.5 Usar mysql en modo batch ... 181

3.6 Ejemplos de consultas comunes ... 183

3.6.1 El valor máximo de una columna ... 183

3.6.2 El registro que tiene el valor máximo de determinada columna ... 183

3.6.3 Máximo de columna por grupo ... 184

3.6.4 Los registros de un grupo que tienen el máximo valor en alguna columna ... 184

3.6.5 Utilización de variables de usuario ... 184

3.6.6 Usar claves foráneas (foreign keys) ... 184

3.6.7 Buscar usando dos claves ... 186

3.6.8 Calcular visitas diarias ... 187

3.6.9 Utilización de AUTO_INCREMENT ... 187

3.7 Consultas del proyecto Mellizos (Twin) ... 188

3.7.1 Encontrar todos los mellizos no repartidos ... 189

3.7.2 Mostrar una tabla de estado de mellizos ... 191

3.8 Usar MySQL con Apache ... 191

4 Usar los programas MySQL ... 193

4.1 Panorámica de programas MySQL ... 193

4.2 Invocar programas MySQL ... 194

4.3 Especificar opciones de programa ... 195

4.3.1 Usar opciones en la línea de comandos ... 195

(5)

v

4.3.3 Usar variables de entorno para especificar opciones ... 201

4.3.4 Utilización de opciones para establecer variables de programa ... 202

5 Administración de bases de datos ... 203

5.1 El servidor MySQL y scripts de arranque del servidor ... 204

5.1.1 Panorámica de los programas scripts y las utilidades del lado del servidor (server-side) ... 204

5.1.2 El servidor extendido de MySQL mysqld-max ... 205

5.1.3 El script de arranque del servidor mysqld_safe ... 208

5.1.4 El script mysql.server para el arranque del servidor ... 211

5.1.5 El programa mysqld_multi para gestionar múltiples servidores MySQL ... 211

5.2 El gestor de instancias de MySQL ... 215

5.2.1 Arrancar el servidor MySQL con el gestor de instancias MySQL ... 215

5.2.2 Conexión al gestor de instancias de MySQL y creación de cuentas de usuario ... 216

5.2.3 Opciones de los comandos del gestor de instancias MySQL ... 216

5.2.4 Ficheros de configuración del gestor de instancias de MySQL ... 217

5.2.5 Los comandos que reconoce el gestor de instancias de MySQL ... 218

5.3 Configuración del servidor MySQL ... 220

5.3.1 Opciones del comando mysqld ... 220

5.3.2 El modo SQL del servidor ... 230

5.3.3 Variables de sistema del servidor ... 234

5.3.4 Variables de estado del servidor ... 263

5.4 El proceso de cierre del servidor MySQL ... 273

5.5 Cuestiones de seguridad general ... 274

5.5.1 Guía de seguridad general ... 274

5.5.2 Hacer que MySQL sea seguro contra ataques ... 277

5.5.3 Opciones de arranque para mysqld relacionadas con la seguridad ... 278

5.5.4 Cuestiones relacionadas con la seguridad y LOAD DATA LOCAL ... 280

5.6 El sistema de privilegios de acceso de MySQL ... 280

5.6.1 Qué hace el sistema de privilegios ... 281

5.6.2 Cómo funciona el sistema de privilegios ... 281

5.6.3 Privilegios de los que provee MySQL ... 285

5.6.4 Conectarse al servidor MySQL ... 288

5.6.5 Control de acceso, nivel 1: Comprobación de la conexión ... 289

5.6.6 Control de acceso, nivel 2: comprobación de solicitudes ... 293

5.6.7 Cuándo tienen efecto los camios de privilegios ... 296

5.6.8 Causas de errores Access denied ... 296

5.6.9 Hashing de contraseñas en MySQL 4.1 ... 301

5.7 Gestión de la cuenta de usuario MySQL ... 305

5.7.1 Nombres de usuario y contraseñas de MySQL ... 305

5.7.2 Añadir nuevas cuentas de usuario a MySQL ... 307

5.7.3 Eliminar cuentas de usuario de MySQL ... 309

5.7.4 Limitar recursos de cuentas ... 310

5.7.5 Asignar contraseñas a cuentas ... 311

5.7.6 Guardar una contraseña de forma segura ... 312

5.7.7 Usar conexiones seguras ... 313

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

5.8.1 Copias de seguridad de bases de datos ... 320

5.8.2 Ejemplo de estrategia de copias de seguridad y recuperación ... 322

5.8.3 Mantenimiento de tablas y recuperación de un fallo catastrófico (crash) ... 325

5.8.4 Organizar un programa de mantenimiento de tablas ... 337

5.8.5 Obtener información acerca de una tabla ... 338

5.9 Uso internacional y localización de MySQL ... 343

5.9.1 El conjunto de caracteres utilizado para datos y ordenación ... 343

5.9.2 Escoger el idioma de los mensajes de error ... 345

5.9.3 Añadir un conjunto de caracteres nuevo ... 345

5.9.4 Los vectores de definición de caracteres ... 347

5.9.5 Soporte para colación de cadenas de caracteres ... 347

(6)

MySQL 5.0 Reference Manual

5.9.7 Problemas con conjuntos de caracteres ... 348

5.9.8 Soporte de zonas horarias en el servidor MySQL ... 348

5.10 Los ficheros de registro (log) de MySQL ... 349

5.10.1 El registro de errroes (Error Log) ... 350

5.10.2 El registro general de consultas ... 350

5.10.3 El registro binario (Binary Log) ... 351

5.10.4 El registro de consultas lentas (Slow Query Log) ... 355

5.10.5 Mantenimiento de ficheros de registro (log) ... 355

5.11 Ejecutar más de un servidor MySQL en la misma máquina ... 356

5.11.1 Ejecutar varios servidores en Windows ... 357

5.11.2 Ejecutar varios servidores en Unix ... 360

5.11.3 Utilización de programas cliente en un entorno de múltiples servidores ... 362

5.12 La caché de consultas de MySQL ... 362

5.12.1 Cómo opera la caché de consultas ... 363

5.12.2 Opciones de SELECT para la caché de consultas ... 365

5.12.3 Configuración de la caché de consultas ... 365

5.12.4 Estado y mantenimiento de la caché de consultas ... 366

6 Replicación en MySQL ... 369

6.1 Introducción a la replicación ... 369

6.2 Panorámica de la implementación de la replicación ... 370

6.3 Detalles de la implementación de la replicación ... 370

6.3.1 Estados de los subprocesos del maestro de replicación ... 372

6.3.2 Estados de proceso E/S (I/O) del esclavo de replicación ... 372

6.3.3 Estados del flujo SQL de un esclavo de replicación ... 373

6.3.4 Ficheros de replicación, retardados y de estado ... 374

6.4 Cómo montar la replicación ... 375

6.5 Compatibilidad entre versiones de MySQL con respecto a la replicación ... 379

6.6 Aumentar la versión de la replicación ... 379

6.6.1 Aumentar la versión de la replicación a 5.0 ... 380

6.7 Características de la replicación y problemas conocidos ... 380

6.8 Opciones de arranque de replicación ... 384

6.9 Preguntas y respuestas sobre replicación ... 392

6.10 Resolución de problemas de replicación ... 397

6.11 Reportar bugs de replicación ... 398

7 Optimización de MySQL ... 399

7.1 Panorámica sobre optimización ... 400

7.1.1 Limitaciones y soluciones de compromiso en el diseño de MySQL ... 400

7.1.2 Diseñar aplicaciones pensando en la portabilidad ... 401

7.1.3 Para qué hemos usado MySQL ... 402

7.1.4 El paquete de pruebas de rendimiento (benchmarks) de MySQL ... 402

7.1.5 Usar pruebas de rendimiento (benchmarks) propios ... 403

7.2 Optimizar sentencias SELECT y otras consultas ... 404

7.2.1 Sintaxis de EXPLAIN (Obtener información acerca de un SELECT) ... 404

7.2.2 Estimar el renidimiento de una consulta ... 412

7.2.3 Velocidad de las consultas SELECT ... 412

7.2.4 Optimización de las cláusulas WHERE por parte de MySQL ... 413

7.2.5 Optimización de rango ... 414

7.2.6 Index Merge Optimization ... 417

7.2.7 Cómo optimiza MySQL IS NULL ... 420

7.2.8 Cómo MySQL optimiza DISTINCT ... 421

7.2.9 Cómo optimiza MySQL los LEFT JOIN y RIGHT JOIN ... 421

7.2.10 Cómo optimiza MySQL ORDER BY ... 422

7.2.11 Cómo optimiza MySQL los GROUP BY ... 424

7.2.12 Cómo optimiza MySQL las cláusulas LIMIT ... 425

7.2.13 Cómo evitar lecturas completas de tablas ... 426

7.2.14 Velocidad de la sentencia INSERT ... 426

7.2.15 Velocidad de las sentencias UPDATE ... 428

(7)

vii

7.2.17 Otros consejos sobre optimización ... 428

7.3 Temas relacionados con el bloqueo ... 431

7.3.1 Métodos de bloqueo ... 431

7.3.2 Cuestiones relacionadas con el bloqueo (locking) de tablas ... 433

7.4 Optimizar la estructura de una base de datos ... 434

7.4.1 Elecciones de diseño ... 434

7.4.2 Haga sus datos lo más pequeños posibles ... 435

7.4.3 Índices de columna ... 436

7.4.4 Índices de múltiples columnas ... 436

7.4.5 Cómo utiliza MySQL los índices ... 437

7.4.6 La caché de claves de MyISAM ... 439

7.4.7 Cómo cuenta MySQL las tablas abiertas ... 444

7.4.8 Cómo abre y cierra tablas MySQL ... 444

7.4.9 Desventajas de crear muchas tablas en la misma base de datos ... 445

7.5 Optimización del servidor MySQL ... 445

7.5.1 Factores de sistema y afinamientos de parámetros de arranque ... 445

7.5.2 Afinar parámetros del servidor ... 446

7.5.3 Vigilar el rendimiento del optimizador de consultas ... 449

7.5.4 Efectos de la compilación y del enlace en la velocidad de MySQL ... 449

7.5.5 Cómo utiliza MySQL la memoria ... 451

7.5.6 Cómo usa MySQL las DNS ... 452

7.6 Cuestiones relacionadas con el disco ... 452

7.6.1 Utilizar enlaces simbólicos ... 453

8 Programas cliente y utilidades MySQL ... 457

8.1 Panorámica de scripts y utilidades del lado del cliente ... 457

8.2 myisampack, el generador de tablas comprimidas de sólo lectura de MySQL ... 459

8.3 La herramienta intérprete de comandos mysql ... 465

8.3.1 Comandos mysql ... 471

8.3.2 Ejecutar sentencias SQL desde un fichero de texto ... 475

8.3.3 Sugerencias acerca de mysql ... 475

8.4 Administrar un servidor MySQL con mysqladmin ... 477

8.5 La utilidad mysqlbinlog para registros binarios ... 481

8.6 El programa mysqlcheck para mantener y reparar tablas ... 485

8.7 El programa de copia de seguridad de base de datos mysqldump ... 488

8.8 El programa de copias de seguridad de base de datos mysqlhotcopy ... 494

8.9 El programa para importar datos mysqlimport ... 496

8.10 Mostrar bases de datos, tablas y columnas con mysqlshow ... 498

8.11 perror, explicación de códigos de error ... 500

8.12 La utilidad replace de cambio de cadenas de caracteres ... 500

9 Estructura de lenguaje ... 503 9.1 Valores literales ... 503 9.1.1 Cadenas de caracteres ... 503 9.1.2 Números ... 505 9.1.3 Valores hexadecimales ... 505 9.1.4 Valores booleanos ... 506 9.1.5 Valores de bits ... 506 9.1.6 Valores NULL ... 506

9.2 Nombres de bases de datos, tablas, índices, columnas y alias ... 507

9.2.1 Cualificadores de los identificadores ... 508

9.2.2 Sensibilidad a mayúsuclas y minúsculas de identificadores ... 508

9.3 Variables de usuario ... 510

9.4 Variables de sistema ... 511

9.4.1 Variables estructuradas de sistema ... 513

9.5 Sintaxis de comentarios ... 514

9.6 Tratamiento de palabras reservadas en MySQL ... 515

10 Soporte de conjuntos de caracteres ... 519

10.1 Conjuntos de caracteres y colaciones en general ... 520

(8)

MySQL 5.0 Reference Manual

10.3 Determinar el conjunto de caracteres y la colación por defecto ... 522

10.3.1 Conjunto de caracteres y colación del servidor ... 522

10.3.2 Conjuntos de caracteres y colaciones de la base de datos ... 522

10.3.3 Conjunto de caracteres y colación de tabla ... 523

10.3.4 Conjunto de caracteres y colación de columnas ... 524

10.3.5 Ejemplos de asignación de conjunto de caracteres y colación ... 524

10.3.6 Conjunto de caracteres y colación de la conexión ... 525

10.3.7 Conjunto de caracteres y colación de columnas “carácter” ... 527

10.3.8 Usar COLLATE en sentencias SQL ... 528

10.3.9 Precedencia de la cláusula COLLATE ... 529

10.3.10 Operador BINARY ... 529

10.3.11 Casos especiales en los que determinar la colación es complicado ... 529

10.3.12 A cada colación un conjunto de caracteres correcto ... 530

10.3.13 Un ejemplo del efecto de una colación ... 530

10.4 Efectos del soporte de conjuntos de caracteres ... 531

10.4.1 Cadenas de caracteres de resultado ... 531

10.4.2 CONVERT() ... 531

10.4.3 CAST() ... 532

10.4.4 Sentencias SHOW ... 532

10.5 Soporte Unicode ... 534

10.6 UTF8 para metadatos ... 534

10.7 Compatibilidad con otros SGBDs (Sistemas gestores de bases de datos) ... 535

10.8 Formato del nuevo fichero de conjunto de caracateres ... 536

10.9 Conjunto de caracteres nacional ... 536

10.10 Conjuntos de caracteres y colaciones que soporta MySQL ... 536

10.10.1 Conjuntos de caracteres Unicode ... 537

10.10.2 Conjuntos de caracteres de Europa occidental ... 539

10.10.3 Conjuntos de caracteres de Europa central ... 540

10.10.4 Conjuntos de caracteres del sur de Europa y de Oriente Medio ... 541

10.10.5 Conjuntos de caracteres bálticos ... 541

10.10.6 Conjuntos de caracteres cirílicos ... 542

10.10.7 Conjuntos de caracteres asiáticos ... 542

11 Tipos de columna ... 545

11.1 Panorámica de tipos de columna ... 546

11.1.1 Panorámica de tipos numéricos ... 546

11.1.2 Panorámica de tipos de fechas y hora ... 549

11.1.3 Panorámica de tipos de cadenas de caracteres ... 550

11.2 Tipos numéricos ... 553

11.3 Tipos de fecha y hora ... 556

11.3.1 Los tipos de datos DATETIME, DATE y TIMESTAMP ... 557

11.3.2 El tipo TIME ... 561

11.3.3 El tipo de datos YEAR ... 562

11.3.4 Efecto 2000 (Y2K) y tipos de datos ... 563

11.4 Tipos de cadenas de caracteres ... 563

11.4.1 Los tipos CHAR y VARCHAR ... 563

11.4.2 Los tipos BINARY y VARBINARY ... 564

11.4.3 Los tipos BLOB y TEXT ... 565

11.4.4 El tipo de columna ENUM ... 566

11.4.5 El tipo SET ... 567

11.5 Requisitos de almacenamiento según el tipo de columna ... 569

11.6 Escoger el tipo de columna correcto ... 571

11.7 Usar tipos de columnas de otros motores de bases de datos ... 571

12 Funciones y operadores ... 573

12.1 Operadores ... 574

12.1.1 Precedencias de los operadores ... 574

12.1.2 Paréntesis ... 574

12.1.3 Funciones y operadores de comparación ... 574

(9)

ix

12.2 Funciones de control de flujo ... 581

12.3 Funciones para cadenas de caracteres ... 582

12.3.1 Funciones de comparación de cadenas de caracteres ... 593

12.4 Funciones numéricas ... 596

12.4.1 Operadores aritméticos ... 596

12.4.2 Funciones matemáticas ... 597

12.5 Funciones de fecha y hora ... 604

12.6 Qué calendario utiliza MySQL ... 620

12.7 Funciones de búsqueda de texto completo (Full-Text) ... 621

12.7.1 Búsquedas booleanas de texto completo (Full-Text) ... 623

12.7.2 Búsquedas de texto completo (Full-Text) con expansión de consulta ... 625

12.7.3 Limitaciones de las búsquedas de texto completo (Full-Text) ... 626

12.7.4 Afinar búsquedas de texto completo (Full-Text) con MySQL ... 626

12.7.5 Cosas por hacer en búsquedas de texto completo (Full-Text) ... 628

12.8 Funciones y operadores de cast ... 628

12.9 Otras funciones ... 631

12.9.1 Funciones bit ... 631

12.9.2 Funciones de cifrado ... 632

12.9.3 Funciones de información ... 635

12.9.4 Funciones varias ... 640

12.10 Funciones y modificadores para cláusulas GROUP BY ... 643

12.10.1 Funciones (de agregación) de GROUP BY ... 643

12.10.2 Modificadores de GROUP BY ... 647

12.10.3 GROUP BY con campos escondidos ... 649

13 Sintaxis de sentencias SQL ... 651

13.1 Sentencias de definición de datos (Data Definition Statements) ... 651

13.1.1 Sintaxis de ALTER DATABASE ... 651

13.1.2 Sintaxis de ALTER TABLE ... 652

13.1.3 Sintaxis de CREATE DATABASE ... 656

13.1.4 Sintaxis de CREATE INDEX ... 656

13.1.5 Sintaxis de CREATE TABLE ... 658

13.1.6 Sintaxis de DROP DATABASE ... 668

13.1.7 Sintaxis de DROP INDEX ... 668

13.1.8 Sintaxis de DROP TABLE ... 669

13.1.9 Sintaxis de RENAME TABLE ... 669

13.2 Sentencias de manipulación de datos (Data Manipulation Statements) ... 670

13.2.1 Sintaxis de DELETE ... 670

13.2.2 Sintaxis de DO ... 672

13.2.3 Sintaxis de HANDLER ... 672

13.2.4 Sintaxis de INSERT ... 674

13.2.5 Sintaxis de LOAD DATA INFILE ... 679

13.2.6 Sintaxis de REPLACE ... 687

13.2.7 Sintaxis de SELECT ... 688

13.2.8 Sintaxis de subconsultas ... 696

13.2.9 Sintaxis de TRUNCATE ... 706

13.2.10 Sintaxis de UPDATE ... 706

13.3 Sentencias útiles de MySQL ... 708

13.3.1 Sintaxis de DESCRIBE (Información acerca de las columnas) ... 708

13.3.2 Sintaxis de USE ... 709

13.4 Comandos transaccionales y de bloqueo de MySQL ... 709

13.4.1 Sintaxis de START TRANSACTION, COMMIT y ROLLBACK ... 709

13.4.2 Sentencias que no se pueden deshacer ... 710

13.4.3 Sentencias que causan una ejecución (commit) implícita ... 710

13.4.4 Sintaxis de SAVEPOINT y ROLLBACK TO SAVEPOINT ... 711

13.4.5 Sintaxis de LOCK TABLES y UNLOCK TABLES ... 711

13.4.6 Sintaxis de SET TRANSACTION ... 714

13.5 Sentencias de administración de base de datos ... 714

(10)

Hasta aquí la previsualización.

Puedes descargar este documento completo en

Referencias

Documento similar