ContenidoIntroducción
¿Por qué aprender SQL?
¿Por qué utilizar este libro para hacer esto?
Estructura de este libro
Convenciones utilizadas en este libro
Utilizar los ejemplos de código
Capítulo 1. Un poco de historia
Introducción a las bases de datos
Sistemas de bases de datos no relacionales
El modelo relacional
Nomenclatura
¿Qué es SQL?
Clases de sentencias SQL
Un lenguaje no procedimental
Ejemplos SQL
¿Qué es MySQL?
¿Qué nos vamos a encontrar?
Capítulo 2. Crear e introducir información en una base de datos
Crear una base de datos MySQL
Utilizar la herramienta de líneas de comandos mysql
Sobre las cláusulas from desaparecidas
Tipos de datos MySQL
Datos de tipo carácter
Juegos de caracteres
Datos de tipo texto
Datos de tipo numérico
Datos de tipo indicación temporal
Crear tablas
Paso 1: Diseño
Paso 2: Refinamiento
Paso 3: Construir una sentencia SQL de manipulacióndel esquema de la base de datos
¿Qué es Null (Nulo)?
Introducir información y modificar tablas
Incluir datos
Generar datos clave numéricos
La sentencia insert
Actualizar datos
Eliminar o borrar datos
Cuando las sentencias correctas pueden acabar siendo perjudiciales
Clave primaria no única
Clave ajena inexistente
Vulneraciones de los valores de las columnas
Conversiones inválidas de fecha
El esquema del banco
Capítulo 3. Primeras consultas
Mecánica de las consultas
Cláusulas de consulta
La cláusula select
Alias de columnas
Eliminar duplicados
La cláusula from
Tablas
Tablas generadas en subconsultas
Vistas
Enlaces o vínculos entre tablas
Definir los alias de tablas
La cláusula where
Las cláusulas group by y having
La cláusula order by
Ordenación de menor a mayor (ascendente) y de mayora menor (descendente)
Ordenar mediante expresiones
Ordenar mediante los marcadores numéricos de posición
Ejercicios
Ejercicio 3.1
Ejercicio 3.2
Ejercicio 3.3
Ejercicio 3.4
Capítulo 4. Filtrado
Evaluación de las condiciones
Utilizar paréntesis
Utilizar el operador not
Construir una condición
Tipos de condiciones
Condiciones de igualdad
Condiciones de desigualdad
Modificar la información utilizando condiciones de igualdad
Condiciones en los rangos
El operador between
Rangos sobre cadenas
Condiciones de pertenencia
Utilización de subconsultas
Utilización de not in
Condiciones de correspondencia
Utilización de caracteres comodín
Utilización de expresiones regulares
NULL: Esa palabra de cuatro letras
Ejercicios prácticos
Ejercicio 4.1
Ejercicio 4.2
Ejercicio 4.3
Ejercicio 4.4
Capítulo 5. Consultar múltiples tablas
¿Qué es una unión?
Producto cartesiano
Uniones internas
La sintaxis de unión según el estándar ANSI
Unir tres o más tablas
Utilizar subconsultas como tablas
Utilizar la misma tabla dos veces
Autouniones
Uniones equivalentes versus uniones no equivalentes
Condiciones de unión versus condiciones de filtrado
Ejercicios prácticos
Ejercicio 5.1
Ejercicio 5.2
Ejercicio 5.3
Capítulo 6. Trabajar con conjuntos
Primera teoría de conjuntos
Poner en práctica la teoría de conjuntos
Operadores de conjuntos
El operador union
El operador intersect
El operador except
Normas de las operaciones de conjuntos
Clasificar u ordenar los resultados de las consultas compuestas
Prioridad de las operaciones de conjuntos
Ejercicios prácticos
Ejercicio 6.1
Ejercicio 6.2
Ejercicio 6.3
Capítulo 7. Generar, convertir y manipular la información
Trabajar con datos de tipo cadena
Generación de cadenas de caracteres
Incluir los apóstrofos
Incluir caracteres especiales
Manipulación de cadenas
Funciones de cadena de caracteres que devuelven números
Funciones de cadenas de caracteres que devuelven cadenas
Trabajar con información numérica
Realizar funciones aritméticas
Controlar la precisión de los números
Manejar datos con signo
Trabajar con datos de tipo fecha/hora
Tratar con las zonas horarias
Generar datos de tipo fecha/hora
Representaciones en cadena de datos de tipo fecha/hora
Conversiones de cadenas a tipo fecha
Funciones para generar fechas
Manipulación de los datos de tipo fecha/hora
Funciones de tipo fecha/hora que devuelven fechas
Funciones de tipo fecha/hora que devuelven cadenas
Funciones de tipo fecha/hora que devuelven números
Funciones de conversión
Ejercicios prácticos
Ejercicio 7.1
Ejercicio 7.2
Ejercicio 7.3
Capítulo 8. Agrupar y agregar
Conceptos de agrupación
Funciones de agregación
Grupos implícitos versus grupos explícitos
Contar valores distintos
Utilizar expresiones
Cómo se gestionan los nulos (nulls)
Generar grupos
Agrupar columnas únicas
Agrupar columnas múltiples
Agrupar mediante expresiones
Generar agregaciones extendidas
Agrupar condiciones de filtrado
Ejercicios prácticos
Ejercicio 8.1
Ejercicio 8.2
Ejercicio 8.3
Ejercicio 8.4 (crédito extra)
Capítulo 9. Subconsultas
¿Qué es una subconsulta?
Tipos de subconsultas
Subconsultas no correlacionadas
Subconsultas de columnas únicas y múltiples filas
El operador in
El operador all
El operador any
Subconsultas de múltiples columnas
Subconsultas correlacionadas
El operador exists
Manipulación de datos utilizando subconsultas correlacionadas
Cuándo utilizar las subconsultas
Subconsultas como fuentes de información
Construcción de tablas
Subconsultas orientadas a tareas
Subconsultas en las condiciones de filtrado
Subconsultas como generadores de expresiones
Resumen
Ejercicios prácticos
Ejercicio 9.1
Ejercicio 9.2
Ejercicio 9.3
Ejercicio 9.4
Capítulo 10. Volver a consultar las uniones (joins) de tablas
Uniones externas
Uniones externas por la izquierda versus uniones externaspor la derecha
Uniones externas de tres tablas
Autouniones externas
Uniones cruzadas
Uniones naturales
Ejercicios prácticos
Ejercicio 10.1
Ejercicio 10.2
Ejercicio 10.3
Ejercicio 10.4 ("para subir nota")
Capítulo 11. Lógica condicional
¿Qué es la lógica condicional?
La expresión case
Expresiones condicionales de búsqueda
Expresiones condicionales simples
Ejemplos de expresiones condicionales
Transformación de conjuntos de resultados
Agregación selectiva
Comprobar la existencia de relaciones
Errores al dividir por cero
Actualizaciones condicionales
Manejar valores nulos
Ejercicios prácticos
Ejercicio 11.1
Ejercicio 11.2
Capítulo 12. Transacciones
Bases de datos multiusuario
¿Qué es una transacción?
Iniciar una transacción
Finalizar una transacción
Puntos de guardado de las transacciones
Capítulo 13. Índices y restricciones
Índices
Crear índices
Índices únicos (unique)
Índices de varias columnas
Tipos de índices
Índices de árbol B
Índices de mapas de bits
Índices de texto
¿Cómo se utilizan los índices?
Los inconvenientes de los índices
Restricciones
Creación de restricciones
Restricciones e índices
Restricciones en cascada
Apéndice A. Diagrama de entidad-relación (ER) de la base de datosde ejemplo
Apéndice B. Extensiones de MySQL al lenguaje SQL
Extensiones sobre select
La cláusula limit
Combinar la cláusula limit con la cláusula order by
Segundo parámetro opcional de la cláusula limit
Clasificación de las consultas
La cláusula into outfile
Combinación de sentencias de inserción y de actualización(insert/update)
Actualizaciones y borrados en clasificaciones
Actualizaciones y borrados de múltiples tablas
Apéndice C. Soluciones a los ejercicios
Capítulo 3
3.1
3.2
3.3
3.4
Capítulo 4
4.1
4.2
4.3
4.4
Capítulo 5
5.1
5.2
5.3
Capítulo 6
6.1
6.2
6.3
Capítulo 7
7.1
7.2
7.3
Capítulo 8
8.1
8.2
8.3
8.4 (crédito extra)
Capítulo 9
9.1
9.2
9.3
9.4
Capítulo 10
10.1
10.2
10.3
10.4 (crédito adicional)
Capítulo 11
11.1
Ejercicio 11.2
Apéndice D. Recursos adicionales
SQL avanzado
Programación de las bases de datos
Diseño de bases de datos
Optimización de bases de datos
Administración de las bases de datos
Generación de informes
Índice alfabético