Prefacio
Introducción
- ¿Cómo leer este libro?
- Convenciones usadas en el libro
- Ponerse en contacto
Visión General
- Arquitectura
- Componentes de MySQL
- Convenciones de nombres de bases de datos
Instalación del software
- Dónde buscar el software del servidor
- Instalar desde paquetes
- Compilar e Instalar desde código fuente
- ¿Cuál es más recomendable?
- XAMPP y software de terceros
- Comprobar si los servicios MariaDB y APACHE están habilitados
- Habilitando los servicios manualmente
- Habilitando los servicios automáticamente
Configuración
- Cómo evitar los accesos no seguros
- Administrar MySQL/MariaDB con un usuario diferente de
root - Clientes para MySQL/MariaDB
Creación de una base de datos
- Estableciendo una conexión a tu servidor de base de datos
- Identificando una base de datos
- Creando la base de datos en MySQL
- ¿Cómo eliminar una base de datos?
- Volviendo a crear el ejemplo
- Definición del conjunto de caracteres y criterios de ordenamiento
- Estableciendo la base de datos predeterminada
Creación de tablas
- Definiendo la estructura de una tabla
- Mostrar las tablas pertenecientes a una base de datos
- Visualizar la estructura de una tabla
- Otro ejemplo sencillo de definición de tabla
- Una breve manipulación de tablas
- Valores por defecto ocultos en una tabla
Modificación de la estructura de las tablas
- Haciendo respaldos antes de modificar tablas en sistemas de producción
- Modificaciones que afectan tablas
- Modificaciones que afectan índices
- Eliminando una tabla
Insertando datos en tablas
- Sintaxis del comando
INSERT INTO - Insertar especificando la lista de campos
- Insertando múltiples registros
- Usar
INSERT INTOsin especificar el encabezado de tabla - Insertar valores por defecto de una columna
- Insertando los valores de la clave primaria
- Claves foráneas y tablas relacionadas
- Cómo definir una restricción de clave foránea
- Insertar datos en tablas relacionadas
- Consultando la información relacionada
- Prioridad de ejecución durante el uso del comando
INSERT
Selects sobre tablas
- Scripts de SQL
- Cómo ejecutar un script de SQL
- Contenido del script capitulo_8.sql
- Copiando las tablas necesarias
- Verificando la estructura de las tablas agregadas con el script capitulo_8.sql
- El comando
SELECT..FROMtabla - Cláusula
LIMIT - Especificando una lista de campos
- Cláusula
WHERE - Ordenamiento sobre el conjunto resultante,
ORDER BY - Consultando tablas que tienen claves foráneas
- Combinación de tablas.
- Resumen de cálculos a nivel horizontal y vertical.
- Agrupamiento
- Otras expresiones de comparación.
- operador LIKE.
Índices
- Justificación del uso de índices
- Operaciones donde MySQL hace uso de índices.
- Cantidad de columnas por índices
- Indices prefijo
- Indices
FULLTEXT - Indices de múltiples columnas
- Cómo se crean los índices
- Añadir claves foráneas en la creación de las tablas
- Cómo añadir claves foráneas con una modificación de la estructura de la tabla
- Eliminando claves foráneas
- Uso del comando
CREATE INDEXpara crear los otros tipos de índices.
Actualizando datos
- Sintaxis básica del comando
UPDATE - Restringiendo el comando
UPDATEcon la cláusulaWHERE - Ordenamiento de las actualizaciones con la cláusula
ORDER BY - Limitando las actualizaciones con la cláusula
LIMIT - Actualización con múltiples tablas
Eliminando datos
- Sintaxis del comando
DELETEpara una sola tabla - Ejemplo de eliminación de un registro
- Eliminando filas en múltiples tablas
- Sintaxis para un
DELETEen múltiples tablas - Ejemplo con el comando
DELETEpara múltiples tablas
Operadores relacionales
- ¿Cuáles son estos operadores?
- Restringir o
WHERE - Proyectar o especificar una lista de campos
- Registros duplicados
- Producto cartesiano
- Unión
- Renombrar o
AS - Intersección o
INTERSECT - Diferencia o
EXCEPT
Funcionamiento interno del comando SELECT
- La cláusula
SELECT - La cláusula
FROM - La cláusula
WHERE - La cláusula
GROUP BY - Cláusula HAVING
- Consideraciones de la omisión de cláusulas
- Ejemplo del funcionamiento de un comando
SELECT
Joins
- El Operador
JOIN - Cláusula
JOIN..ON - Joins que utilizan campos comunes nombrados idénticamente
- Cláusula
JOIN..USING - Cláusula
NATURAL JOIN - Reescribiendo algunos ejemplos anteriores con cláusulas
JOIN - Cláusula
LEFT JOIN - Actualización de tablas mediante joins
- Revirtiendo el cambio de nombre de
category_idporiden la tablacategories - Eliminando filas en múltiples tablas usando
JOIN - Cláusula
RIGHT JOIN
Subconsultas
- Subconsulta escalar
- Subconsultas de columna
- Subconsultas de tabla
Funciones para manejo de cadenas de caracteres
- Formateando cadenas de caracteres
- Concatenando cadenas
- Concatenar especificando un separador
- Formateando un número
- Convirtiendo cadenas en mayúsculas o minúsculas
- Eliminación de espacios redundantes
- Relleno de cadenas de caracteres
- Extrayendo texto
- Búsqueda de cadenas
- Longitud de cadenas
- Comparación y búsquedas de cadenas de caracteres
- Reemplazando e insertando dentro de cadenas de caracteres
- Conversiones de tipos de cadenas
- Compresión de cadenas
Funciones para manejo de fechas y horas
- Tipos de datos temporales
- Valores no válidos
- Propiedades de inicialización y actualización automática para
TIMESTAMPyDATETIME - Funciones que proporcionan la fecha y hora actual
- Funciones que proporcionan partes de fecha a partir de la fecha actual
- Tiempo de tipo
UNIX - Descomponer una fecha completa en sus componentes
- Formatear la fecha y hora
- Ajuste de la zona horaria
- Sumar o restar intervalos de tiempo a las fechas
- Determinar la cantidad de segundos en una hora dada
- Períodos
- Comparación de fechas y horas
Funciones de agrupamiento y cálculos horizontales
- Qué es una función de agrupamiento
- Efectuando un conteo de registros
- Efectuando la sumatoria de los campos
- Determinar el promedio
- Obtención de valores mínimos y máximos
- Concatenando grupos
- Cálculos horizontales y las funciones numéricas
- Redondeo de cifras
- Truncar números
- Eliminación de números negativos
- Generación de números aletorios
Creación de cuentas de usuario y privilegios
- Algunos aspectos de seguridad
- El sistema de privilegio de acceso de MySQL
- Privilegios de acceso de las cuentas
- Especificación de los nombres de las cuentas
- Verificación de la conexión
- Verificación de requerimientos
- Cambios de privilegios
- Manejo de cuentas de usuario
- Añadiendo cuentas de usuario
- Visualizando los privilegios asignados
- Cuentas anónimas
- Remover cuentas de usuario
- Restringiendo el acceso
- Restringiendo a nivel de columnas
- Cambio de contraseñas
- Renombrar una cuenta de usuario
- Roles de usuario
Respaldando y restaurando la base de datos
- ¿Qué significa respaldar y restaurar una base de datos?
- Respaldando información usando MySQL o MariaDB
- Respaldando todas las bases de datos
- Respaldar sólo algunas bases de datos
- Creando una respaldo de base de datos en blanco
- Respaldando una tabla
- ¿Porque es necesario prepararnos para recuperar una bases de datos?
- Restaurando desde un respaldo