Autor: CHARDI, Pere
Páginas: 384
Coedición: Alfaomega, Marcombo
$688
Consultar disponibilidad
Autor: CHARDI, Pere
Páginas: 384
Coedición: Alfaomega, Marcombo
Consultar disponibilidad
Este libro va dirigido a todas aquellas personas que por una u otra razón quieran o necesiten aprender o profundizar en el lenguaje SQL y las bases de datos relacionales, su metodología de aprendizaje motivadora facilita al lector la comprensión del SQL.
De hecho es más que un libro, pone al alcance del lector un medio interactivo que permitirá desarrollar los ejercicios propuestos en él y practicar los conceptos que se explican, gracias a su consola SQL es posible cargar las consultas de ejemplo del libro y modificarlas para practicar y jugar con el lenguaje. Es realmente una extraordinaria herramienta para complementar la teoría y consolidar lo aprendido con la práctica.
Es un método de enseñanza diseñado para que el lector aprenda el lenguaje de consulta SQL con relativa facilidad.
Ventajas competitivas
• Tiene una consola SQL, disponible en www.sqlfacil.com, esto permitirá al lector desarrollar los ejercicios propuestos atreves de la obra.
• Es una metodología de aprendizaje motivadora que facilita la comprensión del lenguaje SQL.
Conozca
Aprenda
Índice
PREFACIO ………………………………………………………………………………………………………… xv
PRIMERA PARTE ……………………………………………………………………………………………. 17
CAPÍTULO 1. BASES DE DATOS ……………………………………………………………………… 19
BASE DE DATOS RELACIONAL ………………………………………………………………………………. 20
ESTRUCTURA MÍNIMA DE ALMACENAMIENTO ………………………………………………………… 21
EJEMPLO DE TABLA ……………………………………………………………………………………………. 22
RESUMEN …………………………………………………………………………………………………………. 23
CAPÍTULO 2. CONSULTAS SQL I ……………………………………………………………………. 25
CONSULTAS SQL……………………………………………………………………………………………….. 25
PREGUNTAS DE CONSTRUCCIÓN …………………………………………………………………………… 26
SINTAXIS SQL …………………………………………………………………………………………………… 27
FORMA GENERAL ……………………………………………………………………………………………….. 28
RESUMEN …………………………………………………………………………………………………………. 29
EJERCICIO …………………………………………………………………………………………………………. 29
CAPÍTULO 3. CONSULTAS SQL II …………………………………………………………………………….. 31
LAS TRES CLÁUSULAS Y LAS PREGUNTAS DE CONSTRUCCIÓN …………………………….. 31
MODIFICANDO LA CLÁUSULA WHERE …………………………………………………………………. 32
EL OPERADOR BETWEEN ……………………………………………………………………………………… 33
EL MOTOR SQL …………………………………………………………………………………………………. 34
RESUMEN …………………………………………………………………………………………………………. 34
EJERCICIO …………………………………………………………………………………………………………. 34
CAPÍTULO 4. TIPOS DE DATO ………………………………………………………………………… 35
TIPOS DE DATO ………………………………………………………………………………………………….. 36
EJEMPLO …………………………………………………………………………………………………………… 40
RESUMEN …………………………………………………………………………………………………………. 41
EJERCICIOS ……………………………………………………………………………………………………….. 41
CAPÍTULO 5. OPERADORES ……………………………………………………………………………. 43
LÓGICA BOOLEANA ……………………………………………………………………………………………. 44
EXPRESIONES BOOLEANAS ………………………………………………………………………………….. 45
EJEMPLOS DE EXPRESIONES BOOLEANAS ……………………………………………………………….. 46
OPERADORES …………………………………………………………………………………………………….. 46
OPERADORES LÓGICOS ……………………………………………………………………………………….. 47
EL OPERADOR AND …………………………………………………………………………………………… 49
EL OPERADOR OR ……………………………………………………………………………………………… 51
EL OPERADOR NOT ……………………………………………………………………………………………. 53
RESUMEN …………………………………………………………………………………………………………. 56
EJERCICIOS ……………………………………………………………………………………………………….. 57
CAPÍTULO 6. LAS FUNCIONES DE AGREGADO
Y LA TOTALIZACIÓN DE DATOS …………………………………………………………………………. 59
ALIAS DE CAMPO ……………………………………………………………………………………………….. 62
RESUMEN …………………………………………………………………………………………………………. 67
EJERCICIOS ……………………………………………………………………………………………………….. 68
CAPÍTULO 7. AGRUPACIÓN DE DATOS …………………………………………………………………… 69
CLÁUSULA GROUP BY ……………………………………………………………………………………… 70
EL OPERADOR DISTINCT …………………………………………………………………………………… 72
RESUMEN …………………………………………………………………………………………………………. 79
EJERCICIOS ……………………………………………………………………………………………………….. 79
CAPÍTULO 8. FILTRAR CÁLCULOS DE TOTALIZACIÓN ………………………………………. 81
CLÁUSULA HAVING …………………………………………………………………………………………. 81
DIFERENCIA ENTRE WHERE Y HAVING ……………………………………………………………… 83
RESUMEN …………………………………………………………………………………………………………. 86
EJERCICIO …………………………………………………………………………………………………………. 86
CAPÍTULO 9. ORDENACIÓN DEL RESULTADO ………………………………………………………. 87
CLÁUSULA ORDER BY ……………………………………………………………………………………… 87
RESUMEN …………………………………………………………………………………………………………. 91
EJERCICIOS ……………………………………………………………………………………………………….. 92
CAPÍTULO 10. EL OPERADOR LIKE. EL VALOR NULL ………………………………………….. 93
EL OPERADOR LIKE …………………………………………………………………………………………… 93
EL VALOR NULL ……………………………………………………………………………………………….. 95
RESUMEN ……………………………………………………………………………………………………….. 100
EJERCICIOS ……………………………………………………………………………………………………… 101
CAPÍTULO 11. SÍNTESIS DE LA PRIMERA PARTE ………………………………………………… 103
CONSULTAS SQL LLANAS …………………………………………………………………………………. 101
CONSULTAS SQL DE CÁLCULO …………………………………………………………………………… 102
CLÁUSULAS SQL……………………………………………………………………………………………… 102
EJERCICIO ……………………………………………………………………………………………………….. 106
SEGUNDA PARTE …………………………………………………………………………………………………… 107
CAPÍTULO 12. EL PRODUCTO CARTESIANO ………………………………………………………… 109
CAMPO AMBIGUO …………………………………………………………………………………………….. 113
ALIAS DE TABLA ………………………………………………………………………………………………. 114
RESUMEN ……………………………………………………………………………………………………….. 119
EJERCICIOS ……………………………………………………………………………………………………… 120
CAPÍTULO 13. ABSTRACCIÓN DE TABLA ……………………………………………………………… 121
FUNCIONES DE AGREGADO ………………………………………………………………………………… 123
CLÁUSULA WHERE …………………………………………………………………………………………. 124
UNIONES (UNION ALL) …………………………………………………………………………………… 127
RESUMEN ……………………………………………………………………………………………………….. 128
EJERCICIOS ……………………………………………………………………………………………………… 129
CAPÍTULO 14. RELACIONES, CLAVES PRIMARIAS Y FORÁNEAS ……………………… 131
CLAVE PRIMARIA ……………………………………………………………………………………………… 131
CLAVE FORÁNEA ……………………………………………………………………………………………… 133
RELACIONES ……………………………………………………………………………………………………. 133
RELACIÓN DE CARDINALIDAD 1 A N ……………………………………………………………………. 135
RELACIÓN DE CARDINALIDAD N A M ………………………………………………………………….. 138
RELACIÓN DE CARDINALIDAD 1 A 1 …………………………………………………………………….. 141
ESPECIFICACIÓN ………………………………………………………………………………………………. 142
RESUMEN ……………………………………………………………………………………………………….. 142
EJERCICIOS ……………………………………………………………………………………………………… 144
CAPÍTULO 15. REUNIÓN INTERNA Y EXTERNA …………………………………………. 145
REUNIÓN INTERNA – CLÁUSULAS INNER JOIN / ON …………………………………………………. 145
REUNIÓN EXTERNA – LEFT OUTER JOIN / RIGHT OUTER JOIN …………………………………….. 148
RESUMEN ……………………………………………………………………………………………………….. 155
EJERCICIOS ……………………………………………………………………………………………………… 155
CAPÍTULO 16. EL MODELO ENTIDAD-RELACIÓN ……………………………………… 157
ENTIDADES FUERTES Y DÉBILES …………………………………………………………………………. 160
CONSTRUCCIÓN DEL MODELO DE DATOS A PARTIR DEL MODELO E-R ………………………. 162
RESUMEN ……………………………………………………………………………………………………….. 162
EJERCICIO ……………………………………………………………………………………………………….. 163
CAPÍTULO 17. LENGUAJE DE DEFINICIÓN DE DATOS ………………………………. 165
LENGUAJE DE DEFINICIÓN DE DATOS (DDL) ………………………………………………………… 165
CREATE DATABASE …………………………………………………………………………………….. 165
CREATE TABLE ……………………………………………………………………………………………. 167
ALTER TABLE ………………………………………………………………………………………………. 169
CREAR CLAVES PRIMARIAS Y FORÁNEAS ……………………………………………………………… 169
CAMPOS CHECK ……………………………………………………………………………………………….. 170
AÑADIR Y ELIMINAR CAMPOS …………………………………………………………………………….. 171
ELIMINAR CLAVES ……………………………………………………………………………………………. 172
ÍNDICES ………………………………………………………………………………………………………….. 173
ÍNDICES IMPLÍCITOS ………………………………………………………………………………………….. 174
ORDEN EN ÍNDICES COMPUESTOS ……………………………………………………………………….. 174
ELIMINAR TABLAS ……………………………………………………………………………………………. 175
USUARIOS ROLES Y PRIVILEGIOS ………………………………………………………………………… 176
ASISTENTES …………………………………………………………………………………………………….. 177
METADATOS ……………………………………………………………………………………………………. 178
RESUMEN ……………………………………………………………………………………………………….. 180
EJERCICIOS ……………………………………………………………………………………………………… 182
CAPÍTULO 18. INSERT, UPDATE, DELETE …………………………………………………… 183
INSERT SQL ……………………………………………………………………………………………………. 183
UPDATE SQL …………………………………………………………………………………………………… 184
DELETE SQL …………………………………………………………………………………………………… 186
TRANSACCIONES: COMMIT / ROLLBACK ……………………………………………………………… 187
COMMIT IMPLÍCITO EN INSTRUCCIONES DDL ……………………………………………………….. 189
RESUMEN ……………………………………………………………………………………………………….. 189
EJERCICIOS ……………………………………………………………………………………………………… 190
CAPÍTULO 19. SÍNTESIS DE LA SEGUNDA PARTE ……………………………………… 193
REUNIÓN ………………………………………………………………………………………………………… 193
FUNCIONES DE AGREGADO ………………………………………………………………………………… 193
REUNIÓN EXTERNA …………………………………………………………………………………………… 194
CLAVES PRIMARIAS Y FORÁNEAS ……………………………………………………………………….. 194
RELACIONES Y CARDINALIDAD …………………………………………………………………………… 195
MODELO ENTIDAD-RELACIÓN ……………………………………………………………………………. 195
DML (LENGUAJE DE MANIPULACIÓN DE DATOS) …………………………………………………… 196
DDL (LENGUAJE DE DEFINICIÓN DE DATOS) …………………………………………………………. 197
EJERCICIOS ……………………………………………………………………………………………………… 198
TERCERA PARTE …………………………………………………………………………………………………… 199
CAPÍTULO 20. FUNCIONES NATIVAS …………………………………………………………………….. 201
FUNCIONES PARA FECHAS ………………………………………………………………………………….. 202
FUNCIONES PARA CADENAS ……………………………………………………………………………….. 205
LA FUNCIÓN IF ………………………………………………………………………………………………… 207
LA FUNCIÓN IFNULL ………………………………………………………………………………………… 208
LA FUNCIÓN IFNULL PARA EL FILTRAJE DE REGISTROS ………………………………………….. 209
FUNCIONES NUMÉRICAS ……………………………………………………………………………………. 212
RESUMEN ……………………………………………………………………………………………………….. 213
EJERCICIOS ……………………………………………………………………………………………………… 214
CAPÍTULO 21. SUBCONSULTAS EN CLÁUSULA SELECT …………………………………….. 215
SUBCONSULTA EN CLÁUSULA SELECT ………………………………………………………………. 215
SUBCONSULTA CONDICIONADA ………………………………………………………………………….. 217
RESUMEN ……………………………………………………………………………………………………….. 223
EJERCICIO ……………………………………………………………………………………………………….. 223
CAPÍTULO 22. SUBCONSULTAS EN CLÁUSULA FROM ………………………………………… 225
SUBCONSULTA EN CLÁUSULA FROM ………………………………………………………………….. 225
SUBCONSULTA CONDICIONADA ………………………………………………………………………….. 227
ABUSO DEL LENGUAJE ………………………………………………………………………………………. 228
FUENTE DE DATOS CONSTANTE ………………………………………………………………………….. 231
RESUMEN ……………………………………………………………………………………………………….. 232
EJERCICIO ……………………………………………………………………………………………………….. 233
CAPÍTULO 23. SUBCONSULTAS EN CLÁUSULA WHERE ……………………………………… 235
SUBCONSULTAS EN LA CLÁUSULA WHERE …………………………………………………………. 235
FILTRAR POR UN SOLO VALOR ……………………………………………………………………………. 235
FILTRAR POR UNA LISTA DE VALORES POSIBLES ……………………………………………………. 237
LISTAS DE PARES DE VALORES POSIBLES ……………………………………………………………… 240
EL OPERADOR EXISTS……………………………………………………………………………………………….. 241
EXISTS VS. IN ………………………………………………………………………………………………………….. 243
SUBCONSULTAS EN LA CLÁUSULA HAVING ……………………………………………………….. 249
DESGLOSE DE LA CONSULTA ……………………………………………………………………………… 249
RESUMEN ……………………………………………………………………………………………………….. 253
EJERCICIOS ……………………………………………………………………………………………………… 254
CAPÍTULO 24. VISTAS ……………………………………………………………………………………. 255
CREATE VIEW ………………………………………………………………………………………………… 255
ACCESO A LOS DATOS ……………………………………………………………………………………….. 256
REUNIÓN DE DATOS ………………………………………………………………………………………….. 258
TRATAMIENTO PREVIO DE DATOS ……………………………………………………………………….. 260
RESUMEN ……………………………………………………………………………………………………….. 262
EJERCICIO ……………………………………………………………………………………………………….. 262
CAPÍTULO 25. INSERCIONES MASIVAS ………………………………………………………………… 265
INSERTAR RESULTADO DE UNA CONSULTA ………………………………………………………. 265
GENERAR SCRIPT DE INSERCIONES ………………………………………………………………….. 267
REPLICAR UNA TABLA Y SUS DATOS ………………………………………………………………… 268
RESUMEN ……………………………………………………………………………………………………….. 269
EJERCICIO ……………………………………………………………………………………………………….. 270
CAPÍTULO 26. SUBCONSULTAS EN UPDATE ………………………………………………………… 271
ACTUALIZAR UNA TABLA CON DATOS DE OTRA TABLA ……………………………………. 272
USO DE FUNCIONES EN INSTRUCCIONES INSERT Y UPDATE …………………………… 275
SCRIPT PARA CAMBIAR DE TIPO DE DATO UN CAMPO DE TABLA …………………… 276
RESUMEN ……………………………………………………………………………………………………….. 278
EJERCICIO ……………………………………………………………………………………………………….. 279
CAPÍTULO 27. FUNCIONES Y PROCEDIMIENTOS ALMACENADOS …………………… 281
LENGUAJE DE PROGRAMACIÓN …………………………………………………………………………… 281
FUNCIÓN MYSQL ……………………………………………………………………………………………. 282
FUNCIÓN ORACLE ……………………………………………………………………………………………. 284
FUNCIÓN CON ACCESO A DATOS …………………………………………………………………………. 285
PROCEDIMIENTOS …………………………………………………………………………………………….. 288
PROCEDIMIENTO MYSQL ………………………………………………………………………………….. 288
CURSORES ………………………………………………………………………………………………………. 289
CURSOR ORACLE ……………………………………………………………………………………………… 290
CURSOR MYSQL ……………………………………………………………………………………………… 291
ANÁLISIS DESCENDIENTE ………………………………………………………………………………….. 293
VIDEOJUEGO ……………………………………………………………………………………………………. 294
RESUMEN ……………………………………………………………………………………………………….. 300
EJERCICIOS ……………………………………………………………………………………………………… 302
CAPÍTULO 28. TRIGGERS ………………………………………………………………………………. 305
CREATE TRIGGER ………………………………………………………………………………………… 305
EJEMPLO MYSQL…………………………………………………………………………………………….. 306
MANTENER TABLAS DESDE TRIGGERS ………………………………………………………………….. 308
EJEMPLO EN ORACLE ………………………………………………………………………………………… 311
RESTRICCIONES ……………………………………………………………………………………………….. 312
RESUMEN ……………………………………………………………………………………………………….. 313
EJERCICIOS ……………………………………………………………………………………………………… 314
CAPÍTULO 29. SÍNTESIS DE LA TERCERA PARTE ……………………………………………….. 317
FUNCIONES NATIVAS ………………………………………………………………………………………… 317
SUBCONSULTAS ……………………………………………………………………………………………….. 318
VISTAS …………………………………………………………………………………………………………… 319
INSERCIONES MASIVAS ……………………………………………………………………………………… 319
FUNCIONES Y PROCEDIMIENTOS ALMACENADOS …………………………………………………… 320
TRIGGERS ………………………………………………………………………………………………………… 321
EJERCICIOS ……………………………………………………………………………………………………… 322
CUARTA PARTE ……………………………………………………………………………………………………… 323
CAPÍTULO 30. APLICACIÓN SQL ……………………………………………………………………………. 325
ANÁLISIS DE REQUERIMIENTOS ………………………………………………………………………….. 325
MODELO ENTIDAD-RELACIÓN ……………………………………………………………………………. 326
CREACIÓN DE TABLAS Y CLAVES PRIMARIAS ………………………………………………………… 329
CLAVES FORÁNEAS …………………………………………………………………………………………………….. 332
INSERCIÓN DE REGISTROS EN LAS TABLAS ……………………………………………………………. 333
INFORMES O EXPLOTACIÓN DE DATOS …………………………………………………………………. 335
EJERCICIOS ……………………………………………………………………………………………………… 337
SOLUCIONES ………………………………………………………………………………………………….. 343
CAPÍTULO 2. CONSULTAS SQL I …………………………………………………………………………. 343
CAPÍTULO 3. CONSULTAS SQL II ……………………………………………………………………….. 344
CAPÍTULO 4. TIPOS DE DATOS …………………………………………………………………………….. 345
CAPÍTULO 5. OPERADORES ………………………………………………………………………………… 346
CAPÍTULO 6. TOTALIZAR DATOS …………………………………………………………………………. 348
CAPÍTULO 7. AGRUPACIÓN DE DATOS …………………………………………………………………. 349
CAPÍTULO 8. FILTRAR CÁLCULOS DE TOTALIZACIÓN ……………………………………………… 351
CAPÍTULO 9. ORDENACIÓN DEL RESULTADO ………………………………………………………… 352
CAPÍTULO 10. EL OPERADOR LIKE / EL VALOR NULL ………………………………………….. 353
CAPÍTULO 11. SÍNTESIS DE LA PRIMERA PARTE …………………………………………………….. 354
CAPÍTULO 12. EL PRODUCTO CARTESIANO …………………………………………………………… 356
CAPÍTULO 13. ABSTRACCIÓN DE TABLA ………………………………………………………………. 357
CAPÍTULO 14. RELACIONES, CLAVES PRIMARIAS Y FORÁNEAS ………………………………… 360
CAPÍTULO 15. REUNIÓN INTERNA Y EXTERNA ………………………………………………………. 363
CAPÍTULO 16. EL MODELO ENTIDAD-RELACIÓN ……………………………………………………. 364
CAPÍTULO 17. LEGUAJE DE DEFINICIÓN DE DATOS ………………………………………………… 365
CAPÍTULO 18. INSERT, UPDATE, DELETE ………………………………………………………………… 366
CAPÍTULO 19. SÍNTESIS DE LA SEGUNDA PARTE ……………………………………………………. 367
CAPÍTULO 20. FUNCIONES NATIVAS ……………………………………………………………………. 369
CAPÍTULO 21. SUBCONSULTAS EN CLÁUSULA SELECT …………………………………………. 371
CAPÍTULO 22. SUBCONSULTAS EN CLÁUSULA FROM ……………………………………………. 372
CAPÍTULO 23. SUBCONSULTAS EN CLÁUSULA WHERE …………………………………………. 373
CAPÍTULO 24. VISTAS …………………………………………………………………………………………….. 376
CAPÍTULO 25. INSERCIONES MASIVAS …………………………………………………………………. 377
CAPÍTULO 26. SUBCONSULTAS EN UPDATE ……………………………………………………….. 378
CAPÍTULO 27. FUNCIONES Y PROCEDIMIENTOS ALMACENADOS ……………………… 379
CAPÍTULO 28. TRIGGERS …………………………………………………………………………………… 382
CAPÍTULO 30. APLICACIÓN SQL ………………………………………………………………………… 383