contenido_978-2-7460-8388-2

12
Prefacio 1. Objetivos de este libro 13 2. Principales temas tratados en este libro 13 3. ¿ A quién va dirigido este libro ? 14 4. Requisitos 14 Introducción a MySQL 1. Introducción a las bases de datos relacionales 17 1.1 Bases de datos y sistemas de gestión de bases de datos 17 1.2 SGBD relacionales 19 1.3 Características de un verdadero SGBDR 21 1.4 Conociendo en profundidad el modelo relacional 22 1.5 Modo transaccional 23 1.5.1 Concepto de transacción 23 1.5.2 Órdenes SQL que generan COMMIT implícitos 25 1.6 Motivación y uso de restricciones de integridad 26 2. MySQL 28 2.1 Diferentes versiones de MySQL 29 2.1.1 La versión libre de MySQL 29 2.1.2 Las versiones de pago de MySQL 30 2.1.3 Versiones empaquetadas de MySQL 32 2.2 Diferentes plataformas y API 34 2.3 Variedad de motores 34 Instalación y toma de contacto MySQL 5 (versiones 5.1 a 5.6) Guía de referencia del desarrollador 1/12 © Ediciones ENI www.ediciones-eni.com

Upload: antonioreacifuentes

Post on 16-Nov-2015

4 views

Category:

Documents


2 download

DESCRIPTION

mmm

TRANSCRIPT

  • Prefacio

    1. Objetivos de este libro 13

    2. Principales temas tratados en este libro 13

    3. A quin va dirigido este libro ? 14

    4. Requisitos 14

    Introduccin a MySQL

    1. Introduccin a las bases de datos relacionales 17

    1.1 Bases de datos y sistemas de gestin de bases de datos 171.2 SGBD relacionales 191.3 Caractersticas de un verdadero SGBDR 211.4 Conociendo en profundidad el modelo relacional 221.5 Modo transaccional 23

    1.5.1 Concepto de transaccin 231.5.2 rdenes SQL que generan COMMIT implcitos 25

    1.6 Motivacin y uso de restricciones de integridad 26

    2. MySQL 28

    2.1 Diferentes versiones de MySQL 292.1.1 La versin libre de MySQL 292.1.2 Las versiones de pago de MySQL 302.1.3 Versiones empaquetadas de MySQL 32

    2.2 Diferentes plataformas y API 342.3 Variedad de motores 34

    Instalacin y toma de contacto

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    1/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • 1. Instalar el software 37

    1.1 Instalacin del paquete WampServer para Windows 381.2 Instalacin de un servidor MySQL autnomo en Windows 40

    1.2.1 Requerimientos del sistema para Windows 401.2.2 Instalacin de la versin 5.5 con Windows Installer 41

    1.3 Instalacin de un servidor MySQL en Linux (Ubuntu) 481.4 Y si no se instala MySQL! ? 49

    2. Documentacin y bases de datos de ejemplo 50

    2.1 Documentacin 502.2 Bases de datos y tablas de ejemplo 502.3 Inicio y pruebas 53

    2.3.1 En Linux/Unix 532.3.2 En Windows 54

    Herramientas de desarrollo

    1. Introduccin 59

    2. Cliente MySQL estndar 60

    3. phpMyAdmin 63

    3.1 Introduccin 633.2 Requerimientos 643.3 Funcionalidades principales 653.4 Introduccin al uso de phpMyAdmin 66

    4. MySQL Workbench 69

    4.1 Introduccin a MySQL Workbench 694.2 Desarrollo SQL 70

    4.2.1 Visualizacin y modificacin de tablas en modo grfico 704.2.2 Gestin de scripts SQL 71

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    2/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • 4.2.3 Gestin de conexiones 73

    5. Navicat 76

    5.1 Introduccin a Navicat 765.2 Funcionalidades principales de Navicat 77

    6. SQLYog 80

    6.1 Introduccin a SQLYog 806.2 Funcionalidades principales de SQLYog 81

    7. SQL Developer 82

    7.1 Introduccin a SQL Developer 827.2 Funcionalidades principales de SQL Developer 837.3 Configuracin de SQL Developer para MySQL 84

    8. Tabla comparativa de herramientas cliente MySQL 87

    Primeros pasos

    1. Conectarse 89

    1.1 Parmetros de conexin 901.2 Conexin con el cliente MySQL estndar 911.3 Conexin automtica 93

    2. Gestionar esquemas y bases de datos 94

    2.1 Introduccin a los esquemas de datos 942.2 Cambiar el esquema actual 962.3 Crear/eliminar/modificar esquemas 97

    3. Ejecutar comandos SQL 98

    3.1 Ejecutar comandos interactivamente 983.2 Ejecutar scripts SQL 100

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    3/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • Tipos de datos y tablas MySQL

    1. Introduccin 103

    2. Tipos de datos 104

    2.1 Los tipos numricos 1042.2 Los tipos temporales 1082.3 Los tipos caracteres 110

    3. Gestin de tablas 114

    3.1 Creacin de tablas 1143.1.1 Sintaxis completa de creacin de tablas 1143.1.2 Creacin de tablas sencillas 1173.1.3 Creacin de tablas con restricciones de integridad 119

    3.2 Modificacin de la estructura de las tablas 1213.2.1 Renombrado de tabla y gestin de columnas 1213.2.2 Gestin de restricciones de integridad con ALTER TABLE 123

    3.3 Rellenando tablas con INSERT 1243.4 Borrado de tablas 126

    4. Caractersticas del almacenamiento de tablas 127

    4.1 Los distintos motores de almacenamiento 1274.2 Parmetros de almacenamiento 129

    Transferencia de datos

    1. Introduccin a la transferencia de datos 131

    2. Extraccin de datos a partir de MySQL 132

    2.1 Exportacin con MySQL Workbench 1322.2 Exportacin mediante phpMyAdmin 1352.3 El comando mysqldump 138

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    4/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • 3. Carga de datos en MySQL 141

    3.1 Importacin de datos con MySQL Workbench 1413.2 Importacin con phpMyAdmin 1443.3 Importacin por lnea de comandos 146

    3.3.1 El comando LOAD DATA INFILE 1463.3.2 El comando mysqlimport 147

    Consulta de datos: SELECT

    1. Introduccin 149

    2. Orden SELECT sencilla 150

    2.1 Mostrar columnas o valores 1512.2 Clusula WHERE y condiciones lgicas 1532.3 Ejercicios prcticos sobre SELECT sencillos 159

    3. Utilizar operadores y expresiones 163

    3.1 Operadores y expresiones 1633.2 Ejercicios prcticos de SELECT con operadores 165

    Uso de funciones nativas de SQL

    1. Introduccin 175

    2. Funciones matemticas 176

    2.1 Presentacin de las distintas funciones matemticas 1762.2 Ejercicios prcticos de funciones matemticas 180

    3. Funciones de tratamiento de cadenas de caracteres 183

    3.1 Presentacin de las diferentes funciones de tratamiento de cadenas 1833.2 Ejercicios prcticos de cadenas de caracteres 191

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    5/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • 4. Funciones de tratamiento de DATE 194

    4.1 Presentacin de las diferentes funciones DATE 1944.2 Ejercicios prcticos de funciones DATE 209

    5. Funciones de conversin 211

    Metadatos

    1. La importancia de los metadatos 215

    2. Visin general de los metadatos con MySQL Workbench 217

    3. Los comandos SHOW 220

    4. Las tablas de referencia estndar de MySQL 223

    4.1 El esquema Information_schema 2244.2 El resto de esquemas MySQL que contienen metadatos 228

    Otras rdenes SQL distintas de SELECT

    1. Introduccin 231

    2. rdenes SQL que modifican el contenido de las tablas 232

    2.1 Orden INSERT 2322.2 La orden REPLACE 2372.3 La orden UPDATE 2382.4 La orden DELETE 2412.5 La orden TRUNCATE 243

    3. rdenes SQL que afectan a las transacciones y al bloqueo 245

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    6/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • 3.1 Transacciones y subtransacciones 2453.2 Bloqueo explcito de tablas 247

    4. Otras rdenes SQL tiles para el desarrollo 249

    4.1 rdenes para configurar/conocer el entorno 2494.1.1 DESCRIBE 2494.1.2 Visualizacin de metadatos con SHOW 2504.1.3 Gestin de variables 251

    4.2 rdenes de mantenimiento de sesiones 2534.3 rdenes de mantenimiento de tablas 254

    Subconsultas y JOINS

    1. Introduccin 257

    2. Subconsultas 257

    2.1 Operadores especficos ANY, IN y SOME 2592.2 Subconsulta EXISTS 2602.3 El operador ALL 2602.4 Subconsultas multicolumna 2612.5 Subconsultas correlacionadas (correlated subqueries) 2622.6 Ejercicios prcticos sobre subconsultas 264

    3. JOINS 268

    3.1 JOIN Cruzada 2683.2 Equijoin (Join de equivalencia) 2703.3 Autojoin o join reflexiva 2733.4 Joins externas 2743.5 Algunos ejercicios prcticos sobre joins 279

    Procedimientos almacenados

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    7/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • 1. La utilidad del lenguaje SQL ampliado 285

    2. Presentacin de los procedimientos almacenados 286

    3. Gestin de procedimientos almacenados 287

    3.1 Obtener informacin 2873.2 Ejecutar procedimientos almacenados 2883.3 Crear procedimientos almacenados 2893.4 Eliminar y modificar procedimientos almacenados 2933.5 Seguridad de acceso de procedimientos almacenados 294

    3.5.1 Permisos relativos a la gestin de procedimientos almacenados 2943.5.2 Contextos de seguridad 296

    3.6 Triggers 297

    4. Programacin de procedimientos almacenados 300

    4.1 Comentarios 3004.2 Bloque de instrucciones y variables 3024.3 Gestin de variables 302

    4.3.1 Gestin de variables en un procedimiento almacenado 3024.3.2 Variables en modo comando (SQL) 303

    4.4 Instrucciones de control 3074.4.1 Condicionales 3074.4.2 Bucles 309

    4.5 Gestin de excepciones 3174.5.1 Definiciones 3174.5.2 Gestin de errores en MySQL 3174.5.3 Declaracin de condiciones 3184.5.4 Declaracin de gestores 3194.5.5 Algunos ejemplos de gestin de errores 320

    4.6 SELECT con cursores 3244.6.1 Utilidad de los cursores 3244.6.2 Principios de uso 3254.6.3 Modelo general de cdigo de un SELECT con cursor 328

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    8/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • Seguridad y permisos

    1. El sistema de permisos de MySQL 331

    1.1 Los distintos permisos de MySQL 3321.2 Diferentes niveles de permisos 3351.3 Creacin de usuarios 3381.4 Algunas limitaciones del sistema de privilegios 3391.5 El caso de los pseudoroles administrativos (administrative roles) 339

    2. Informacin y metadatos de los privilegios 341

    3. Gestin de privilegios con GRANT y REVOKE 343

    3.1 Comandos GRANT y REVOKE 3433.2 Diferentes niveles de GRANT 344

    MySQL y PHP

    1. Introduccin a PHP 347

    1.1 Qu es PHP ? 3471.2 Instalacin de PHP 3481.3 Extensiones de PHP 3491.4 Utilidad de PHP con MySQL 350

    2. Extensin mysql de PHP 351

    2.1 Las funciones de la extensin mysql 3512.2 Primer ejemplo de cdigo: conectarse y actualizar 3542.3 Segundo ejemplo de cdigo: consultar filas 358

    3. La extensin MySQLi de PHP 360

    3.1 Presentacin de funciones 3603.2 Ejemplo de cdigo sencillo con MySQLi 3623.3 Ejemplo de cdigo avanzado utilizando rdenes SQL con parmetros 363

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    9/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • 4. La extensin PDO de MySQL 365

    4.1 Qu es PDO ? 3654.2 Utilizacin de PDO 366

    MySQL y Java

    1. Introduccin a Java 369

    1.1 Qu es Java ? 3691.2 Algunas caractersticas de la plataforma estndar 3701.3 Instalacin del JDK 372

    1.3.1 Instalacin en Ubuntu 3731.3.2 Instalacin en Windows 374

    2. Presentacin de JDBC 376

    2.1 Qu es JDBC ? 3762.2 Comprender JDBC 3772.3 Drivers JDBC 379

    3. Usar MySQL con JDBC 381

    3.1 Instalacin del driver JDBC para MySQL 3813.1.1 Hacer referencia al jar en Eclipse 3813.1.2 Hacer referencia al jar en NetBeans 3823.1.3 Hacer referencia al jar en el intrprete de comandos 382

    3.2 Establecer una conexin con una base de datos MySQL 3833.3 Ejecutar una orden de seleccin 386

    3.3.1 Primer ejemplo de ejecucin y de tratamiento 3873.3.2 Interfaz Statement 3893.3.3 Interfaz ResultSet 390

    3.4 Modificar, eliminar e insertar datos 3973.4.1 Ejecutar una sentencia UPDATE o DELETE 3973.4.2 Insertar un registro 398

    3.5 Prepared statements 4003.6 Ejecucin de procedimientos y funciones almacenados 403

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    10/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • 3.6.1 Ejecucin de un procedimiento que devuelve un ResultSet 4033.6.2 Ejecucin de un procedimiento con parmetros OUT 4053.6.3 Ejecutar una funcin almacenada 408

    3.7 Conclusin 409

    Complementos tiles y buenas prcticas

    1. Introduccin 411

    2. El ciclo de vida del desarrollo de aplicaciones 411

    2.1 Recordatorio de la tipologa de bases de datos 4112.2 Buenas prcticas relativas al uso de diferentes bases de datos empresariales 412

    3. Otros objetos tiles para el desarrollador 414

    3.1 Vistas 4143.2 ndices 416

    4. Seguridad de aplicaciones 418

    4.1 La seguridad desde la perspectiva del desarrollo 4184.2 Principio del mnimo privilegio 4184.3 Principales amenazas que afectan a las bases de datos 4194.4 Inyeccin SQL 4224.5 Copia de seguridad de tablas 424

    5. Rendimiento de aplicaciones 425

    5.1 Introduccin 4255.2 Optimizacin del modelo de datos 4255.3 Indexacin 4275.4 Optimizacin del almacenamiento fsico 428

    5.4.1 Reorganizacin de datos en tablas 4285.4.2 Particionado 4295.4.3 Archivado 4305.4.4 Reorganizacin de datos en los servidores 431

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    11/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html

  • 5.5 Optimizacin de sentencias SQL 4315.5.1 Sentencias SQL preparadas 4315.5.2 El comando Explain 4325.5.3 El comando ANALYZE 435

    Anexos

    1. Lista de tipos INTERVAL utilizados en funciones de DATE 437

    2. Lista de opciones del comando mysql 438

    3. Lista de MySQL states 443

    4. Lista de opciones del comando mysqldump 448

    5. Lista de opciones del comando mysqlimport 453

    ndice 457

    MySQL 5 (versiones 5.1 a 5.6)Gua de referencia del desarrollador

    12/12 Ediciones ENIwww.ediciones-eni.com

    http://www.ediciones-eni.com/libros/mysql-5-versiones-5-1-a-5-6-guia-de-referencia-del-desarrollador/.3154769eb5f5156f5c97e40b004748a5.html