ÍNDICE Capítulo 1. Características, novedades y entorno de trabajo... 17 1.1 Novedades en SQL Server 2008... 17 1.2 Instalación de Microsoft SQL Server 2008... 19 1.3 Versiones de Microsoft SQL Server 2008...27 1.4 Primeros pasos en SQL Server 2008: inicio del servidor...29 1.4.1 Ejecutar SQL Server en una red...33 1.4.2 Detener SQL Server...34 Capítulo 2. Conceptos, objetos, operaciones, diseño y creación de bases de datos...37 2.1 Bases de datos: tablas, campos y registros...37 2.2 Estructura de las bases de datos...38 2.2.1 Modelos de datos primitivos: sistemas de gestión de archivos...38 2.2.2 Bases de datos jerárquicas......39 2.2.3 Bases de datos en red...41 2.2.4 Bases de datos relacionales...43 2.3 Características de las bases de datos relacionales...45 2.4 Operaciones relacionales básicas...46 2.5 Otras operaciones relacionales y operadores booleanos...49 2.6 Diseño de una base de datos relacional......50 2.6.1 Claves primarias y secundarias (externas o foráneas)...50 2.6.2 Integridad...51 2.6.3 Disparadores...... 54 2.6.4 Índices... 55 2.6.5 Tablas en una base de datos relacional... 59 2.6.6 Un ejemplo de diseño de base de datos relacional......61
8 SQL SERVER 2008 RA-MA 2.7 Crear una base de datos con SQL Server... 70 2.7.1 Estimar el tamaño de una tabla... 72 2.7.2 Estimar el tamaño de la base de datos... 74 2.7.3 Creación de una base de datos SQL Server mediante el administrador corporativo...74 Capítulo 3. Creación y administración de tablas, relaciones e índices...83 3.1 Creación de tablas...83 3.1.1 Crear una tabla nueva con el diseñador de tablas...87 3.1.2 Modificar una tabla nueva con el diseñador de tablas...97 3.2 Creación de índices y claves...99 3.2.1 Creación de índices únicos...99 3.2.2 Creación de clave principal o primaria... 101 3.2.3 Creación de índices agrupados...104 3.3 Relaciones... 106 3.3.1 Crear una relación de clave foránea con el diseñador de tablas... 107 3.4 Restricciones check... 109 3.4.1 Crear una restricción check mediante el diseñador de tablas...110 3.4.2 Expresiones de restricción check...112 3.5 Diagramas de bases de datos...113 3.5.1 Creación de un diagrama de bases de datos... 114 3.5.2 Crear claves primarias, índices y restricciones en el diagrama de bases de datos. Insertar y eliminar columnas y tablas...114 3.5.3 Crear relaciones en el diagrama de bases de datos...116 3.5.4 Detalles de visualización en el diagrama de bases de datos...118 3.5.5 Crear una tabla y añadir una tabla nueva al diagrama...121 3.6 Introducción de datos en las tablas...122 Capítulo 4. Herramientas de consulta. Consultas del motor de base de datos y editor SQL...149 4.1 Introducción...149 4.2 Iniciación a las consultas y herramientas...150 4.3 Consultas del motor de base de datos. Editor sql...151 4.4 Realizar consultas en la ventana de consulta o editor sql...155 4.5 Modificación de la información en la ventana abrir tabla...163 4.6 Archivos sql y plantillas...166 4.7 Explorador de objetos...169 4.8 Selección de información de la base de datos. Introducción al comando Select de Transact-SQL...171 4.8.1 Cláusula FROM...173 4.8.2 Cláusua WHERE...173
RA-MA ÍNDICE 9 4.8.3 Cláusula GROUP BY...174 4.8.4 Cláusula ORDER BY...175 4.8.5 Cláusula HAVING...176 Capítulo 5. Ver y modificar datos con el diseñador de consultas... 185 5.1 Diseñador de consultas desde el editor SQL...185 5.2 Diseñador de consultas desde tablas o vistas...190 5.3 Paneles del diseñador de consultas...192 5.3.1 Panel diagrama...192 5.3.2 Panel cuadrícula o criterios...195 5.3.3 Panel SQL...197 5.3.4 Panel resultados...198 5.4 Operativa con consultas...198 5.5 Tipos de consultas...201 5.6 Consultas paramétricas...205 5.7 Tablas derivadas...208 5.8 Criterios de búsqueda...211 Capítulo 6. Elementos de Transact-SQL: formatos, tipos de datos, operadores y funciones...237 6.1 El lenguaje SQL...237 6.2 Utilizando Transact-SQL... 241 6.3 Elementos básicos de Transact-SQL...242 6.4 Identificadores...242 6.5 Tipos de datos...244 6.6 Formatos en Transact-SQL...247 6.7 Constantes...253 6.8 funciones...255 6.9 Conversión de tipos de datos...273 6.9.1 Funciones cast y convert...274 6.9.2 Conversiones explícitas e implícitas...275 6.10 Expresiones...276 6.11 Operadores...278 6.11.1 Clasificación de los operadores...278 6.11.2 Ejemplos de operadores...280 6.11.3 Orden de precedencia de los operadores...282 6.12 Palabras reservadas...282 6.13 Reglas de sintaxis en Transact-SQL...285 6.14 Comentarios en Transact-SQL...286
10 SQL SERVER 2008 RA-MA Capítulo 7. Transact-SQL. Lenguaje de consulta de datos: sentencia Select...293 7.1 Introducción...293 7.2 La sentencia SELECT...294 7.2.1 Cláusula SELECT...295 7.2.2 Cláusula INTO...297 7.2.3 Cláusula FROM...298 7.2.4 Cláusula WHERE...300 7.2.5 Cláusula GROUP BY...300 7.2.6 Cláusula HAVING...302 7.2.7 Operador UNION...302 7.2.8 Cláusula ORDER BY...303 7.2.9 Cláusula COMPUTE...303 7.2.10 Cláusula FOR...305 7.2.11 Cláusula OPTION...306 7.2.12 Observaciones relativas a la sentencia SELECT... 308 7.3 Selección de filas...310 7.3.1 Filas duplicadas y la cláusula DISTINCT...313 7.4 Ordenación de los resultados de una consulta...314 7.5 Columnas calculadas...317 7.6 Renombrar columnas: cláusula AS...319 7.7 Consultas con condiciones de búsqueda...321 7.7.1 Contrastes de comparación...321 7.7.2 Contraste de rango: cláusula BETWEEN AND...322 7.7.3 Contraste de pertenencia a un conjunto: cláusula IN...324 7.7.4 Contraste de correspondencia con patrón: cláusula LIKE...327 7.7.5 Contraste de valor nulo: cláusula IS NULL...330 7.7.6 Contrastes compuestos: cláusulas AND, OR y NOT...331 7.7.7 Combinación de consultas: cláusula UNION...334 Capítulo 8. Transact-SQL. Consultas multitabla (JOINS) y consultas resumen...353 8.1 Introducción...353 8.2 JOIN de dos tablas...354 8.2.1 JOINS con criterios de selección de filas...358 8.2.2 JOINS con múltiples columnas de emparejamiento...359 8.3 JOINS de tres o más tablas...359 8.3.1 JOIN con condiciones de búsqueda sin igualdad...363 8.4 JOINS internos y externos...364
RA-MA ÍNDICE 11 8.4.1 JOIN externo completo...365 8.4.2 JOIN externo izquierdo y derecho...365 8.5 INNER JOIN...367 8.6 LEFT JOIN, RIGHT JOIN...369 8.6.1 Casos especiales en consultas multitabla...372 8.7 Consultas resumen...376 8.7.1 Funciones de agregado en la lista de selección...376 8.7.2 Función COUNT(*)...380 8.7.3 Valores NULL en las funciones de agregado...381 8.7.4 Tratamiento de filas duplicadas con DISTINCT...382 8.7.5 Agrupar filas con GROUP BY...384 8.8 Resumir datos...390 8.8.1 Resumir datos con CUBE...391 8.8.2 Resumir datos con ROLLUP...392 Capítulo 9. Transact-SQL. Subconsultas y uso avanzado de funciones... 399 9.1 Subconsultas...399 9.1.1 Reglas de las subconsultas...404 9.1.2 Subconsultas con IN...405 9.1.3 Subconsultas con operadores de comparación...406 9.1.4 Subconsultas con EXISTS...408 9.1.5 Subconsultas con ANY, SOME o ALL...410 9.1.6 Subconsultas usadas en cualquier lugar de una expresión...412 9.1.7 Subconsultas con múltiples niveles de anidamiento...413 9.2 Subconsultas correlacionadas....414 9.2.1 Subconsultas correlacionadas con ALIAS...414 9.2.2 Subconsultas correlacionadas con operadores de comparación...415 9.2.3 Subconsultas correlacionadas con una cláusula HAVING...416 9.2.4 Unión, intersección y diferencia en subconsultas...417 9.3 Uso avanzado de funciones y variables...419 9.3.1 Funciones de cadena...419 9.3.2 Funciones numéricas...422 9.3.3 Funciones agregadas o estadísticas...423 9.3.4 Funciones de fechas y horas...426 9.3.5 Funciones de metadatos...430 9.3.6 Funciones de seguridad...431 9.3.7 Funciones del sistema...433
12 SQL SERVER 2008 RA-MA Capítulo 10. Transact-SQL. Lenguaje de definición de datos: administración de tablas...439 10.1 Introducción...439 10.2 Tablas, columnas y tipos de datos...439 10.3 Creación de tablas con create table...440 10.3.1 Definición de columnas...442 10.3.2 Restricciones de integridad...444 10.3.3 Restricciones de columna...450 10.3.4 Restricciones de tabla...452 10.3.5 Observaciones sobre las restricciones de integridad...455 10.3.6 Limitaciones en create table...461 10.4 Modificación de tablas con alter table...464 10.5 Borrado de tablas con drop table...474 Capítulo 11. Transact-SQL. Lenguaje de manipulación de datos: actualización de tablas... 483 11.1 Introducción...483 11.2 Agregar datos. La sentencia INSERT...483 11.2.1 Insertar una fila mediante INSERT INTO VALUES... 484 11.2.2 Insertar valores NULL...493 11.2.3 Insertar todas las columnas...494 11.2.4 Insertar varias filas mediante INSERT INTO SELECT...495 11.2.5 Sintaxis general de la sentencia INSERT...496 11.3 Eliminar datos. Las sentencias DELETE y TRUNCATE...498 11.3.1 Eliminar filas con DELETE...498 11.3.2 Eliminar todas las filas con TRUNCATE TABLE...504 11.4 Actualizar datos. La sentencia UPDATE...504 11.4.1 Cambiar datos con UPDATE...506 11.4.2 Actualización de todas las filas con UPDATE...507 11.4.3 UPDATE con subconsulta...508 Capítulo 12. Transact-SQL. Administrar vistas e índices y lenguaje de control de transacciones...523 12.1 Introducción...523 12.2 Vistas...523 12.2.1 Creación de una vista...527 12.2.2 Vistas horizontales...529 12.2.3 Vistas verticales...531 12.2.4 Vistas fila/columna...532 12.2.5 Vistas agrupadas...533
RA-MA ÍNDICE 13 12.2.6 Vistas compuestas...533 12.2.7 Actualización de vistas...535 12.2.8 Modificación de vistas con ALTER VIEW...536 12.2.9 Borrado de vistas con DROP VIEW...536 12.3 Índices...537 12.3.1 Borrado de índices...546 12.4 Procesamiento de transacciones...547 12.4.1 Sentencia BEGIN TRANSACTION...548 12.4.2 Sentencia COMMIT TRANSACTION...549 12.4.3 Sentencia COMMIT WORK...550 12.4.4 Sentencia SAVE TRANSACTION...551 12.4.5 Sentencia ROLLBACK TRANSACTION...551 Capítulo 13. Administrar SQL Server 2008...557 13.1 Concepto de instancia...557 13.1.2 Servicios de instancias...559 13.2 Administración de bases de datos: creación, modificación y eliminación...561 13.2.1 Creación de una base de datos mediante Transact-SQL...564 13.2.2 Modificación de una base de datos mediante Transact-SQL...566 13.2.3 Eliminación de una base de datos mediante Transact-SQL...569 13.3 Administración de instancias...570 13.4 Iniciar, pausar y detener SQL Server desde el administrador corporativo y sistema operativo...571 13.5 Iniciar, pausar y detener SQL Server desde SQL Server configuration manager....577 13.6 Información sobre bases de datos y sus objetos... 580 Capítulo 14. Administrar la seguridad. Lenguaje de control de datos con Transact-SQL... 583 14.1 Introducción...583 14.2 Seguridad de instancia...584 14.3 Autenticación y administración de usuarios...586 14.3.1 Crear una contraseña de usuario para acceso a SQL Server...587 14.3.2 Crear una cuenta de inicio de sesión en SQL Server...588 14.4 Seguridad de bases de datos...593 14.4.1 Conceder a cuentas de SQL Server el acceso a una base de datos...594 14.4.2 Usuarios por defecto de la base de datos...595 14.5 Funciones (roles) de bases de datos...597
14 SQL SERVER 2008 RA-MA 14.6 Administrar permisos sobre objetos de base de datos...602 14.6.1 Conceder permisos con Transact-SQL: la sentencia GRANT... 604 14.6.2 Denegar permisos con Transact-SQL: la sentencia DENY...606 14.6.3 Revocar permisos con Transact-SQL: la sentencia REVOKE...607 Capítulo 15. Copias de seguridad y restauración de bases de datos. Importación y exportación...609 15.1 Introducción...609 15.2 Modelos de recuperación...609 15.2.1 Recuperación simple: copias de seguridad de bases de datos completa...610 15.2.2 Crear una copia de seguridad completa de base de datos mediante Transact-SQL: la sentencia BACKUP DATABASE...613 15.2.3 Recuperación simple: copias de seguridad diferencial de bases de datos...614 15.2.4 Crear una copia de seguridad diferencial de base de datos mediante Transact-SQL: la sentencia BACKUP DATABASE...615 15.2.5 Recuperación simple: restaurar una copia de seguridad completa de bases de datos... 615 15.2.6 Restaurar una copia de seguridad completa de bases de datos mediante Transact-SQL... 618 15.2.7 Recuperación simple: restaurar una copia de seguridad diferencial de bases de datos.... 619 15.2.8 Restaurar una copia de seguridad diferencial de bases de datos mediante Transact-SQL... 619 15.2.9 Recuperación completa: copias de seguridad de registro de transacciones... 619 15.3 Crear una copia de seguridad de registro de transacciones mediante Transact-SQL...621 15.3.1 Recuperación de registro masivo... 622 15.3.2 Recuperar bases de datos sin restaurar mediante Transact-SQL...623 15.3.3 Reiniciar operaciones de copia de seguridad y restauración interrumpidas mediante Transact-SQL...623 15.4 Administrar copias de seguridad...624 15.4.1 Dispositivos de copia de seguridad...624 15.4.2 Información de copias de seguridad...626 15.4.3 Comprobación de copias de seguridad..... 628 15.5 Copiar o mover bases de datos entre servidores: asistente para copiar bases de datos...629 15.6 La sentencia BACKUP...635 15.7 La sentencia RESTORE...637
RA-MA ÍNDICE 15 15.8 Importación y exportación de datos... 639 15.8.1 Herramienta BCP...640 15.8.2 Asistente de importación y exportación con DTS... 643 15.8.3 Importación de datos de Microsoft Access...646 15.8.4 Importación de datos de Microsoft Excel...649 15.8.5 Exportación de datos a Microsoft Excel... 653 15.8.6 Exportación de datos a Microsoft access... 655 15.9 Adjuntar y separar bases de datos... 657 15.10 Desconectar y conectar una base de datos... 661 15.11 Reducir una base de datos... 663 15.12 Reflejar una base de datos... 666 Índice alfabético...669