TRABAJO............................................................................................................................ 17 1.1 NOVEDADES EN SQL SERVER 2008 R2 ............................................................... 17 1.2 INSTALACIN DE MICROSOFT SQL SERVER 2008 R2..................................... 18 1.3 VERSIONES DE MICROSOFT SQL SERVER 2008 ............................................... 25 1.3.1 Ediciones Core Server de SQL Server 2008 R2 ................................................. 25 1.3.2 Ediciones especializadas de SQL Server 2008 R2.............................................. 25 1.4 PRIMEROS PASOS EN SQL SERVER 2008 R2: INICIO DEL SERVIDOR .......... 26 1.4.1 Ejecutar SQL Server en una red.......................................................................... 29 1.4.2 Detener SQL Server ............................................................................................ 31 CAPTULO 2. CONCEPTOS, OBJETOS, OPERACIONES, DISEO Y CREACIN DE BASES DE DATOS ............................................................................... 33 2.1 BASES DE DATOS: TABLAS, CAMPOS Y REGISTROS...................................... 33 2.2 ESTRUCTURA DE LAS BASES DE DATOS .......................................................... 34 2.2.1 Modelos de datos primitivos: sistemas de gestin de archivos........................... 34 2.2.2 Bases de datos jerrquicas................................................................................... 35 2.2.3 Bases de datos en red .......................................................................................... 37 2.2.4 Bases de datos relacionales ................................................................................. 39 2.3 CARACTERSTICAS DE LAS BASES DE DATOS RELACIONALES................. 41 2.4 OPERACIONES RELACIONALES BSICAS ........................................................ 42 2.5 OTRAS OPERACIONES RELACIONALES Y OPERADORES BOOLEANOS .... 45 2.6 DISEO DE UNA BASE DE DATOS RELACIONAL ............................................ 46 2.6.1 Claves primarias y secundarias (externas o forneas)......................................... 46
2.6.3 Disparadores........................................................................................................ 50 2.6.4 ndices ................................................................................................................. 51 2.6.5 Tablas en una base de datos relacional ............................................................... 55 2.6.6 Un ejemplo de diseo de base de datos relacional.............................................. 57 2.7 CREAR UNA BASE DE DATOS CON SQL SERVER............................................. 66 2.7.1 Estimar el tamao de una tabla ........................................................................... 69 2.7.2 Estimar el tamao de la base de datos................................................................. 71 2.7.3 Creacin de una base de datos SQL Server mediante el Administrador corporativo .......................................................................................................... 71 CAPTULO 3. CREACIN Y ADMINISTRACIN DE TABLAS, RELACIONES E NDICES.............................................................................................. 77 3.1 CREACIN DE TABLAS.......................................................................................... 77 3.1.1 Crear una tabla nueva con el diseador de tablas ............................................... 81 3.1.2 Modificar una tabla nueva con el diseador de tablas ........................................ 90 3.2 CREACIN DE NDICES Y CLAVES ..................................................................... 92 3.2.1 Creacin de ndices nicos.................................................................................. 92 3.2.2 Creacin de clave principal o primaria ............................................................... 94 3.2.3 Creacin de ndices agrupados............................................................................ 96 3.3 RELACIONES............................................................................................................ 99 3.3.1 Crear relacin de clave fornea con el diseador de tablas .............................. 100 3.4 RESTRICCIONES CHECK ..................................................................................... 102 3.4.1 Crear restriccin CHECK mediante el diseador de tablas .............................. 103 3.4.2 Expresiones de restriccin CHECK .................................................................. 105 3.5 DIAGRAMAS DE BASES DE DATOS................................................................... 106 3.5.1 Creacin de un diagrama de base de datos........................................................ 107 3.5.2 Crear claves primarias, ndices y restricciones en diagramas de base de datos. Insertar y eliminar columnas y tablas................................................................ 107 3.5.3 Crear relaciones en el diagrama de bases de datos ........................................... 109 3.5.4 Detalles de visualizacin en el diagrama de base de datos ............................... 111 3.5.5 Crear una tabla nueva y aadir una tabla existente al diagrama ....................... 114 3.6 INTRODUCCIN DE DATOS EN LAS TABLAS................................................. 115 CAPTULO 4. HERRAMIENTAS DE CONSULTA. CONSULTAS DEL MOTOR DE BASE DE DATOS Y EDITOR SQL ........................................................ 119 4.1 INTRODUCCIN .................................................................................................... 119 4.2 INICIACIN A LAS CONSULTAS Y HERRAMIENTAS.................................... 120 4.3 CONSULTAS DEL MOTOR DE BASE DE DATOS. EDITOR SQL..................... 121
RA-MA
NDICE 9
4.4 REALIZAR CONSULTAS EN LA VENTANA DE CONSULTA O
EDITOR SQL............................................................................................................ 125 4.5 MODIFICACIN DE LA INFORMACIN EN LA VENTANA ABRIR TABLA ..................................................................................................................... 130 4.6 ARCHIVOS SQL Y PLANTILLAS......................................................................... 133 4.7 EXPLORADOR DE OBJETOS ............................................................................... 136 4.8 SELECCIN DE INFORMACIN DE LA BASE DE DATOS. INTRODUCCIN AL COMANDO SELECT DE TRANSACT-SQL .................... 137 4.8.1 Clusula FROM................................................................................................. 139 4.8.2 Clusula WHERE.............................................................................................. 139 4.8.3 Clusula GROUP BY........................................................................................ 141 4.8.4 Clusula ORDER BY........................................................................................ 141 4.8.5 Clusula HAVING ............................................................................................ 142 CAPTULO 5. VER Y MODIFICAR DATOS CON EL DISEADOR DE CONSULTAS .................................................................................................................... 145 5.1 DISEADOR DE CONSULTAS DESDE EL EDITOR SQL.................................. 145 5.2 DISEADOR DE CONSULTAS DESDE TABLAS O VISTAS ............................ 150 5.3 PANELES DEL DISEADOR DE CONSULTAS.................................................. 152 5.3.1 Panel Diagrama ................................................................................................. 152 5.3.2 Panel Cuadrcula o Criterios ............................................................................. 155 5.3.3 Panel SQL ......................................................................................................... 157 5.3.4 Panel Resultados ............................................................................................... 158 5.4 OPERATIVA CON CONSULTAS .......................................................................... 158 5.5 TIPOS DE CONSULTAS......................................................................................... 161 5.6 CONSULTAS PARAMTRICAS ........................................................................... 165 5.7 TABLAS DERIVADAS ........................................................................................... 168 5.8 CRITERIOS DE BSQUEDA ................................................................................. 171 CAPTULO 6. ELEMENTOS DE TRANSACT-SQL: FORMATOS, TIPOS DE DATOS, OPERADORES Y FUNCIONES........................ 177 6.1 EL LENGUAJE SQL ................................................................................................ 177 6.2 UTILIZANDO TRANSACT-SQL ........................................................................... 181 6.3 ELEMENTOS BSICOS DE TRANSACT- SQL ................................................... 182 6.4 IDENTIFICADORES ............................................................................................... 182 6.5 TIPOS DE DATOS ................................................................................................... 184 6.6 FORMATOS EN TRANSACT-SQL........................................................................ 187 6.7 CONSTANTES ........................................................................................................ 193 6.8 FUNCIONES ............................................................................................................ 195
10 MICROSOFT SQL SERVER 2008 R2. CURSO PRCTICO
RA-MA
6.9 CONVERSIN DE TIPOS DE DATOS .................................................................. 213
6.9.1 Funciones CAST y CONVERT ........................................................................ 214 6.9.2 Conversiones explcitas e implcitas ................................................................. 215 6.10 EXPRESIONES...................................................................................................... 216 6.11 OPERADORES ...................................................................................................... 218 6.11.1 Clasificacin de los operadores....................................................................... 218 6.11.2 Ejemplos de operadores .................................................................................. 220 6.11.3 Orden de precedencia de los operadores ......................................................... 222 6.12 PALABRAS RESERVADAS................................................................................. 222 6.13 REGLAS DE SINTAXIS EN TRANSACT-SQL................................................... 225 6.14 COMENTARIOS EN TRANSACT-SQL............................................................... 226 CAPTULO 7. TRANSACT-SQL. LENGUAJE DE CONSULTA DE DATOS: SENTENCIA SELECT..................................................................................................... 229 7.1 INTRODUCCIN .................................................................................................... 229 7.2 LA SENTENCIA SELECT....................................................................................... 230 7.2.1 Clusula SELECT ............................................................................................. 231 7.2.2 Clusula INTO .................................................................................................. 233 7.2.3 Clusula FROM................................................................................................. 234 7.2.4 Clusula WHERE.............................................................................................. 236 7.2.5 Clusula GROUP BY........................................................................................ 236 7.2.6 Clusula HAVING ............................................................................................ 238 7.2.7 Operador UNION.............................................................................................. 238 7.2.8 Clusula ORDER BY........................................................................................ 239 7.2.9 Clusula COMPUTE......................................................................................... 239 7.2.10 Clusula FOR .................................................................................................. 241 7.2.11 Clusula OPTION ........................................................................................... 242 7.2.12 Observaciones relativas a la sentencia SELECT ............................................ 244 7.3 SELECCIN DE FILAS .......................................................................................... 246 7.3.1 Filas duplicadas y la clusula DISTINCT......................................................... 248 7.4 ORDENACIN DE LOS RESULTADOS DE UNA CONSULTA......................... 249 7.5 COLUMNAS CALCULADAS ................................................................................ 251 7.6 RENOMBRAR COLUMNAS: CLUSULA AS..................................................... 253 7.7 CONSULTAS CON CONDICIONES DE BSQUEDA ......................................... 254 7.7.1 Contrastes de comparacin ............................................................................... 255 7.7.2 Contraste de rango: clusula BETWEENAND............................................. 256 7.7.3 Contraste de pertenencia a un conjunto: clusula IN ........................................ 257 7.7.4 Contraste de correspondencia con patrn: clusula LIKE ................................ 259
RA-MA
NDICE 11
7.7.5 Contraste de valor nulo: clusula IS NULL...................................................... 261
7.7.6 Contrastes compuestos: clusulas AND, OR y NOT........................................ 262 7.7.7 Combinacin de consultas: clusula UNION ................................................... 264 CAPTULO 8. TRANSACT-SQL. CONSULTAS MULTITABLA (JOINS) Y CONSULTAS RESUMEN ........................................................................................... 269 8.1 INTRODUCCIN .................................................................................................... 269 8.2 JOIN DE DOS TABLAS .......................................................................................... 270 8.2.1 JOINS con criterios de seleccin de filas.......................................................... 273 8.2.2 JOINS con mltiples columnas de emparejamiento ......................................... 274 8.3 JOIN DE TRES O MS TABLAS............................................................................ 275 8.3.1 JOIN con condiciones de bsqueda sin igualdad.............................................. 277 8.4 JOINS INTERNOS Y EXTERNOS.......................................................................... 278 8.4.1 JOIN EXTERNO completo............................................................................... 279 8.4.2 JOIN EXTERNO izquierdo y derecho.............................................................. 280 8.5 INNER JOIN............................................................................................................. 281 8.6 LEFT JOIN, RIGHT JOIN ........................................................................................ 283 8.6.1 Casos especiales en consultas multitabla .......................................................... 286 8.7 CONSULTAS RESUMEN ....................................................................................... 289 8.7.1 Funciones de agregado en la lista de seleccin................................................. 290 8.7.2 Funcin COUNT(*) .......................................................................................... 292 8.7.3 Valores NULL en las funciones de agregado ................................................... 293 8.7.4 Tratamiento de filas duplicadas con DISTINCT .............................................. 295 8.7.5 Agrupar filas con GROUP BY.......................................................................... 296 8.8 RESUMIR DATOS................................................................................................... 301 8.8.1 Resumir datos con CUBE ................................................................................. 302 8.8.2 Resumir datos con ROLLUP ............................................................................ 303 CAPTULO 9. TRANSACT-SQL. SUBCONSULTAS Y USO AVANZADO DE FUNCIONES ..................................................................................................................... 305 9.1 SUBCONSULTAS ................................................................................................... 305 9.1.1 Reglas de las subconsultas ................................................................................ 309 9.1.2 Subconsultas con IN.......................................................................................... 310 9.1.3 Subconsultas con operadores de comparacin.................................................. 312 9.1.4 Subconsultas con EXISTS ................................................................................ 313 9.1.5 Subconsultas con ANY, SOME o ALL ............................................................ 316 9.1.6 Subconsultas usadas en cualquier lugar de una expresin ................................ 318 9.1.7 Subconsultas con mltiples niveles de anidamiento ......................................... 318
9.2.1 Subconsultas correlacionadas con alias ............................................................ 320 9.2.2 Subconsultas correlacionadas con operadores de comparacin........................ 321 9.2.3 Subconsultas correlacionadas con una clusula HAVING ............................... 322 9.2.4 Unin, interseccin y diferencia en subconsultas ............................................. 323 9.3 USO AVANZADO DE FUNCIONES Y VARIABLES........................................... 324 9.3.1 Funciones de cadena.......................................................................................... 324 9.3.2 Funciones numricas ......................................................................................... 327 9.3.3 Funciones agregadas o estadsticas ................................................................... 328 9.3.4 Funciones de fechas y horas.............................................................................. 331 9.3.5 Funciones de metadatos .................................................................................... 334 9.3.6 Funciones de seguridad ..................................................................................... 335 9.3.7 Funciones del sistema ....................................................................................... 336 CAPTULO 10. TRANSACT-SQL. LENGUAJE DE DEFINICIN DE DATOS: ADMINISTRACIN DE TABLAS ................................................................................ 339 10.1 INTRODUCCIN .................................................................................................. 339 10.2 TABLAS, COLUMNAS Y TIPOS DE DATOS..................................................... 339 10.3 CREACIN DE TABLAS CON CREATE TABLE .............................................. 340 10.3.1 Definicin de columnas................................................................................... 342 10.3.2 Restricciones de integridad ............................................................................. 344 10.3.3 Restricciones de columna................................................................................ 350 10.3.4 Restricciones de tabla...................................................................................... 352 10.3.5 Observaciones sobre las restricciones de integridad....................................... 355 10.3.6 Limitaciones en CREATE TABLE................................................................. 360 10.4 MODIFICACIN DE TABLAS CON ALTER TABLE........................................ 363 10.5 BORRADO DE TABLAS CON DROP TABLE .................................................... 371 CAPTULO 11. TRANSACT-SQL. LENGUAJE DE MANIPULACIN DE DATOS: ACTUALIZACIN DE TABLAS................................................................... 373 11.1 INTRODUCCIN .................................................................................................. 373 11.2 AGREGAR DATOS. LA SENTENCIA INSERT .................................................. 373 11.2.1 Insertar una fila mediante INSERT INTO...VALUES ................................... 374 11.2.2 Insertar valores NULL .................................................................................... 382 11.2.3 Insertar todas las columnas ............................................................................. 383 11.2.4 Insertar varias filas mediante INSERT INTO...SELECT ............................... 384 11.2.5 Sintaxis general de la sentencia INSERT........................................................ 384 11.3 ELIMINAR DATOS. LAS SENTENCIAS DELETE Y TRUNCATE .................. 386
RA-MA
NDICE 13
11.3.1 Eliminar filas con DELETE ............................................................................ 386
11.3.2 Eliminar todas las filas con TRUNCATE TABLE ......................................... 391 11.4 ACTUALIZAR DATOS. LA SENTENCIA UPDATE .......................................... 392 11.4.1 Cambiar datos con UPDATE .......................................................................... 393 11.4.2 Actualizacin de todas las filas con UPDATE ............................................... 395 11.4.3 UPDATE con subconsulta .............................................................................. 395 CAPTULO 12. TRANSACT-SQL. ADMINISTRAR VISTAS E NDICES Y LENGUAJE DE CONTROL DE TRANSACCIONES................................................. 397 12.1 INTRODUCCIN .................................................................................................. 397 12.2 VISTAS................................................................................................................... 397 12.2.1 CREACIN DE UNA VISTA........................................................................ 401 12.2.2 Vistas horizontales .......................................................................................... 403 12.2.3 Vistas verticales............................................................................................... 405 12.2.4 Vistas fila/columna.......................................................................................... 406 12.2.5 Vistas agrupadas.............................................................................................. 406 12.2.6 Vistas compuestas ........................................................................................... 407 12.2.7 Actualizacin de vistas.................................................................................... 408 12.2.8 Modificacin de vistas con ALTER VIEW .................................................... 409 12.2.9 Borrado de vistas con DROP VIEW............................................................... 409 12.3 NDICES................................................................................................................. 410 12.3.1 Borrado de ndices........................................................................................... 418 12.4 PROCESAMIENTO DE TRANSACCIONES....................................................... 419 12.4.1 Sentencia BEGIN TRANSACTION............................................................... 421 12.4.2 Sentencia COMMIT TRANSACTION........................................................... 422 12.4.3 Sentencia COMMIT WORK........................................................................... 422 12.4.4 Sentencia SAVE TRANSACTION................................................................. 423 12.4.5 Sentencia ROLLBACK TRANSACTION ..................................................... 424 CAPTULO 13. ADMINISTRAR SQL SERVER 2008 ................................................ 427 13.1 CONCEPTO DE INSTANCIA............................................................................... 427 13.1.1 Servicios de instancias .................................................................................... 428 13.2 ADMINISTRACIN DE BASES DE DATOS: CREACIN, MODIFICACIN Y ELIMINACIN................................................................................................... 431 13.2.1 Creacin de una base de datos mediante Transact-SQL ................................. 433 13.2.2 Modificacin de una base de datos mediante Transact-SQL .......................... 435 13.2.3 Eliminacin de una base de datos mediante Transact-SQL ............................ 439 13.3 ADMINISTRACIN DE INSTANCIAS............................................................... 439
14 MICROSOFT SQL SERVER 2008 R2. CURSO PRCTICO
RA-MA
13.4 INICIAR, PAUSAR Y DETENER SQL SERVER DESDE EL
ADMINISTRADOR CORPORATIVO Y SISTEMA OPERATIVO ..................... 440 13.5 INICIAR, PAUSAR Y DETENER SQL SERVER DESDE SQL SERVER CONFIGURATION MANAGER ........................................................................... 446 13.6 INFORMACIN SOBRE BASES DE DATOS Y SUS OBJETOS ....................... 449 CAPTULO 14. ADMINISTRAR LA SEGURIDAD. LENGUAJE DE CONTROL DE DATOS CON TRANSACT-SQL .............................................................................. 453 14.1 INTRODUCCIN .................................................................................................. 453 14.2 SEGURIDAD DE INSTANCIA............................................................................. 454 14.3 AUTENTICACIN Y ADMINISTRACIN DE USUARIOS ............................. 457 14.3.1 Crear una contrasea de usuario para acceso a SQL Server ........................... 457 14.3.2 Crear una cuenta de inicio de sesin en SQL Server ...................................... 459 14.4 SEGURIDAD DE BASE DE DATOS.................................................................... 464 14.4.1 Conceder a cuentas de SQL Server el acceso a una base de datos ................. 464 14.4.2 Usuarios por defecto de la base de datos ........................................................ 465 14.5 FUNCIONES (ROLES) DE BASE DE DATOS .................................................... 467 14.6 ADMINISTRAR PERMISOS SOBRE OBJETOS DE BASE DE DATOS ........... 472 14.6.1 Conceder permisos con TRANSACT-SQL: la sentencia GRANT ................ 474 14.6.2 Denegar permisos con TRANSACT-SQL: la sentencia DENY ..................... 476 14.6.3 Revocar permisos con TRANSACT-SQL: la sentencia REVOKE ................ 477 CAPTULO 15. COPIAS DE SEGURIDAD Y RESTAURACIN DE BASES DE DATOS. IMPORTACIN Y EXPORTACIN ............................................................ 479 15.1 INTRODUCCIN .................................................................................................. 479 15.2 MODELOS DE RECUPERACIN ....................................................................... 479 15.2.1 Recuperacin simple: copias de seguridad de bases de datos completas ....... 480 15.2.2 Crear una copia de seguridad completa de base de datos mediante Transact-SQL: la sentencia BACKUP DATABASE...................................... 483 15.2.3 Recuperacin simple: copias de seguridad diferencial de bases de datos....... 484 15.2.4 Crear una copia de seguridad diferencial de base de datos mediante Transact-SQL: la sentencia BACKUP DATABASE...................................... 485 15.2.5 Recuperacin simple: restaurar una copia de seguridad completa de base de datos............................................................................................................ 485 15.2.6 Restaurar una copia de seguridad completa de base de datos mediante Transact-SQL .................................................................................................. 488 15.2.7 Recuperacin simple: restaurar una copia de seguridad diferencial de base de datos............................................................................................................ 489 15.2.8 Restaurar una copia de seguridad diferencial de base de datos mediante Transact-SQL .................................................................................................. 489
RA-MA
NDICE 15
15.2.9 Recuperacin completa: copias de seguridad de registro de transacciones .... 489
15.3 CREAR UNA COPIA DE SEGURIDAD DEL REGISTRO DE TRANSACCIONES MEDIANTE TRANSACT-SQL.......................................... 491 15.3.1 Recuperacin de registro masivo .................................................................... 492 15.3.2 Recuperar bases de datos sin restaurar mediante Transact-SQL .................... 493 15.3.3 Reiniciar operaciones de copia de seguridad y restauracin interrumpidas mediante Transact-SQL................................................................................... 493 15.4 ADMINISTRAR COPIAS DE SEGURIDAD........................................................ 494 15.4.1 Dispositivos de copia de seguridad ................................................................. 494 15.4.2 Informacin de copias de seguridad................................................................ 496 15.4.3 Comprobacin de copias de seguridad............................................................ 497 15.5 COPIAR O MOVER BASES DE DATOS ENTRE SERVIDORES: ASISTENTE PARA COPIAR BASES DE DATOS .............................................. 498 15.6 LA SENTENCIA BACKUP ................................................................................... 504 15.7 LA SENTENCIA RESTORE ................................................................................. 506 15.8 IMPORTACIN Y EXPORTACIN DE DATOS................................................ 508 15.8.1 Herramienta BCP ............................................................................................ 509 15.8.2 Asistente de importacin y exportacin con DTS........................................... 512 15.8.3 Importacin de datos de Microsoft Access ..................................................... 515 15.8.4 Importacin de datos de Microsoft Excel ....................................................... 518 15.8.5 Exportacin de datos a Microsoft Excel ......................................................... 522 15.8.6 Exportacin de datos a Microsoft Access ....................................................... 524 15.9 ADJUNTAR Y SEPARAR BASES DE DATOS ................................................... 526 15.10 DESCONECTAR Y CONECTAR UNA BASE DE DATOS .............................. 529 15.11 REDUCIR UNA BASE DE DATOS .................................................................... 532 15.12 REFLEJAR UNA BASE DE DATOS .................................................................. 534 NDICE ALFABTICO................................................................................................... 537