Actualizado el 12 de Marzo del 2019 (Publicado el 14 de Enero del 2017)
2.677 visualizaciones desde el 14 de Enero del 2017
548,3 KB
72 paginas
Creado hace 18a (30/01/2007)
Bases de datos
en MySQL
Luis Alberto Casillas Santillán
Marc Gibert Ginestà
Óscar Pérez Mora
P06/M2109/02151
© FUOC • P06/M2109/02151
Índice
Bases de datos en MySQL
Introducción .............................................................................................. 5
Objetivos ..................................................................................................... 6
1. Características de MySQL .................................................................. 7
1.1. Prestaciones ...................................................................................... 7
1.2. Limitaciones ..................................................................................... 8
2. Acceso a un servidor MySQL ............................................................. 9
2.1. Conectándose con el servidor .......................................................... 9
2.1.1. Servidores y clientes ............................................................... 9
2.1.2. Conectarse y desconectarse .................................................... 10
2.2. Introducción de sentencias .............................................................. 10
2.2.1. Sentencias ............................................................................... 11
2.2.2. Comandos en múltiples líneas ............................................... 11
2.2.3. Cadenas de caracteres ............................................................. 12
2.2.4. Expresiones y variables .......................................................... 13
2.2.5. Expresiones ............................................................................. 14
2.3. Proceso por lotes ............................................................................... 14
2.4. Usar bases de datos ........................................................................... 17
3. Creación y manipulación de tablas ................................................ 20
3.1. Crear tablas ....................................................................................... 20
3.2. Tipos de datos ................................................................................... 23
3.2.1. Tipos de datos numéricos ...................................................... 23
3.2.2. Cadenas de caracteres ............................................................. 24
3.2.3. Fechas y horas ........................................................................ 25
3.3. Modificar tablas ................................................................................ 25
3.3.1. Agregar y eliminar columnas ................................................. 25
3.3.2. Modificar columnas ............................................................... 26
3.4. Otras opciones .................................................................................. 27
3.4.1. Copiar tablas .......................................................................... 27
3.4.2. Tablas temporales ................................................................... 27
4. Consultas ............................................................................................... 28
4.1. La base de datos demo ...................................................................... 28
4.2. Consultar información ..................................................................... 29
4.2.1. Funciones auxiliares ............................................................... 30
4.2.2. La sentencia EXPLAIN ............................................................ 31
4.3. Manipulación de filas ....................................................................... 33
5. Administración de MySQL ................................................................ 35
5.1. Instalación de MySQL ....................................................................... 35
© FUOC • P06/M2109/02151
Bases de datos en MySQL
5.2. Usuarios y privilegios ........................................................................ 38
5.2.1. La sentencia GRANT .............................................................. 39
5.2.2. Especificación de lugares origen de la conexión ................... 40
5.2.3. Especificación de bases de datos y tablas ............................... 41
5.2.4. Especificación de columnas ................................................... 42
5.2.5. Tipos de privilegios ................................................................ 42
5.2.6. Opciones de encriptación ...................................................... 44
5.2.7. Limites de uso ........................................................................ 44
5.2.8. Eliminar privilegios ................................................................ 45
5.2.9. Eliminar usuarios ................................................................... 45
5.2.10. La base de datos de privilegios: mysql ................................. 45
5.3. Copias de seguridad .......................................................................... 48
5.3.1. mysqlhotcopy ........................................................................ 50
5.3.2. mysqldump ............................................................................ 50
5.3.3. Restaurar a partir de respaldos ............................................... 51
5.4. Reparación de tablas ......................................................................... 52
5.4.1. myisamchk ............................................................................. 54
5.5. Análisis y optimización .................................................................... 55
5.5.1. Indexación .............................................................................. 55
5.5.2. Equilibrio ................................................................................ 57
5.5.3. La cache de consultas de MySQL ........................................... 58
5.6. Replicación ....................................................................................... 59
5.6.1. Preparación previa .................................................................. 60
5.6.2. Configuración del servidor maestro ...................................... 60
5.6.3. Configuración del servidor esclavo ........................................ 61
5.7. Importación y exportación de datos ................................................ 62
5.7.1. mysqlimport ........................................................................... 63
5.7.2. mysqldump ............................................................................ 63
6. Clientes gráficos ................................................................................... 65
6.1. mysqlcc ............................................................................................. 65
6.2. mysql-query-browser ........................................................................ 66
6.3. mysql-administrator ......................................................................... 67
Resumen ...................................................................................................... 70
Bibliografía ................................................................................................ 71
© FUOC • P06/M2109/02151
Introducción
5
Bases de datos en MySQL
MySQL es un sistema gestor de bases de datos (SGBD, DBMS por sus siglas en
inglés) muy conocido y ampliamente usado por su simplicidad y notable ren-
dimiento. Aunque carece de algunas características avanzadas disponibles en
otros SGBD del mercado, es una opción atractiva tanto para aplicaciones co-
merciales, como de entretenimiento precisamente por su facilidad de uso y
tiempo reducido de puesta en marcha. Esto y su libre distribución en Internet
bajo licencia GPL le otorgan como beneficios adicionales (no menos impor-
tantes) contar con un alto grado de estabilidad y un rápido desarrollo.
Nota
Podremos utilizar la licencia
GPL de MySQL siempre que el
programa que lo use también
lo sea, en caso contrario se
debe adquirir la “licencia co-
mercial”, entre 250 y 500 €,
en el momento de escribir este
material.
MySQL está disponible para múltiples plataformas, la seleccionada para los
ejemplos de este libro es GNU/Linux. Sin embargo, las diferencias con cual-
quier otra plataforma son prácticamente nulas, ya que la herramienta utiliza-
da en este caso es el cliente mysql-client, que permite interactuar con un
servidor MySQL (local o remoto) en modo texto. De este modo es posible rea-
lizar todos los ejercicios sobre un servidor instalado localmente o, a través de
Internet, sobre un servidor remoto.
Para la realización de todas las actividades, es imprescindible que disponga-
mos de los datos de acceso del usuario administrador de la base de datos. Aun-
que en algunos de ellos los privilegios necesarios serán menores, para los
capítulos que tratan la administración del SGBD será imprescindible disponer
de las credenciales de administrador.
Nota
Las sentencias o comandos escritos por el usuario estarán en fuente monoespaciada, y las
palabras que tienen un significado especial en MySQL estarán en negrita. Es importante ha-
cer notar que estas últimas no siempre son palabras reservadas, sino comandos o sentencias
de mysql-client.
La versión de MySQL que se ha utilizado durante la redacción de este material, y
en los ejemplos, es la 4.1, la última versión estable en ese momento, aunque no
habrá ningún problema en ejecutarlos en versiones anteriores, hasta la 3.23.
© FUOC • P06/M2109/02151
6
Bases de datos en MySQL
Objetivos
Adquirir las habilidades y conocimientos de MySQL necesarios para utilizar y
administrar este SGBD (sistema gestor de bases de datos).
© FUOC • P06/M2109/02151
7
Bases de datos en MySQL
1. Características de MySQL
En este apartado enumeraremos las prestaciones que caracterizan a este SGBD,
así como las deficiencias de diseño, limitaciones o partes del estándar aún no
implementadas.
1.1. P
Comentarios de: Bases de datos en MySQL (0)
No hay comentarios