UNIVERSIDAD NACIONAL DE INGENIERIA. Microsoft. SQL Server Express Edición. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "UNIVERSIDAD NACIONAL DE INGENIERIA. Microsoft. SQL Server 2005. Express Edición. Profesor Henry Chavez Viera SQL Server 2005 Express Pag."

Transcripción

1

2 Microsoft SQL Server 2005 Express Edición Profesor Henry Chavez Viera SQL Server 2005 Express Pag.2

3 Presentacion Microsoft SQL Server 2005 Express Edición (SQL Server Express) es una plataforma de base de datos que se basa en Microsoft SQL Server Es también la sustitución de Microsoft Desktop Engine (MSDE). Gracias a su integración con Microsoft Visual Studio 2005, SQL Server Express facilita el desarrollo de aplicaciones controladas por datos con gran variedad de funciones, que mejoran la seguridad del almacenamiento y se implementan con rapidez. SQL Server Express se descarga gratuitamente y se puede redistribuir previo acuerdo entre las partes. Cada edición puede servir como base de datos cliente y como base de datos básica de servidor. Ambas ediciones de SQL Server Express constituyen una opción idónea para fabricantes independientes de software (ISV), usuarios de servidor, programadores no profesionales, programadores Web, alojamientos de sitios Web y aficionados a crear aplicaciones cliente. Si necesita características de base de datos más avanzadas, puede actualizar SQL Server Express a versiones más sofisticadas de SQL Server Microsoft SQL Server 2005 Express Edición (SQL Server Express) se basa en Microsoft SQL Server 2005 y admite la mayoría de las características del Database Engine (Motor de base de datos) de ese producto y de las versiones anteriores de Microsoft SQL Server. Si crea y diseña una base de datos en SQL Server Express, puede migrarla a SQL Server Sin embargo, no podrá utilizar la base de datos de SQL Server Express con versiones anteriores de SQL Server, como SQL Server MCTS. Henry Chavez Viera Docente de sistemas UNI Profesor Henry Chavez Viera SQL Server 2005 Express Pag.3

4 Las 10 Características más importantes sobre SQL Server 2005 Express Edition Soporte integrado para el common language runtime (CLR). Los procesos y funciones almacenados pueden ser escritos utilizando tu lenguaje de programación favorito. Soporte XML nativo. Soporte de XCopy para mover Bases de Datos de un sitio a otro. Instalación robusta y fiable utilizando tanto el interfaz gráfico de usuario (graphical user interface - GUI) como el modo silencioso. Servicio y parcheado automatizado. Profunda integración con Visual Studio para proporcionar acceso a ricos controles de datos como DataGridView, DataNavigator, y DataConnector. Soporte para Bases de Datos de hasta 4GB. Soporte para sistemas desconectados con SQL Server Service Broker and Replication. SQL Server Express Manager, una nueva y sencilla de usar herramienta de gestión de bases de datos y análisis de queries. Implantación más sencilla mediante Visual Studio ClickOnce. En la siguiente lista se destacan los componentes principales de SQL Server 2005 que no son compatibles con SQL Server Express: Reporting Services Notification Services Integration Services Analysis Services Búsqueda de texto Servicios OLAP y minería de datos Requisitos de instalacion En la tabla siguiente se muestran los requisitos previos de software y los requisitos mínimos de hardware y software para ejecutar Microsoft SQL Server 2005 Express Edition (SQL Server Express). Para determinar si su equipo cumple los requisitos del sistema, en el menú Inicio, haga clic con el botón secundario en Mi PC y, a continuación, haga clic en Propiedades. En la ficha General se muestra el tipo de CPU y la velocidad, así como la cantidad de memoria instalada (RAM). Requisitos previos de software Microsoft.NET Framework 2.0 SP1 de Microsoft Internet Explorer 6.0 o posterior Profesor Henry Chavez Viera SQL Server 2005 Express Pag.4

5 (requisito previo para.net Framework) RAM Mínimo: 192 MB Recomendado: 512 MB o más Espacio en el disco duro 600 MB de espacio libre Compatible con Pentium III o superior Procesador Mínimo: 500 MHz Recomendado: 1 GHz o más Windows Server 2003 SP1 Windows Server 2003 Enterprise Edition SP1 Windows Server 2003 Datacenter Edition SP1 Windows Small Business Server 2003 Standard Edition SP1 Windows Small Business Server 2003 Premium Edition SP1 Sistema operativo Windows XP Professional SP2 Windows XP Home Edition SP2 Windows XP Tablet Edition SP2 Windows XP Media Edition SP2 Windows 2000 Professional Edition SP4 Windows 2000 Server Edition SP4 Windows 2000 Advanced Edition SP4 Windows 2000 Datacenter Server Edition SP4 Profesor Henry Chavez Viera SQL Server 2005 Express Pag.5

6 S SESION 1 Qué es el SQL Server? Herramientas del sistema del SQL Server 2005 EE. Roles y responsabilidades del implementado de base de datos. Bases de datos. Componentes lógicos: registro de datos y registro de transacciones. Componentes físicos: archivos y grupos de archivos de bases de datos. Catálogos del sistema. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.6

7 Herramientas del sistema del SQL Server 2005 EE Configuración de SQL Server Una vez instalado la versión Express de SQL Server 2005 veamos que ha quedado instalado en nuestro pc, para ello acudimos al menú de inicio, todos los programas y localizamos el paquete añadido por nuestra instalación: Vemos que dentro del paquete Microsoft SQL Server 2005, accedemos a un menú con unas herramientas de configuración, estas herramientas son: De estas herramientas, para nuestros intereses nos basta con conocer la primera de todas (SQL Server Configuration Manager). Desde ella podremos configurar el acceso y el modo de arranque de nuestro servidor de datos. Arrancamos la aplicación y nos encontramos la siguiente pantalla: Profesor Henry Chavez Viera SQL Server 2005 Express Pag.7

8 De todas las posibles herramientas de configuración a las que podemos optar nosotros tenemos que destacar la primera de todas, SQL Server 2005 Services, desde la cual podremos configurar dos de los aspectos más importantes de nuestro servidor. Por lo tanto hacemos doble click en el icono correspondiente y accedemos a los servidores de bases de datos instalados en nuestro pc. Teniendo que configurar el primero de todos: Haciendo click con el botón derecho accedemos al menú desde el cual vemos que tenemos habilitadas una serie de opciones. El primer bloque de opciones hace referencia al estado de nuestro servidor, la opción propiedades para configuración y la última una pequeña ayuda que nos ofrecen en la instalación. De nuevo, podemos comparar el servicio de base de datos de SQL Server 2005, con el servicio de páginas Web de IIS, como ya conoces, desde la configuración de IIS tenemos la opción de configurar una serie de propiedades, y establecer el estado del servidor de páginas web. De igual manera desde SQL Server Configuration Manager, podemos realizar estas mismas tareas sobre los servicios de base de datos. Opción: Función: start Para activar nuestro servidor de modo manual. Si el servidor se encuentra en funcionamiento, lógicamente esta función aparecerá deshabilitada, lo mismo sucederá con el resto de opciones. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.8

9 stop pause resume restart propiedades ayuda Detiene el servidor. Detiene el servidor momentáneamente. Una vez detenido el servidor mediante "pause", lo vuelve a poner en marcha. Detiene el servidor, e inmediatamente vuelve a activarlo. Accedemos a una ventana para llevar a cabo varias configuraciones. Pequeña ayuda sobre este servicio. Veamos ahora como configurar ciertos aspectos del servidor desde la ventana de configuración que aparece pulsando sobre propiedades: La ventana aparece con la pestaña Iniciar sesion, activada, desde esta ventana configuramos los permisos de acceso al servidor. Es muy importante configurar debidamente estos accesos. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.9

10 Primero podemos indicar el modo de la cuenta, o bien indicar que la cuenta será la activada en nuestro servidor. En nuestro caso lo configuraremos para que el administrador de nuestro pc sea el usuario predeterminado para tener permisos de administración. Cuando instalamos nuestros servicios en el servidor de una empresa debemos operar de diferente método, creando un usuario específico para la administración de la base de datos, es bastante lógico crear un usuario para esta tarea, ya que es posible que modifiquemos las características de usuarios para otras tareas y para que estos cambios no afecten a SQL Server es mejor que tenga un único usuario fijo para esta tarea. Y por último tenemos a nuestra disposición una serie de botones para actuar sobre el estado del servidor. Sigamos con la configuración pinchando en la pestaña Service. Destacamos la propiedad Modo de inicio, desde ella podemos habilitar 3 modos diferentes de activar nuestro servidor: Opción: Función: Automatico Con esta opción, el servidor arrancará conjuntamente con el sistema, es decir, cuando nuestro sistema operativo arranque, el servidor de base de datos se activará automáticamente, esta es la opción más habitual y recomendad, ya que Profesor Henry Chavez Viera SQL Server 2005 Express Pag.10

11 nuestro servidor estará permanentemente ofreciendo sus servcios. Deshabilitado Manual Deshabilitamos el arranque del servidor. El modo de gestionar el estado del servidor será manual por parte del desarrollador mediante las opciones que vimos anteriormente. No entraremos a explicar las opciones avanzadas ya que no entraría dentro de los objetivos de este curso. En el siguiente video se explica detenidamente como dejar configurado nuestro servidor, presta atención a todos los aspectos explicados. Herramienta de administración y gestión de SQL Server 2005 Con la instalación y la configuración que acabamos de ver ya podríamos comenzar a trabajar con las bases de datos. Para crear y gestionar nuestras tablas, procedimientos almacenados, etc nos veríamos obligados a hacerlo desde Visual Studio. Pero, como ya sabes, el objetivo final del curso es el desarrollo de una aplicación profesional, para la cual nuestra base de datos estará integrada de una gran cantidad de tablas y procedimientos almacenados. Por este motivo, nos ayudaremos de una segunda herramienta que nos permita administrar nuestra base de datos, realizar comprobaciones, y otro tipo de tareas. Esta segunda herramienta es Sql Server Management Studio Express, la cual no se instala con la herramientas de configuración y debemos descargarla por separado desde la página de Microsoft. Por si nunca la has descargado o instalado te dejo el enlace para descargarla, basta con descargar y seguir el asistente de instalación, es el mismo enlace que has encontrado en el anterior capitulo. Una vez instalada esta herramienta, vemos que ha sido añadida a nuestro paquete de software de SQL Server 2005: Con SQL Server Management Studio hemos instalado un conjunto de herramientas para realizar todas las tareas necesarias. Nota: Si has desarrollado bases de datos con SQL Server 2000, debes saber que con SQL Server Management Studio se instalan todas las herramientas en una sóla, y no en paquetes separados. Vamos a ir viendo paso a paso, como trabajar con esta herramienta. De modo que al finalizar este capítulo, tengamos creada una base de datos y seas capaz más adelante de crear tus propias bases de datos, con sus tablas bien estructuradas, Profesor Henry Chavez Viera SQL Server 2005 Express Pag.11

12 etc... Por lo tanto combinaremos explicaciones sobre SQL Server Mangement Studio con otros aspectos importantes del diseño de base de datos. Comencemos con la herramienta, desde el menú de inicio arrancamos la aplicación y nos encontramos con una ventana de conexión. Desde esta ventana, te debe recordar a lo explicado en las herramientas de configuración. Antes de comenzar a trabajar con el administrador, debemos indicar a que servidor y con que usuario queremos conectar y entrar al administrador. Propiedad: Opciones: Función: Nombre del servidor: Elegimos el servidor con el que conectaremos. El nombre del servidor, que elijamos para conectar con el administrador. Debes recordar este nombre, porque será el que tengas que utilizar en las cadenas de conexión desde.net. Autenticacion: Autenticacion Windows Autenticacion SQL Server Si elegimos la opción " Autenticacion Windows" estaremos conectando con la misma cuenta de usuario con la que iniciamos nuestro sistema. Trabajaremos con esta opción a lo largo del curso. Si seleccionamos " Autenticacion SQL Server" deberemos indicar con que cuenta vamos a conectar e introducir la Profesor Henry Chavez Viera SQL Server 2005 Express Pag.12

13 contraseña específica para conectar con SQL Server. Con la versión SQL Server 2005 Express es más recomendable trabjar con "Windows Authentication" ya que de otro modo podemos encontrar problemas por la limitación de la versión gratuita. Elegidas nuestras opciones adecuadas pulsaremos en conectar, en ese momento nos muestra una ventana con el proceso de conexión y si todo ha resultado correcto, arranca nuestra herramienta de administración. Nota: En este curso utilizaremos esta herramienta para diseñar bases de datos, crear cuentas de usuario y ejecutar nuestras sentencias SQL, necesarias para la gestión de datos, mediante el administrador de consultas. Todo lo demás quedaría para un curso específico de administración y mantenimiento de bases de datos con SQL Server Por lo tanto no te preocupes al observar que no se explican todas las características, ya que las tareas que vamos a aprender, son las necesarias para desarrollar nuestras aplicaciones. Bases de datos de SQL Server Componentes lógicos: registro de datos y registro de transacciones. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.13

14 SQL Server 2005 asigna una base de datos a un conjunto de archivos del sistema operativo. Los datos y la información del registro nunca se mezclan en el mismo archivo, y cada archivo sólo es utilizado por una base de datos. Los grupos de archivos se denominan colecciones con nombre de archivos que se utilizan como ayuda en tareas de colocación de datos y administrativas, como las operaciones de copia de seguridad y restauración. Las bases de datos de SQL Server 2005 utilizan tres tipos de archivos: Archivos de datos principales El archivo de datos principal es el punto de partida de la base de datos y apunta a los otros archivos de la base de datos. Cada base de datos tiene un archivo de datos principal. La extensión recomendada para los nombres de archivos de datos principales es.mdf. Archivos de datos secundarios Los archivos de datos secundarios son todos los archivos de datos menos el archivo de datos principal. Puede que algunas bases de datos no tengan archivos de datos secundarios, mientras que otras pueden tener varios archivos de datos secundarios. La extensión de nombre de archivo recomendada para los archivos de datos secundarios es.ndf. Archivos de registro Los archivos de registro almacenan toda la información de registro que se utiliza para recuperar la base de datos. Como mínimo, tiene que haber un archivo de registro por cada base de datos, aunque puede haber varios. La extensión de nombre de archivo recomendada para los archivos de registro es.ldf. En SQL Server 2005, las ubicaciones de todos los archivos de una base de datos se graban tanto en el archivo principal de la base de datos como en la base de datos master. SQL Server Database Engine (Motor de base de datos de SQL Server) utiliza casi siempre la información de ubicación del archivo de la base de datos master. Sin embargo, Database Engine (Motor de base de datos) utiliza la información de ubicación del archivo principal para inicializar las entradas de ubicación de archivos de la base de datos master en las siguientes situaciones: Al adjuntar una base de datos mediante la instrucción CREATE DATABASE con la opción FOR ATTACH Al actualizar de SQL Server versión 2000 o versión 7.0 a SQL Server Al restaurar la base de datos master. Los archivos de SQL Server 2005 tienen dos nombres: logical_file_name logical_file_name es el nombre que se utiliza para hacer referencia al archivo en todas las instrucciones Transact-SQL. El nombre de archivo lógico tiene que cumplir las reglas de los identificadores de SQL Server y tiene que ser único entre los nombres de archivos lógicos de la base de datos. os_file_name os_file_name es el nombre del archivo físico que incluye la ruta de acceso al directorio. Debe seguir las reglas para nombres de archivos del sistema operativo. La siguiente ilustración muestra ejemplos de los nombres de archivo lógico y físico de una base de datos creada en una instancia predeterminada de SQL Server 2005: Profesor Henry Chavez Viera SQL Server 2005 Express Pag.14

15 Los archivos de datos y de registro de SQL Server se pueden colocar en sistemas de archivos FAT o NTFS. Se recomienda utilizar el sistema de archivos NTFS por las características de seguridad que ofrece. No se pueden colocar grupos de archivos de datos de lectura y escritura, y archivos de registro, en un sistema de archivos NTFS comprimido. Sólo las bases de datos de sólo lectura y los grupos de archivos secundarios de sólo lectura se pueden colocar en un sistema de archivos NTFS comprimido. Para obtener más información, vea Grupos de archivos de sólo lectura y compresión. Cuando se ejecutan varias instancias de SQL Server en un único equipo, cada instancia recibe un directorio predeterminado diferente para albergar los archivos de las bases de datos creadas en la instancia. Páginas de archivo de datos Las páginas de un archivo de SQL Server 2005 están numeradas secuencialmente, comenzando por 0 para la primera página del archivo. Cada archivo de una base de datos tiene un número de identificador único. Para identificar de forma única una página de una base de datos, se requiere el identificador del archivo y el número de la página. El siguiente ejemplo muestra los números de página de una base de datos que tiene un archivo de datos principal de 4 MB y un archivo de datos secundario de 1 MB. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.15

16 La primera página de cada archivo es una página de encabezado de archivo que contiene información acerca de los atributos del archivo. Algunas de las otras páginas del comienzo del archivo también contienen información de sistema, como mapas de asignación. Una de las páginas de sistema almacenadas en el archivo de datos principal y en el archivo de registro principal es una página de inicio de la base de datos que contiene información acerca de los atributos de la base de datos. Para obtener más información acerca de las páginas y los tipos de páginas, vea Páginas y extensiones. Tamaño de archivo Los archivos de SQL Server 2005 pueden crecer automáticamente a partir del tamaño originalmente especificado. Cuando se define un archivo, se puede especificar un incremento de crecimiento. Cada vez que se llena el archivo, el tamaño aumenta en la cantidad especificada. Si hay varios archivos en un grupo de archivos, no crecerán automáticamente hasta que todos los archivos estén llenos. A continuación, el crecimiento tiene lugar por turnos. Cada archivo también puede tener un tamaño máximo especificado. Si no se especifica un tamaño máximo, el archivo puede crecer hasta utilizar todo el espacio disponible en el disco. Esta característica es especialmente útil cuando SQL Server se utiliza como una base de datos incrustada en una aplicación para la que el usuario no dispone fácilmente de acceso a un administrador del sistema. El usuario puede dejar que los archivos crezcan automáticamente cuando sea necesario y evitar así las tareas administrativas de supervisar la cantidad de espacio libre en la base de datos y asignar más espacio manualmente. Catálogos del sistema Las aplicaciones dinámicas que no están codificadas de forma rígida para funcionar con un conjunto específico de tablas y vistas deben disponer de un mecanismo para determinar la estructura y los atributos de los objetos de cualquier base de datos a la que se conectan. Las aplicaciones pueden necesitar información como la siguiente: El número y nombre de las tablas y vistas de una base de datos. El número de columnas de una tabla o vista, junto con el nombre, el tipo de datos, la escala y la precisión de cada columna. Las restricciones definidas en una tabla. Los índices y las claves definidos para una tabla. El catálogo del sistema de SQL Server 2005 proporciona esta información para las bases de datos de SQL Server. El núcleo de los catálogos del sistema de SQL Server 2005 es un conjunto de vistas que muestran metadatos que describen los objetos de una instancia de SQL Server. Los metadatos son datos que describen los atributos de los objetos de un sistema Profesor Henry Chavez Viera SQL Server 2005 Express Pag.16

17 S SESION 2 Generación de scripts en SQL Transact. Lenguaje SQL Transact DML para la manipulación de los datos. Inserción de filas - sentencia INSERT. Actualización de filas - sentencia UPDATE. Eliminación de filas - sentencia DELETE Profesor Henry Chavez Viera SQL Server 2005 Express Pag.17

18 GENERACIÓN DE SCRIPTS EN SQL TRANSACT Transact-SQL es fundamental para trabajar con SQL Server. Todas las aplicaciones que se comunican con SQL Server lo hacen enviando instrucciones Transact-SQL al servidor, independientemente de la interfaz de usuario de la aplicación En esta lección se muestra cómo crear una base de datos, crear una tabla en la base de datos y, a continuación, tener acceso a los datos de la tabla y cambiarlos. Puesto que esta lección es una introducción al uso de Transact-SQL, no usa ni describe las múltiples opciones disponibles para estas instrucciones. Las instrucciones de Transact-SQL se pueden escribir y enviar a Database Engine (Motor de base de datos) de las siguientes maneras: Mediante el uso de SQL Server Management Studio. En este tutorial se supone que se usa Management Studio, pero también puede usarse Management Studio Express, disponible como descarga gratuita en el Centro de descargas de Microsoft. MICROSOFT SQL SERVER MANAGEMENT STUDIO EXPRESS Microsoft SQL Server Management Studio Express (SSMSE) es una herramienta gráfica de administración gratuita y fácil de usar para SQL Server 2005 Express Edition y SQL Server 2005 Express Edition with Advanced Services. ABRIR SQL SERVER MANAGEMENT STUDIO Para abrir SQL Server Management Studio 1. En el menú Inicio, seleccione Todos los programas, Microsoft SQL Server 2005 y, a continuación, haga clic en SQL Server Management Studio. 2. En el cuadro de diálogo Conectar al servidor, compruebe la configuración predeterminada y, a continuación, haga clic en Conectar. Para conectarse, el cuadro Nombre del servidor debe contener el nombre del equipo en el que está instalado SQL Server. Si Database Engine (Motor de base de datos) es una instancia con nombre, el cuadro de nombre de servidor también debe contener el nombre de la instancia con el formato<nombredeequipo>\<nombredeinstancia> Profesor Henry Chavez Viera SQL Server 2005 Express Pag.18

19 2- Con el botón derecho (o el botón secundario), pulsa en Bases de datos y del menú selecciona Nueva base de datos, tal como te muestro en la figura 2. Figura 2. Crear una nueva base de datos 3- Eso hará que te muestre una ventana como la de la figura 3. A la base de datos, le vas a dar el nombre PruebasGuille, así que escribe ese nombre en la caja de textos correspondiente y después pulsa en el botón Aceptar. Figura 3. Cuadro de diálogo de Nueva base de datos Profesor Henry Chavez Viera SQL Server 2005 Express Pag.19

20 COMANDO CREATE DATABASE Sintaxis del comando Create Database: NAME = Nombre_del_archivo_lógico, FILENAME = Nombre_del_archivo_en_el_sistema (path completo) SIZE = TAMAÑO (inicial) MAXSIZE = (tamaño_máximo UNLIMITED) (Tamaño máximo que puede tener la base de datos, UNLIMITED = tamaño ilimitado) FILEGROWTH = Incremento del archivo (crecimiento en MB) 1. Ahora crearemos la base de Datos Ventas /*Crear la base de datos con el comando Create database*/ CREATE DATABASE VENTAS ON /*Generando el archivo de datos*/ ( NAME = ventas_data, FILENAME = 'c:\program files\microsoft sql server\mssql\data\ventas_data.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) /*Generando el archivo de registro*/ LOG ON ( NAME = Pruebas_log', FILENAME = 'c:\program files\microsoft sql server\mssql\data\ventas_log.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) Seleccione todas las instrucciones y pulse F5 ABRIR SU BASE DE DATOS 1. Escribe el comando siguiente : USE VENTAS 2. Seleccione el comando y pulse F5 Profesor Henry Chavez Viera SQL Server 2005 Express Pag.20

21 MODIFICAR UNA BASE DE DATOS CREADA COMANDO ALTER DATABASE Añade o elimina archivos o grupos de archivos de una base de datos. Se puede usar también para modificar las propiedades de archivos y grupos de archivos CREATE DATABASE BDEMPRESA ON ( NAME = Emp_dat1, FILENAME = 'c:\program Files\Microsoft SQL Server\MSSQL\Data\Emp_dat1.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ) GO ALTER DATABASE BDEMPRESA ADD FILE ( NAME = Emp_dat2, FILENAME = 'c:\program Files\Microsoft SQL Server\MSSQL\Data\Emp_dat2.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB ) GO AÑADIR UN GRUPO DE ARCHIVOS A LA BASE DE DATOS USE master GO ALTER DATABASE VENTAS ADD FILEGROUP GP_VENTAS GO ALTER DATABASE VENTAS ADD FILE ( NAME = Ventas_dat3, FILENAME = 'c:\program Files\Microsoft SQL Server\MSSQL\Data\Ventas_dat3.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB), ( NAME =ventas_dat4, FILENAME = 'c:\program Files\Microsoft SQL Server\MSSQL\Data\Ventas_dat4.ndf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB) TO FILEGROUP GP_VENTAS ALTER DATABASE BDEMPRESA MODIFY FILEGROUP GPVENTAS DEFAULT Profesor Henry Chavez Viera SQL Server 2005 Express Pag.21

22 AÑADIR ARCHIVOS LOG A LA BASE DE DATOS USE master GO ALTER DATABASE BDEMPRESA ADD LOG FILE ( NAME = Emp_log2, FILENAME = 'c:\program Files\Microsoft SQL Server\MSSQL\Emp_log2.ldf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB), ( NAME =Fact_log3, FILENAME = 'c:\program Files\Microsoft SQL Server\MSSQL\Emp_log3.ldf', SIZE = 5MB, MAXSIZE = 100MB, FILEGROWTH = 5MB) GO ELIMINAR FICHEROS DE LA BASE DE DATOS USE MASTER GO ALTER DATABASE DBEMPRESA REMOVE FILE Emp_dat4 GO MODIFICAR UN ARCHIVO DE DATOS USE master GO ALTER DATABASE BDEMPRESA MODIFY FILE (NAME = Emp_dat3, SIZE = 20MB) GO CAMBIAR EL NOMBRE A UNA BASE DE DATOS El comando Alter Database no permite cambiar el nombre a una base de datos en su lugar utilice el procedimiento almacenado SP_RENAMEDB Este ejemplo cambia el nombre de la base de datos BDEMPRESA por BDNEPTUNO EXEC sp_renamedb 'BDEMPRESA', 'BDNEPTUNO' Profesor Henry Chavez Viera SQL Server 2005 Express Pag.22

23 CREACIÓN DE TABLAS Para crear una tabla en su base de datos utilice el comando CREATE TABLE COMANDO CREATE TABLE CREATE TABLE Empleados (Nombre VARCHAR (25), Apellidos VARCHAR (50)) (Crea una nueva tabla llamada Empleados con dos campos, uno llamado Nombre de tipo VarChar y longitud 25 y otro llamado apellidos con longitud 50). CREATE TABLE Empleados ( Nombre VARCHAR (10), Apellidos VARCHAR, FechaNacimiento DATETIME ) CONSTRAINT Índicegeneral UNIQUE ( Nombre, Apellidos, FechaNacimiento) Resultado: Tabla Empleados Nombre Apellidos FechaNacimiento (Crea una nueva tabla llamada Empleados con un campo Nombre de tipo texto (Varchar) y longitud 10, otro con llamado Apellidos de tipo texto (Varchar) y longitud predeterminada (50) y uno más llamado FechaNacimiento de tipo Fecha/Hora.(Datetime) También crea un índice único - no permite valores repetidos - formado por los tres campos.) GENERAR UNA TABLA CON UN CAMPO AUTONUMERICO El valor IDENTITY define que el campo Idalumno es autonumerico y empieza en el valor 100 y se incrementara de 1 en 1 PRIMARY KEY que el campo IDALUMNO es Clave Primaria de la tabla NOT NULL El ingreso de este dato es obligatorio CREATE TABLE ALUMNOS (IDALUMNO INT NOT NULL IDENTITY(100,1) PRIMARY KEY, NOMBRE VARCHAR(40) NOT NULL, APELLIDOS VARCHAR(40) NOT NULL, SEXO BIT NOT NULL, FECHANACIMIENTO DATETIME NOT NULL) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.23

24 GENERAR UN CAMPO AUTOGENERADO Se puede generar un campo que sera el producto de una operación entre otros campos Por ejemplo PROMEDIO es el producto del calculo de la suma de N1+N2+N3 CREATE TABLE NOTAS (IDREGISTRO INT NOT NULL IDENTITY(1,1) PRIMARY KEY, IDALUMNO INT NOT NULL, CURSO VARCHAR(40) NOT NULL, N1 DECIMAL NOT NULL, N2 DECIMAL NOT NULL, N3 DECIMAL NOT NULL, PROMEDIO AS N1+N2+N3, APROBADO BIT NOT NULL) GENERAR UN VALOR PREDETERMINADO PARA UN CAMPO CREATE TABLE CURSOS (IDCURSO INT NOT NULL IDENTITY(1,1) PRIMARY KEY, NOMBRECURSO VARCHAR(35) NOT NULL, COSTO MONEY DEFAULT(200)) GENERAR UNA REGLA PARA UN CAMPO DE UNA TABLA CREATE TABLE MATRICULAS (IDMATRICULA INT NOT NULL PRIMARY KEY, FECHAMATRICULA DATETIME NOT NULL, PAGO MONEY CHECK (PAGO>100)) UTILIZAR EL TIPO DE DATOS UNIQUEIDENTIFIER EN UNA COLUMNA Este ejemplo crea una tabla con una columna UNIQUEIDENTIFIER. Utiliza una restricción PRIMARY KEY para impedir que los usuarios inserten valores duplicados y utiliza la función NEWID() de la restricción DEFAULT para proporcionar valores para las nuevas filas. CREATE TABLE PROFESORES (IDPROFESOR UNIQUEIDENTIFIER CONSTRAINT Guid_Default DEFAULT NEWID(), NOMBRES VARCHAR(60), CONSTRAINT Guid_PK PRIMARY KEY (IDPROFESOR) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.24

25 CREAR GENERAR UNA TABLA CON UN CAMPO AUTONUMERICO El valor IDENTITY define que el campo Idalumno es autonumerico y empieza en el valor 100 y se incrementara de 1 en 1 PRIMARY KEY que el campo IDALUMNO es Clave Primaria de la tabla NOT NULL El ingreso de este dato es obligatorio CREATE TABLE ALUMNOS (IDALUMNO INT NOT NULL IDENTITY(100,1) PRIMARY KEY, NOMBRE VARCHAR(40) NOT NULL, APELLIDOS VARCHAR(40) NOT NULL, SEXO BIT NOT NULL, FECHANACIMIENTO DATETIME NOT NULL) GENERAR UN CAMPO AUTOGENERADO Se puede generar un campo que sera el producto de una operación entre otros campos Por ejemplo PROMEDIO es el producto del calculo de la suma de N1+N2+N3 CREATE TABLE NOTAS (IDREGISTRO INT NOT NULL IDENTITY(1,1) PRIMARY KEY, IDALUMNO INT NOT NULL, CURSO VARCHAR(40) NOT NULL, N1 DECIMAL NOT NULL, N2 DECIMAL NOT NULL, N3 DECIMAL NOT NULL, PROMEDIO AS N1+N2+N3, APROBADO BIT NOT NULL) GENERAR UN VALOR PREDETERMINADO PARA UN CAMPO CREATE TABLE CURSOS (IDCURSO INT NOT NULL IDENTITY(1,1) PRIMARY KEY, NOMBRECURSO VARCHAR(35) NOT NULL, COSTO MONEY DEFAULT(200)) GENERAR UNA REGLA PARA UN CAMPO DE UNA TABLA CREATE TABLE MATRICULAS (IDMATRICULA INT NOT NULL PRIMARY KEY, FECHAMATRICULA DATETIME NOT NULL, PAGO MONEY CHECK (PAGO>100)) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.25

26 UTILIZAR EL TIPO DE DATOS UNIQUEIDENTIFIER EN UNA COLUMNA Este ejemplo crea una tabla con una columna UNIQUEIDENTIFIER. Utiliza una restricción PRIMARY KEY para impedir que los usuarios inserten valores duplicados y utiliza la función NEWID() de la restricción DEFAULT para proporcionar valores para las nuevas filas. CREATE TABLE PROFESORES (IDPROFESOR UNIQUEIDENTIFIER CONSTRAINT Guid_Default DEFAULT NEWID(), NOMBRES VARCHAR(60), CONSTRAINT Guid_PK PRIMARY KEY (IDPROFESOR) CREAR UNA TABLA CON UNA CLAVE PRIMARIA COMPUESTA CREATE TABLE [DETALLES DE PEDIDOS] (IDPEDIDO INT,IDPRODUCTO INT,CANTIDAD INT,PRECIOUNIDAD MONEY PRIMARY KEY(IDPEDIDO,IDPRODUCTO)) CREAR UNA TABLA EN UN GRUPO DE ARCHIVOS Este ejemplo crea la tabla NOTAS en un grupo GP_EVALUACIONES de la base de datos BDCOLEGIO CREADA ANTERIORMENTE CREATE TABLE NOTAS (IDREGISTRO INT NOT NULL IDENTITY(1,1) PRIMARY KEY, IDALUMNO INT NOT NULL, CURSO VARCHAR(40) NOT NULL, N1 DECIMAL NOT NULL, N2 DECIMAL NOT NULL, N3 DECIMAL NOT NULL, PROMEDIO AS N1+N2+N3, APROBADO BIT NOT NULL) ON GP_EVALUACIONES Este ejemplo crea una tabla MATRICULAS y lo añade al grupo existente GP_MATRICULAS CREATE TABLE MATRICULAS (IDREGISTRO INT NOT NULL IDENTITY(1,1) PRIMARY KEY, IDALUMNO INT NOT NULL, CURSO VARCHAR(40) NOT NULL, FECHAMATRICULA DATETIME NOT NULL, PROMEDIO AS N1+N2+N3) ON GP_MATRICULAS Profesor Henry Chavez Viera SQL Server 2005 Express Pag.26

27 COMO CREAR TABLAS ESTABLECIENDO RELACION 1. Vamos a desarrollar el siguiente ejemplo de relacion de tablas para ello usaremos el Analizador de Consultas.El objetivo sera relacionar las tablas CATEGORIAS,PROVEEDORES Y PRODUCTOS aplicando la ACTUALIZACION Y ELIMINACION en CASCADA. Este ejemplo asume las tablas que CATEGORIAS Y PROVEEDORES ya existen CREATE TABLE PRODUCTOS (IDPRODUCTO INT IDENTITY NOT NULL PRIMARY KEY,NOMBREPRODUCTO VARCHAR(50), IDPROVEEDOR INT REFERENCES PROVEEDORES(IDPROVEEDOR) ON UPDATE CASCADE ON DELETE CASCADE, IDCATEGORIA INT REFERENCES CATEGORIAS(IDCATEGORÍA) ON UPDATE CASCADE ON DELETE CASCADE, CANTIDADPORUNIDAD INT,PRECIOUNIDAD MONEY,UNIDADESENEXISTENCIA INT, UNIDADESENPEDIDO INT,NIVELNUEVOPEDIDO TINYNT,SUSPENDIDO BIT) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.27

28 2. En este segundo ejemplo se crea una tabla PEDIDOS la cual se relaciona con las tablas CLIENTES y EMPLEADOS que ya existen CREATE TABLE PEDIDOS (IDPEDIDO INT IDENTITY NOT NULL PRIMARY KEY,FECHAPEDIDO, IDCLIENTE INT REFERENCES CLIENTES(IDCLIENTE) ON UPDATE CASCADE ON DELETE CASCADE, IDEMPLEADO INT REFERENCES EMPLEADOS(IDEMPLEADO) ON UPDATE CASCADE ON DELETE CASCADE, FECHAENVIO DATETIME,CARGO MONEY,UNIDADESENEXISTENCIA INT, UNIDADESENPEDIDO INT,NIVELNUEVOPEDIDO TINYNT,SUSPENDIDO BIT) PARA COMPROBAR LA ESTRUCTURA DE LA NUEVA TABLA UTILICE EL PROCEDIMIENTO ALMACENADO SP_HELP EJEMPLO : /*CURSOS es el nombrede la tabla*/ SP_HELP CURSOS El Comando Drop Table Elimina una tabla y todos sus datos, índices, disparadores, restricciones y permisos especificados para esa tabla. Cualquier vista o procedimiento almacenado que referencia dicha tabla debe ser explícitamente borrado, la instrucciñón DROP TABLE no lo hace. DROP TABLE MATRICULAS /* Elimina La Tabla Matriculas */ MODIFICAR TABLAS DE LA BASE DE DATOS Profesor Henry Chavez Viera SQL Server 2005 Express Pag.28

29 Entendemos por modificar una tabla, cambiar su estructura, es decir, añadir atributos, borrarlos, o cambiar la definición. La sentencia que permite modificar una tabla es la que muestra LA SENTENCIA ALTER TABLE Su sintaxis es la descrita en el Código fuente ALTER TABLE tabla ADD atrib tipo NULL Ejemplos Añadir una nueva columna a una tabla CREATE TABLE CONTACTOS ( TIPO AS VARCHAR(20),DIRECCION VARCHAR(50)) GO ALTER TABLE CONTACTOS ADD NOMBRECONTACTO VARCHAR(20) NOT NULL GO Eliminar una columna de una tabla ALTER TABLE CONTACTOS DROP COLUMN DIRECCION Añadir una nueva columna con una restricción ALTER TABLE CONTACTOS ADD EDAD TINYINT NULL CONSTRAINT ED_unique UNIQUE Añadir una restricción no validada a una tabla ALTER TABLE CONTACTOS WITH NOCHECK ADD CONSTRAINT Edad_check CHECK (EDAD > 1) GO Añadir varias columnas con restricciones ALTER TABLE CONTACTOS ADD /* Añadir una columna como clave primaria */ IDCONTACTO INT IDENTITY CONSTRAINT Idcontacto_pk PRIMARY KEY, /* Añadir una columna con una restricción de comprobacion */ CIUDAD VARCHAR(16) NULL CONSTRAINT column_d_chk CHECK (column_d IS NULL OR column_d LIKE "[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" OR column_d LIKE "([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"), /* Añadir una columna con valor por defecto */ column_e DECIMAL(3,3) CONSTRAINT column_e_default DEFAULT.081 GO Añadir una columna con valor por defecto y NULL Profesor Henry Chavez Viera SQL Server 2005 Express Pag.29

30 ALTER TABLE VIDEOS ADD FECHAESTRENO smalldatetime NULL CONSTRAINT FECHA_C1 DEFAULT getdate() WITH VALUES Deshabilitar y habilitar una restricción CREATE TABLE empleado (id INT NOT NULL, nombre VARCHAR(10) NOT NULL, salario MONEY NOT NULL CONSTRAINT salario CHECK (salario < ) ) -- Inserciones validas INSERT INTO empleado VALUES (1,"Joe Brown",65000) INSERT INTO empleado VALUES (2,"Mary Smith",75000) -- Inserción que viola la restricción INSERT INTO empleado VALUES (3,"Pat Jones",105000) -- Deshabilitar la restricción ALTER TABLE empleado NOCHECK CONSTRAINT salario INSERT INTO empleado VALUES (3,"Pat Jones",105000) -- Habilitar la restricción ALTER TABLE empleado CHECK CONSTRAINT salario INSERT INTO empleado VALUES (4,"Eric James",110000) CON UNA CLAVE PRIMARIA COMPUESTA CREATE TABLE [DETALLES DE PEDIDOS] (IDPEDIDO INT,IDPRODUCTO INT,CANTIDAD INT,PRECIOUNIDAD MONEY PRIMARY KEY(IDPEDIDO,IDPRODUCTO)) CREAR UNA TABLA EN UN GRUPO DE ARCHIVOS Este ejemplo crea la tabla NOTAS en un grupo GP_EVALUACIONES de la base de datos BDCOLEGIO CREADA ANTERIORMENTE CREATE TABLE NOTAS (IDREGISTRO INT NOT NULL IDENTITY(1,1) PRIMARY KEY, IDALUMNO INT NOT NULL, CURSO VARCHAR(40) NOT NULL, N1 DECIMAL NOT NULL, N2 DECIMAL NOT NULL, N3 DECIMAL NOT NULL, PROMEDIO AS N1+N2+N3, APROBADO BIT NOT NULL) ON GP_EVALUACIONES Profesor Henry Chavez Viera SQL Server 2005 Express Pag.30

31 Este ejemplo crea una tabla MATRICULAS y lo añade al grupo existente GP_MATRICULAS CREATE TABLE MATRICULAS (IDREGISTRO INT NOT NULL IDENTITY(1,1) PRIMARY KEY, IDALUMNO INT NOT NULL, CURSO VARCHAR(40) NOT NULL, FECHAMATRICULA DATETIME NOT NULL, PROMEDIO AS N1+N2+N3) ON GP_MATRICULAS COMO CREAR TABLAS ESTABLECIENDO RELACION 3. Vamos a desarrollar el siguiente ejemplo de relacion de tablas para ello usaremos el Analizador de Consultas.El objetivo sera relacionar las tablas CATEGORIAS,PROVEEDORES Y PRODUCTOS aplicando la ACTUALIZACION Y ELIMINACION en CASCADA. Este ejemplo asume que las tablas CATEGORIAS Y PROVEEDORES ya existen CREATE TABLE PRODUCTOS (IDPRODUCTO INT IDENTITY NOT NULL PRIMARY KEY,NOMBREPRODUCTO VARCHAR(50), IDPROVEEDOR INT REFERENCES PROVEEDORES(IDPROVEEDOR) ON UPDATE CASCADE ON DELETE CASCADE, IDCATEGORIA INT REFERENCES CATEGORIAS(IDCATEGORÍA) ON UPDATE CASCADE ON DELETE CASCADE, CANTIDADPORUNIDAD INT,PRECIOUNIDAD MONEY,UNIDADESENEXISTENCIA INT, UNIDADESENPEDIDO INT,NIVELNUEVOPEDIDO TINYNT,SUSPENDIDO BIT) En este segundo ejemplo se crea una tabla PEDIDOS la cual se relaciona con las tablas CLIENTES y EMPLEADOS que ya existen Profesor Henry Chavez Viera SQL Server 2005 Express Pag.31

32 CREATE TABLE PEDIDOS (IDPEDIDO INT IDENTITY NOT NULL PRIMARY KEY,FECHAPEDIDO, IDCLIENTE INT REFERENCES CLIENTES(IDCLIENTE) ON UPDATE CASCADE ON DELETE CASCADE, IDEMPLEADO INT REFERENCES EMPLEADOS(IDEMPLEADO) ON UPDATE CASCADE ON DELETE CASCADE, FECHAENVIO DATETIME,CARGO MONEY,UNIDADESENEXISTENCIA INT, UNIDADESENPEDIDO INT,NIVELNUEVOPEDIDO TINYNT,SUSPENDIDO BIT) PARA COMPROBAR LA ESTRUCTURA DE LA NUEVA TABLA UTILICE EL PROCEDIMIENTO ALMACENADO SP_HELP EJEMPLO : /*CURSOS es el nombrede la tabla*/ SP_HELP CURSOS EL COMANDO DROP TABLE Elimina una tabla y todos sus datos, índices, disparadores, restricciones y permisos especificados para esa tabla. Cualquier vista o procedimiento almacenado que referencia dicha tabla debe ser explícitamente borrado, la instrucciñón DROP TABLE no lo hace. DROP TABLE MATRICULAS /* Elimina La Tabla Matriculas */ MODIFICAR TABLAS DE LA BASE DE DATOS Entendemos por modificar una tabla, cambiar su estructura, es decir, añadir atributos, borrarlos, o cambiar la definición. La sentencia que permite modificar una tabla es la que muestra LA SENTENCIA ALTER TABLE Profesor Henry Chavez Viera SQL Server 2005 Express Pag.32

33 Su sintaxis es la descrita en el Código fuente ALTER TABLE tabla ADD atrib tipo NULL Ejemplos Añadir una nueva columna a una tabla CREATE TABLE CONTACTOS ( TIPO AS VARCHAR(20),DIRECCION VARCHAR(50)) GO ALTER TABLE CONTACTOS ADD NOMBRECONTACTO VARCHAR(20) NOT NULL GO ELIMINAR UNA COLUMNA DE UNA TABLA ALTER TABLE CONTACTOS DROP COLUMN DIRECCION Añadir una nueva columna con una restricción ALTER TABLE CONTACTOS ADD EDAD TINYINT NULL CONSTRAINT ED_unique UNIQUE Añadir una restricción no validada a una tabla ALTER TABLE CONTACTOS WITH NOCHECK ADD CONSTRAINT Edad_check CHECK (EDAD > 1) GO AÑADIR VARIAS COLUMNAS CON RESTRICCIONES ALTER TABLE CONTACTOS ADD /* Añadir una columna como clave primaria */ IDCONTACTO INT IDENTITY CONSTRAINT Idcontacto_pk PRIMARY KEY, /* Añadir una columna con una restricción de comprobacion */ CIUDAD VARCHAR(16) NULL CONSTRAINT column_d_chk CHECK (column_d IS NULL OR column_d LIKE "[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" OR column_d LIKE "([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"), /* Añadir una columna con valor por defecto */ column_e DECIMAL(3,3) CONSTRAINT column_e_default DEFAULT.081 GO Añadir una columna con valor por defecto y NULL ALTER TABLE VIDEOS ADD FECHAESTRENO smalldatetime NULL CONSTRAINT FECHA_C1 DEFAULT getdate() WITH VALUES Deshabilitar y habilitar una restricción Profesor Henry Chavez Viera SQL Server 2005 Express Pag.33

34 CREATE TABLE empleado (id INT NOT NULL, nombre VARCHAR(10) NOT NULL, salario MONEY NOT NULL CONSTRAINT salario CHECK (salario < ) ) -- Inserciones validas INSERT INTO empleado VALUES (1,"Joe Brown",65000) INSERT INTO empleado VALUES (2,"Mary Smith",75000) -- Inserción que viola la restricción INSERT INTO empleado VALUES (3,"Pat Jones",105000) -- Deshabilitar la restricción ALTER TABLE empleado NOCHECK CONSTRAINT salario INSERT INTO empleado VALUES (3,"Pat Jones",105000) -- Habilitar la restricción ALTER TABLE empleado CHECK CONSTRAINT salario INSERT INTO empleado VALUES (4,"Eric James",110000) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.34

35 CREACIÓN DE ÍNDICES La creación de índices en SQL Server, así como en la mayoría de los SGBDR existentes, se debe realizar junto con la creación de la estructura de las tablas. De este modo se evitan posibles colisiones que pueden surgir al crear índices cuando la tabla ya tiene datos. Por ejemplo, si creamos un índice único por un campo, esto es no puede admitir duplicados, y se encuentran valores no únicos, la generación del índice daría un error. Sin embargo, SQL Server permite la creación de índices, aunque la base de datos esté cargada. ALTER TABLE TABLA ADD CONSTRAINT K1 PRIMARY KEY (COD1, COD2) Esta sentencia permite añadir una clave primaria en tabla, por los campos cod1 y cod2. Para crear un índice en la tabla todos, denominado Código, por el campo cod_cliente, se debe especificar el Código fuente CREATE INDEX CODIGO ON TODOS (COD_CLIENTE) Sí además queremos que el índice no admita valores nulos, se debe ejecutar el Código fuente CREATE UNIQUE INDEX codigo ON todos (cod) WITH IGNORE_DUP_KEY La sentencia que se encarga de borrar un índice, se muestra en el Código fuente Esta sentencia se encarga de borrar el índice código creado anteriormente. DROP INDEX codigo Mas Ejemplos de indices con la siguiente tabla La tabla EMPLEADOS ya dispone de un indice que se genera automaticamente cuando se crea la clave Primaria vamos a añadir dos indices mas. 1. CREATE INDEX IDX_NOMB ON EMPLEADOS(NOMBRE) 2. CREATE INDEX IDX_APE ON EMPLEADOS(APELLIDOS) Si desea hacer una selección de los registros de la tabla Empleados utilizando uno de sus indices creados en el ejemplo anterior haga lo siguiente: SELECT IDEMPLEADO,NOMBRE,APELLIDOS FROM EMPLEADOS(INDEX=2) SELECT IDEMPLEADO,NOMBRE,APELLIDOS FROM EMPLEADOS(INDEX=3) El numero 2 hace referencia al indice por el campo NOMBRE y el numero 3 por el campo APELLIDOS.El numero 1 esta reservado para el IDPRODUCTO que es la clave primaria Para obtener informacion acerca de los indices que tiene su tabla ejecute el procedimiento almacenado SP_HELPINDEX Ejemplo: SP_HELPINDEX empleados /*empleados es el nombre de la tabla Profesor Henry Chavez Viera SQL Server 2005 Express Pag.35

36 EL LENGUAJE DE MANIPULACIÓN DE DATOS (DML) Ya se ha visto en un capítulo anterior el lenguaje de definición de datos (DDL), que es el que permite definir y modificar la estructura de un esquema. Veremos a continuación el otro lenguaje, el de manipulación de datos, que nos permite, como su propio nombre indica, manejar los datos contenidos en el esquema. LA SENTENCIA INSERT La otra gran sentencia de manipulación de datos es INSERT. Si SELECT nos permitía recuperar datos, INSERT nos va a permitir añadirlos al esquema, es decir, con esta sentencia podemos añadir información a la base de datos. Recordemos que estamos en el modelo relacional, por lo que la información se añadirá a una tabla en forma de filas. Si sólo queremos insertar un valor para un atributo, el resto de los de la tabla deberá contener el valor nulo (NULL). Sin embargo, habrá ciertas ocasiones en que esto no será posible, cuando el atributo esté definido como NO NULO, en cuyo caso deberemos especificar un valor para éste. La sintaxis de esta sentencia es: INSERT INTO tabla (atributos) VALUES (valores) Donde tabla especifica la tabla en la cual se añadirá la fila, atributos es una lista de atributos separados por comas que determinan los atributos para los cuales se darán valores, y valores específicos los valores que se darán para estos atributos, separados por comas. Por ejemplo, si queremos añadir un nuevo cliente a nuestra base de datos, deberemos ejecutar el Código. INSERT INTO clientes (idcliente,nombre,apellidos) VALUES (' ', 'Pepe', 'Perez') Destacar que si el valor a introducir es alfanumérico, deberá ir encerrado entre comillas, mientras que si es numérico no. Pues bien, si ejecutamos la anterior sentencia, obtenemos el siguiente error: Server: Msg 515, Level 16, State 2, Line 1 Cannot insert the value NULL into column 'idcontacto', table 'pubs.dbo.authors'; column does not allow nulls. INSERT fails. The statement has been terminated. La razón es que no hemos dado valor al atributo idcontacto, que ha sido definido como no nulo. Por lo tanto, rectificamos el Código fuente, para dar un valor al Código fuente 56. INSERT INTO authors (idcliente,nombre, apellidos,idcontacto) VALUES (' ', 'Pepe', 'Perez', 1) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.36

37 LA SENTENCIA UPDATE El objetivo de la sentencia UPDATE es actualizar los valores de una o varias filas de una tabla, sin necesidad de borrarla e insertarla de nuevo. La sintaxis es la siguiente: UPDATE tabla SET atributo1 = valor1, atributo2 = valor2,... WHERE condición donde tabla especifica la tabla donde se encuentran las filas que queremos actualizar, condición especifica la condición que se debe cumplir para actualizar las filas, y lo que viene a continuación de SET especifica la asignación de los nuevos valores a los atributos. Por lo tanto se actualizarán todas las filas que cumplan la condición especificada. Si queremos cambiar el nombre al cliente que hemos insertado en el anterior apartado, deberemos escribir el Código fuente : Elevar los precios de los productos en 10% pero solo aquellos que pertenezcan a la Categoria 2 (Bebidas) UPDATE PRODUCTOS SET PRECIOUNIDAD = PRECIOUNIDAD+(PRECIOUNIDAD*010) WHERE IDCATEGORIA=2 Lo que hacemos con la anterior sentencia es incrementar en 10% el preciounidad de los productos pero solo aquellos de la idcategoria =2(condición where) cuyo codigo pertenece a la Categoria bebidas, Si ejecutamos la anterior sentencia, obtenemos el resultado: (32 row(s) affected) Lo que quiere decir que la fila ha sido actualizada con éxito. Podemos comprobarlo ejecutando el Código fuente SELECT * FROM Productos WHERE idcategoria = 2 LA SENTENCIA DELETE El objeto de la sentencia DELETE es el de borrar filas de una tabla. Para poder borrar filas en una tabla se deben cumplir las condiciones de seguridad determinadas por el administrador y deben de cumplirse también las reglas de integridad referencial. La sintaxis es la siguiente: DELETE FROM tabla WHERE condición Donde tabla especifica la tabla sobre la cual queremos borrar las filas, y condición especifica la condición que se debe cumplir para que se borren las filas. Si omitimos la Profesor Henry Chavez Viera SQL Server 2005 Express Pag.37

38 condición, se borrarán todas las filas de la tabla, es decir, la sentencia que aparece en el Código fuente borra todas las filas de la tabla Pedidos DELETE FROM PEDIDOS Por ejemplo, si queremos borrar una fila que hemos creado en la tabla Pedidos, deberemos ejecutar el Código fuente obteniendo el siguiente resultado: (1 row(s) affected) DELETE FROM PEDIDOS WHERE IDPEDIDO = lo que viene a decir que la fila se ha borrado. Para comprobarlo, ejecutamos la sentencia que muestra el Código fuente. cuyo resultado es: (0 row(s) affected), lo que quiere decir que la fila no se encuentra en la tabla, es decir, ha sido borrada. SELECT * FROM PEDIDOS WHERE IDPEDIDO = Profesor Henry Chavez Viera SQL Server 2005 Express Pag.38

39 S SESION 3 Comprensión de la recuperación de datos. La sentencia SELECT. Filtro de columnas y filas por medio de la sentencia SELECT. Operadores de comparación (relacionales y LIKE), operador de rango (BETWEEN), operador de conjunto (IN). Ordenamiento del conjunto de resultados con ORDER BY. Uso de funciones Transact-SQL: funciones de conversión de tipo (CONVERT y CAST), funciones de fecha y hora. Uso de las funciones de agregación. Agrupación de datos: GROUP BY y HAVING. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.39

40 RECUPERACION DE DATOS BASE DE DATOS SUPERMERCADOS NEPTUNO Para seguir con los ejemplos del uso del Transact SQL utilizaremos la siguiente base de datos a la cual llamaremos SUPERMERCADOSNEPTUNO una base de datos creada como ejemplo que es muy similar a la base de datos Northwind que viene con SQL SERVER pero que utiliza los campos en nombre en español para hacer que los ejemplos que se desarrollen en este manual sean mas ilustrativos y didacticos a continucion presentamos el diseño en el siguiente diagrama A continuacion presentamos los comandos TRANSACT-SQL para poder crearla. CREATE TABLE Empleados (IdEmpleado [int] NOT NULL IDENTITY PRIMARY KEY,Apellidos varchar(20),nombre varchar (10) Cargo varchar(30),fechanacimiento smalldatetime, FechaContratacion smalldatetime,direccion varchar(60),ciudad varchar(15),pais varchar(15),fono varchar(24),foto image NULL CREATE TABLE Clientes(IdCliente varchar(5)int NOT NULL PRIMARY KEY, NombreCompañía varchar(40),nombrecontacto varchar(30), CargoContacto varchar(30),dirección varchar(60), Ciudad varchar(15), País varchar(15), Teléfono varchar(24), Fax varchar (24)) CREATE TABLE Categorías (IdCategoría int NOT NULL IDENTITY Primary key,nombrecategoría varchar(15),descripción text) CREATE TABLE Proveedores(IdProveedor int NOT NULL IDENTITY PRIMARY KEY,NombreCompañía varchar(40),dirección varchar(60),ciudad varchar(15),teléfono varchar(24) CREATE TABLE Productos(IdProducto int not null identity primary key,nombreproducto varchar(35), idproveedor REFERENCES Proveedores(idProveedor) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.40

41 ON UPDATE CASCADE ON DELETE CASCADE, idcategoria REFERENCES Categorias(idcategoria) ON UPDATE CASCADE ON DELETE CASCADE CREATE TABLE Pedidos(idpedido int not null identity primary key, idcliente varchar(6) REFERENCES Clientes(idcliente) ON UPDATE CASCADE ON DELETE CASCADE, idempleado int REFERENCES Empleados(idempleado) ON UPDATE CASCADE ON DELETE CASCADE, fechapedido smalldatetime,fechaenvio smalldatetime,fechaentrega smalldatetime,cargo as varchar(25),destinatario varchar(35),direcciondestinatario varchar(50),paisdestinatario varchar(35)) CREATE TABLE [Detalles de pedidos] (IDPEDIDO INT NOT NULL REFERENCES PEDIDOS(IDPEDIDO) ON UPDATE CASCADE ON DELETE CASCADE, IDPRODUCTO INT NOT NULL REFERENCES PRODUCTOS(IDPRODUCTO) ON UPDATE CASCADE Profesor Henry Chavez Viera SQL Server 2005 Express Pag.41

42 ON DELETE CASCADE,PRECIOUNIDAD MONEY,CANTIDAD INT PRIMARY KEY(IDPEDIDO,IDPRODUCTO)) EL COMADO SELECT La sentencia Select es una sentencia SQL, que pertenece al conjunto del Lenguaje de Manipulación de Datos, y que sirve para recuperar registros de una o varias tablas, de una o varias bases de datos. Su sintaxis es la siguiente: SELECT <atributos> FROM <tablas> [WHERE <condicion>] [GROUP BY <atributos>] [HAVING <condición>] [ORDER BY <atributos>] Donde las mayúsculas representan palabras reservadas, y lo encerrado entre corchetes es opcional, puede ser omitido. Una vez vista la anterior forma de representación, vamos a detenernos en la sintaxis de la sentencia Select. Se compone de tres partes: SELECT <atributos>: permite hacer una proyección de las tablas, es decir, seleccionar los campos que deseamos recuperar de la base de datos, separados por comas. Si se especifica el símbolo *, se obtendrán todos los campos de la tabla. FROM <tablas>: permite especificar la tabla de la cual se desean obtener los datos. Si se especifica más de una tabla, éstas irán separadas por comas. WHERE <condición>: permite establecer una condición de recuperación de las filas de la/s tabla/s. Sólo se obtendrán aquellas Registros que verifiquen dicha condición, que será opcional. En el caso de que se omita esta parte, se recuperarán todas las filas. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.42

43 GROUP BY <atributos>: permite establecer una selección de campos cuando se utilizan funciones escalares o de conteo (ya se verá más adelante lo que significa. HAVING <condición>: establece una condición para los atributos obtenidos como resultado de la aplicación de funciones escalares. ORDER BY <atributos>: permite obtener el resultado de la consulta ordenado por los atributos especificados. En el caso de que se especifiquen varias tablas, en la cláusula FROM, será conveniente denotar los campos de la cláusula SELECT precedidos por el nombre de la tabla donde se encuentra y un punto, para que, en el caso de que dicho campo exista en más de una tabla, se sepa en cada momento a cual de ellos nos estamos refiriendo, evitando en este caso el problema de ambigüedad. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.43

44 EJEMPLOS DE SENTENCIAS SQL CON SELECT 1. Mostrar todos los registros de la tabla Productos SELECT * FROM PRODUCTOS 2. Mostrar nombre,apellidos y cargo de todos los empleados SELECT NOMBRE,APELLIDOS,CARGO FROM EMPLEADOS 3. Mostrar los nombreproducto,preciounidad,stock de los productos que tengan un precio mayor a 20 SELECT NOMBREPRODUCTO,PRECIOUNIDAD,STOCK FROM PRODUCTOS WHERE PRECIOUNIDAD>20 4. Mostrar nombreproducto,preciounidad,idcategoria de los productos que tengan un precio entre 25 y 35 soles SELECT NOMBREPRODUCTO,PRECIOUNIDAD,IDCATEGORIA FROM PRODUCTOS WHERE PRECIOUNIDAD BETWEEN 25 AND 35 Profesor Henry Chavez Viera SQL Server 2005 Express Pag.44

45 5. Mostrar los pedidos entregados entre el 18/6/95 y el 25/12/97 SELECT IDPEDIDO,IDCLIENTE,FECHAPEDIDO,FECHAENTREGA,CARGO FROM PEDIDOS WHERE FECHAPEDIDO BETWEEN 18/06/95 AND 25/12/97 6. Mostrar a los clientes que no tengan numero de fax SELECT NOMBRECOMPAÑÍA,DIRECCIÓN,CIUDAD,PAIS,FAX FROM CLIENTES WHERE FAX IS NULL 7. Mostrar a los clientes que si tengan numero de fax SELECT NOMBRECOMPAÑÍA,DIRECCIÓN,CIUDAD,PAIS,FAX FROM CLIENTES WHERE FAX IS NOT NULL 8. Mostrar los productos cuyo nombre empiezen con las letras Que SELECT IDPRODUCTO,NOMBREPRODUCTO,PRECIOUNIDAD FROM PRODUCTOS WHERE NOMBREPRODUCTO LIKE Que% 9. Mostrar los productos que empiezen con las letras A,B,C,D SELECT IDPRODUCTO,NOMBREPRODUCTO,PRECIOUNIDAD FROM PRODUCTOS WHERE NOMBREPRODUCTO LIKE [A-D]% 10. Mostrar los clientes cuyo nombre termine en en la letra S SELECT IDCLIENTE,NOMBRECOMPAÑIA,DIRECCIÓN FROM CLIENTES WHERE NOMBRECOMPAÑIA LIKE %S 11. Mostrar un listado de productos ordenado por precio en forma Ascendente SELECT IDPRODUCTO,NOMBREPRODUCTO,PRECIOUNIDAD FROM PRODUCTOS ORDER BY NOMBREPRODUCTO 12. Mostrar un listado de productos ordenado por precio en forma Descendente SELECT IDPRODUCTO,NOMBREPRODUCTO,PRECIOUNIDAD FROM PRODUCTOS ORDER BY NOMBREPRODUCTO DESC 13. Mostrar los 3 productos mas Caros SELECT TOP 3 IDPRODUCTO,NOMBREPRODUCTO,PRECIOUNIDAD,STOCK FROM PRODUCTOS ORDER BY PRECIOUNIDAD DESC 14. Mostrar los 3 productos mas Baratos SELECT TOP 3 IDPRODUCTO,NOMBREPRODUCTO,PRECIOUNIDAD,STOCK FROM PRODUCTOS ORDER BY PRECIOUNIDAD DESC Profesor Henry Chavez Viera SQL Server 2005 Express Pag.45

46 15. Mostrar los productos que tengan un precio menor o igual a 50 y su stock se encuentre entre 60 y 80 SELECT NOMBREPRODUCTO,PRECIOUNIDAD,STOCK FROM PRODUCTOS WHERE (PRECIOUNIDAD <=50) AND (STOCK>=60 AND STOCK<=80) 16. Mostrar los clientes cuyo pais sea igual alemania o francia SELECT NOMBRECOMPAÑIA,PAIS FROM CLIENTES WHERE PAIS= ALEMANIA OR PAIS= FRANCIA 17. Mostrar los clientes cuyo pais sea Italia,brasil,francia,irlanda,españa y suecia SELECT NOMBRECOMPAÑIA,PAIS FROM CLIENTES WHERE PAIS IN( ITALIA, BRASIL, FRANCIA, IRLANDA, ESPAÑA, SUECIA ) 18. Mostrar los pedidos del cliente cuyo codigo es Anton o bonap y la fecha de los pedidos sea mayor a 11/5/95 SELECT IDPEDIDO,IDCLIENTE,FECHAPEDIDO FROM PEDIDOS WHERE (IDCLIENTE= ANTON OR IDCLIENTE= BONAP ) AND (FECHAPEDIDO> 11/5/95 ) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.46

47 S SESION 4 Combinaciones: INNER JOIN, OUTER JOIN, CROSS JOIN, autojoin. Creación de tablas a partir de consultas. Reunión de consultas con UNION. Uso de EXISTS y NOT EXISTS. Uso de los store procedures para programar procesos en el servidor. Manejo de las funciones más importantes del SQL Transact. Introducción a los Trigger. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.47

48 CONSULTAS MULTITABLA En este tema vamos a estudiar las consultas multitabla llamadas así porque están basadas en más de una tabla. El SQL de Microsoft Jet 4.x soporta dos grupos de consultas multitabla: la unión de tablas la composición de tablas LA UNIÓN DE TABLAS Esta operación se utiliza cuando tenemos dos tablas con las mismas columnas y queremos obtener una nueva tabla con las filas de la primera y las filas de la segunda. En este caso la tabla resultante tiene las mismas columnas que la primera tabla (que son las mismas que las de la segunda tabla). Por ejemplo tenemos una tabla de libros nuevos y una tabla de libros antiguos y queremos una lista con todos los libros que tenemos. En este caso las dos tablas tienen las mismas columnas, lo único que varía son las filas, además queremos obtener una lista de libros (las columnas de una de las tablas) con las filas que están tanto en libros nuevos como las que están en libros antiguos, en este caso utilizaremos este tipo de operación. Cuando hablamos de tablas pueden ser tablas reales almacenadas en la base de datos o tablas lógicas (resultados de una consulta), esto nos permite utilizar la operación con más frecuencia ya que pocas veces tenemos en una base de datos tablas idénticas en cuanto a columnas. El resultado es siempre una tabla lógica. Por ejemplo queremos en un sólo listado los productos cuyas existencias sean iguales a cero y también los productos que aparecen en pedidos del año 90. En este caso tenemos unos productos en la tabla de productos y los otros en la tabla de pedidos, las tablas no tienen las mismas columnas no se puede hacer una union de ellas pero lo que interesa realmente es el identificador del producto (idfab,idproducto), luego por una parte sacamos los códigos de los productos con existencias cero (con una consulta), por otra parte los códigos de los productos que aparecen en pedidos del año 90 (con otra consulta), y luego unimos estas dos tablas lógicas. El operador que permite realizar esta operación es el operador UNION. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.48

49 LA COMPOSICIÓN DE TABLAS La composición de tablas consiste en concatenar filas de una tabla con filas de otra. En este caso obtenemos una tabla con las columnas de la primera tabla unidas a las columnas de la segunda tabla, y las filas de la tabla resultante son concatenaciones de filas de la primera tabla con filas de la segunda tabla El ejemplo anterior quedaría de la siguiente forma con la composición: A diferencia de la unión la composición permite obtener una fila con datos de las dos tablas, esto es muy útil cuando queremos visualizar filas cuyos datos se encuentran en dos tablas. Por ejemplo queremos listar los pedidos con el nombre del representante que ha hecho el pedido, pues los datos del pedido los tenemos en la tabla de pedidos pero el nombre del representante está en la tabla de empleados y además queremos que aparezcan en la misma línea; en este caso necesitamos componer las dos tablas (Nota: en el ejemplo expuesto a continuación, hemos seleccionado las filas que nos interesan). Existen distintos tipos de composición, aprenderemos a utilizarlos todos y a elegir el tipo más apropiado a cada caso. Los tipos de composición de tablas son: El INNER JOIN El LEFT / RIGHT JOIN SELECT * FROM PEDIDOS,CLIENTES WHERE PEDIDOS.IDCLIENTE=CLIENTES.IDCLIENTE Profesor Henry Chavez Viera SQL Server 2005 Express Pag.49

50 Combinamos todos los pedidos con todos los clientes pero luego seleccionamos los que cumplan que el código de cliente de la tabla de pedidos sea igual al código de cliente de la tabla de clientes, por lo tanto nos quedamos con los pedidos combinados con los datos del cliente correspondiente. Las columnas que aparecen en la cláusula WHERE de nuestra consulta anterior se denominan columnas de emparejamiento ya que permiten emparejar las filas de las dos tablas. Las columnas de emparejamiento no tienen por qué estar incluidas en la lista de selección. Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, cuando una de las columnas de emparejamiento tienen un índice definido es más eficiente utilizar otro tipo de composición, el INNER JOIN. EL INNER JOIN El INNER JOIN es otro tipo de composición de tablas, permite emparejar filas de distintas tablas de forma más eficiente que con el producto cartesiano cuando una de las columnas de emparejamiento está indexada. Ya que en vez de hacer el producto cartesiano completo y luego seleccionar la filas que cumplen la condición de emparejamiento, para cada fila de una de las tablas busca directamente en la otra tabla las filas que cumplen la condición, con lo cual se emparejan sólo las filas que luego aparecen en el resultado. La sintaxis es la siguiente: Ejem: SELECT * FROM PEDIDOS INNER JOIN CLIENTES ON PEDIDOS.IDCLIENTE = CLIENTES.IDCLIENTE tabla1 y tabla2 son especificaciones de tabla (nombre de tabla con alias o no, nombre de consulta guardada), de las tablas cuyos registros se van a combinar. Pueden ser las dos la misma tabla, en este caso es obligatorio definir al menos un alias de tabla. col1, col2 son las columnas de emparejamiento. Observar que dentro de la cláusula ON los nombres de columna deben ser nombres cualificados (llevan delante el nombre de la tabla y un punto). Las columnas de emparejamiento deben contener la misma clase de datos, las dos de tipo texto, de tipo fecha etc... los campos numéricos deben ser de tipos similares. Por ejemplo, se puede combinar campos AutoNumérico(IDENTIDAD) y INT puesto que son tipos similares, sin embargo, no se puede combinar campos de tipo INT y FLOAT. Además las columnas no pueden ser de tipo TEXT ni IMAGE COMP representa cualquier operador de comparación ( =, <, >, <=, >=, o <> ) y se utiliza para establecer la condición de emparejamiento. Se pueden definir varias condiciones de emparejamiento unidas por los operadores AND y OR poniendo cada condición entre paréntesis. Ejemplo: SELECT * FROM PROVEEDORES INNER JOIN PRODUCTOS ON PRODUCTOS Profesor Henry Chavez Viera SQL Server 2005 Express Pag.50

51 PROVEEDORES.IDPROVEEDOR AND PROVEEDORES.IDPROVEEDOR = PRODUCTOS.IDPROVEEDOR Se pueden combinar más de dos tablas En este caso hay que sustituir en la sintaxis una tabla por un INNER JOIN completo. Por ejemplo: SELECT * FROM (PEDIDOS INNER JOIN CLIENTES ON PEDIDOS.IDCLIENTE = CLIENTES.IDCLIENTE) INNER JOIN EMPLEADOS ON PEDIDOS.IDEMPLEADO = EMPLEADOS.IDEMPLEADO En vez de tabla1 hemos escrito un INNER JOIN completo, también podemos escribir: SELECT * FROM CLIENTES INNER JOIN (PEDIDOS INNER JOIN EMPLEADOS ON PEDIDOS.IDEMPLEADO = EMPLEADOS.IDEMPLEADO) ON PEDIDOS.IDCLIENTE = CLIENTES.IDCLIENTE En este caso hemos sustituido tabla2 por un INNER JOIN completo. EL LEFT JOIN Y RIGHT JOIN Crearemos otra base de datos llamada DBVENTAS la cual se utiiizara tambien con la base de datos SUPERMERCADOSNEPTUNO.las tablas de DBVENTAS seran las siguientes Para los siguientes ejemplos usaremos las siguientes tablas de ejemplo Oficinas Empleados Clientes Productos Clientes Profesor Henry Chavez Viera SQL Server 2005 Express Pag.51

52 El LEFT JOIN y RIGHT JOIN son otro tipo de composición de tablas, también denominada composición externa. Son una extensión del INNER JOIN. INNER JOIN) es una composicion interna ya que todos los valores de las filas del resultado son valores que están en las tablas que se combinan. Con una composición interna sólo se obtienen las filas que tienen al menos una fila de la otra tabla que cumpla la condición, veamos un ejemplo: Queremos combinar los empleados con las oficinas para saber la ciudad de la oficina donde trabaja cada empleado, si utilizamos un producto cartesiano tenemos: SELECT EMPLEADOS.*,CIUDAD FROM EMPLEADOS, OFICINAS WHERE EMPLEADOS.OFICINA = OFICINAS.OFICINA Observar que hemos cualificado el nombre de columna oficina ya que ese nombre aparece en las dos tablas de la FROM. Con esta sentencia los empleados que no tienen una oficina asignada (un valor nulo en el campo oficina de la tabla empleados) no aparecen en el resultado ya que la condición empleados.oficina = oficinas.oficina será siempre nula para esos empleados. SI UTILIZAMOS EL INNER JOIN SELECT EMPLEADOS.*, CIUDAD FROM EMPLEADOS INNER JOIN OFICINAS ON EMPLEADOS.OFICINA = OFICINAS.OFICINA Nos pasa lo mismo, el empleado 110 tiene un valor nulo en el campo oficina y no aparecerá en el resultado. Pues en los casos en que queremos que también aparezcan las filas que no tienen una fila coincidente en la otra tabla, utilizaremos el LEFT o RIGHT JOIN. La sintaxis del LEFT JOIN es la siguiente: La descripción de la sintaxis es la misma que la del INNER JOIN (ver página anterior), lo único que cambia es la palabra INNER por LEFT (izquierda en inglés). Esta operación consiste en añadir al resultado del INNER JOIN las filas de la tabla de la izquierda que no tienen correspondencia en la otra tabla, y rellenar en esas filas los campos de la tabla de la derecha con valores nulos. Ejemplo: SELECT * FROM EMPLEADOS LEFT JOIN OFICINAS ON EMPLEADOS.OFICINA = OFICINAS.OFICINA Con el ejemplo anterior obtenemos una lista de los empleados con los datos de su oficina, y el empleado 110 que no tiene oficina aparece con sus datos normales y los datos de su oficina a nulos. La sintaxis del RIGHT JOIN es la siguiente: Profesor Henry Chavez Viera SQL Server 2005 Express Pag.52

53 La sintaxis es la misma que la del INNER JOIN (ver página anterior), lo único que cambia es la palabra INNER por RIGHT (derecha en inglés). Esta operación consiste en añadir al resultado del INNER JOIN las filas de la tabla de la derecha que no tienen correspondencia en la otra tabla, y rellenar en esas filas los campos de la tabla de la izquierda con valores nulos. Ejemplo: SELECT * FROM empleados RIGHT JOIN oficinas ON empleados.oficina = oficinas.oficina Con el ejemplo anterior obtenemos una lista de los empleados con los datos de su oficina, y además aparece una fila por cada oficina que no está asignada a ningún empleado con los datos del empleado a nulos. Una operación LEFT JOIN o RIGHT JOIN se puede anidar dentro de una operación INNER JOIN, pero una operación INNER JOIN no se puede anidar dentro de LEFT JOIN o RIGHT JOIN. Los anidamientos de JOIN de distinta naturaleza no funcionan siempre, a veces depende del orden en que colocamos las tablas, en estos casos lo mejor es probar y si no permite el anudamiento, cambiar el orden de las tablas ( y por tanto de los JOINs) dentro de la cláusula FROM. Por ejemplo podemos tener: SELECT * FROM CLIENTES INNER JOIN (EMPLEADOS LEFT JOIN OFICINAS ON EMPLEADOS.OFICINA = OFICINAS.OFICINA) ON CLIENTES.REPCLIE = EMPLEADOS.NUMCLIE Combinamos empleados con oficinas para obtener los datos de la oficina de cada empleado, y luego añadimos los clientes de cada representante, así obtenemos los clientes que tienen un representante asignado y los datos de la oficina del representante asignado. Si hubiéramos puesto INNER en vez de LEFT no saldrían los clientes que tienen el empleado 110 (porque no tiene oficina y por tanto no aparece en el resultado del LEFT JOIN y por tanto no entrará en el cálculo del INNER JOIN con clientes). Profesor Henry Chavez Viera SQL Server 2005 Express Pag.53

54 EJEMPLOS DE CONSULTAS MULTITABLA CON SUPERMERCADOSNEPTUNO 1. Mostrar Nombre del Producto,Precio Unidad del producto,nombre de la Categoria,Nombre del Proveedor y stock de los productos CON WHERE SELECT PRODUCTOS.NOMBREPRODUCTO,PRODUCTOS.PRECIOUNIDAD,CATEG ORIAS.NOMBRECATEGORIA,PROVEEDORES.NOMBRECOMPAÑIA,STOC K FROM PRODUCTOS,CATEGORÍAS,PROVEEDORES WHERE PRODUCTOS.IDCATEGORIA=CATEGORIAS.IDCATEGORIA AND PRODUCTOS.IDPROVEEDOR=PROVEEDORES.IDPROVEEDOR CON INNER JOIN SELECT PRODUCTOS.NOMBREPRODUCTO,PRODUCTOS.PRECIOUNIDAD,CATEG ORIAS.NOMBRECATEGORIA,PROVEEDORES.NOMBRECOMPAÑIA,STOC K FROM PRODUCTOS INNER JOIN CATEGORIAS ON PRODUCTOS.IDCATEGORIA=CATEGORIAS.IDCATEGORIA INNER JOIN PROVEEDORES ON PRODUCTOS.IDPROVEEDOR=PROVEEDORES.IDPROVEEDOR 2. Mostrar los pedidos con los siguientes datos idpedido,fechapedido,nombre del cliente,el nombre del empleado y el cargo de pedido SELECT PEDIDOS.IDPEDIDO,PEDIDOS.FECHAPEDIDO,CLIENTES.NOMBRECOMP AÑIA,EMPLEADOS.APELLIDOS+ + EMPLEADOS.NOMBRE,PEDIDOS.CARGO FROM PEDIDOS INNER JOIN CLIENTES ON PEDIDOS.IDCLIENTE=CLIENTES.IDCLIENTE INNER JOIN EMPLEADOS ON PEDIDOS.IDEMPLEADO=EMPLEADOS.IDEMPLEADO Profesor Henry Chavez Viera SQL Server 2005 Express Pag.54

55 USO DE SELECT CON CAMPOS CALCULADOS En los capitulos anteriores aprendimos a usar FUNCIONES y utilizar comandos SET ahora vamos a desarrollar ejemplos de consultas SELECT para obtener campos calculados Ejemplo :En la tabla Empleados tenemos la fecha de nacimiento de los empleados y la Fecha de contratacion pero no tenemos un campo que nos muestre explicitamente la Edad ni el Tiempo de Servicio para ello desarrollaremos los siguiente SELECT NOMBRE, APELLIDOS, FECHANACIMIENTO, DATEDIFF(YEAR,FECHANACIMIENTO,GETDATE()) AS EDAD, FECHACONTRATACION, DATEDIFF(YEAR,FECHACONTRATACION,GETDATE()) AS [TIEMPO SERVICIO] FROM EMPLEADOS 1. Mostrar los dias Transcurridos entre la fecha de Pedido y la Fecha de entrega de todos los Pedidos entregados al pais de Alemania SELECT IDPEDIDO, FECHAPEDIDO, FECHAENTREGA, DATEDIFF(DAY,FECHAPEDIDO,FECHAENTREGA) AS [DIAS TRANSCURRIDOS], FROM PEDIDOS WHERE PAÍS= ALEMANIA 2. Mostrar el incremento de los precios de los productos en un 10% SELECT IDPRODUCTO, NOMBREPRODUCTO, PRECIOUNIDAD, PRECIOUNIDAD*.010 AS INCREMENTO, PRECIOUNIDAD+(PRECIOUNIDAD)*.010 AS [PRECIO INCREMENTADO] FROM PRODUCTOS 3. Mostrar el total de cada detalle de pedido SELECT [DETALLES DE PEDIDOS].CANTIDAD, PRODUCTOS.NOMBREPRODUCTO, [DETALLES DE PEDIDOS].PRECIOUNIDAD, [DETALLES DE PEDIDOS].CANTIDAD*[DETALLES DE PEDIDOS].PRECIOUNIDAD AS TOTAL FROM [DETALLES DE PEDIDOS] INNER JOIN PRODUCTOS ON [DETALLES DE PEDIDOS].IDPRODUCTO=PRODUCTOS.IDPRODUCTO Profesor Henry Chavez Viera SQL Server 2005 Express Pag.55

56 FUNCIONES ESCALARES PARA SELECT Entendemos por funciones escalares, todas aquellas que permiten realizar operaciones de conteo de filas, suma de atributos, obtención de medias, etc. Dichas funciones se especifican a continuación de la palabra reservada SELECT. Las funciones que soporta la sentencia SELECT en el Transact SQL son las siguientes: FUNCION SUM Realiza una suma de toda una columna para todas las filas accedidas mediante una consulta SQL. SELECT SUM (CARGO) FROM PEDIDOS La anterior consulta obtiene la suma del precio para todas las filas de la tabla pedido, ya que no hemos especificado ninguna condición en la cláusula WHERE. Si ahora queremos obtener la suma total de todos los pedidos realizados por el cliente cuyo código es "ANTON", debemos realizar la misma consulta, pero especificando una condición para obtener únicamente las filas cuyo cod_cliente es "ANTON": SELECT SUM(CARGO) FROM PEDIDOS WHERE IDCLIENTE = "ANTON" FUNCION COUNT Cuenta todas las filas de las tablas accedidas mediante una consulta SQL. Por ejemplo, si tenemos una tabla cliente, con todos los clientes de una empresa de servicios, con los atributos idcliente, nombre, apellidos, dirección, y queremos saber todos los clientes que tenemos, deberemos realizar un count, para obtener todas el número de filas de la tabla ejecutamos el Código fuente SELECT COUNT(IDCLIENTE) FROM CLIENTES En el anterior ejemplo, al existir el mismo número de filas, sea cual sea el atributo que seleccionemos, podríamos haber escogido cualquier otro. En general, se suele escribir el Código fuente SELECT COUNT(*) FROM CLIENTES Si ahora queremos saber el número de clientes que viven en Madrid, deberemos realizar un conteo de todas las filas con la condición de que el atributo ciudad sea Madrid. SELECT COUNT(*) FROM CLIENTES WHERE CIUDAD = "MADRID" Y si queremos saber cuantos Productos tenemos, cuyo precio es mayor de 20, deberemos realizar lo mismo, pero especificando esta condición en la cláusula WHERE. Al resultado de la búsqueda le llamaremos Caros. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.56

57 SELECT COUNT(*) AS CAROS FROM PRODUCTOS WHERE PRECIOUNIDAD > 20 FUNCION AVG Realiza una media aritmética de los atributos para todas las filas accedidas mediante la consulta SQL. Si por ejemplo tenemos una tabla de materiales, con los atributos cod_material, descripción, precio y cantidad _ pedida, y queremos saber la cantidad media pedida de todos los materiales, deberemos realizar una media aritmética, teniendo en cuenta todas las filas de la tabla: SELECT AVG(CANTIDAD _ PEDIDA) FROM MATERIAL La anterior sentencia, internamente, realiza primero una suma de todos los valores, y a continuación la divide por el número total de filas accedidas, es decir, realiza la media aritmética. Volviendo a nuestra cultural base de datos SUPERMERCADOSNEPTUNO, si queremos saber la media del precio de los títulos que tenemos disponibles, deberemos ejecutar el Código fuente SELECT AVG(PRECIOUNIDAD) AS PROMEDIO FROM PRODUCTOS FUNCION MAX Obtiene el máximo valor del atributo especificado, de entre todas las filas seleccionadas mediante la sentencia SQL. Supóngase, por ejemplo, que tenemos la tabla de materiales descrita anteriormente. Si queremos saber el material mas caro, deberemos realizar un SELECT con la cláusula Max, que obtenga el mayor valor para el atributo precio de todas las filas. Para nuestro ejemplo, si queremos saber cual es el libro más caro, ejecutaremos el Código fuente SELECT MAX(PRECIOUNIDAD) AS CARO FROM PRODUCTOS FUNCION MIN Obtiene el mínimo valor del atributo especificado, de entre todas las filas seleccionadas mediante la sentencia SQL. Si queremos saber cual es el PRODUCTOS más barato de nuestra base de datos, deberemos ejecutar el Código fuente SELECT MIN(PRECIOUNIDAD) AS BARATO FROM PRODUCTOS Profesor Henry Chavez Viera SQL Server 2005 Express Pag.57

58 LA CLAUSULA COMPUTE Esta clausula añade una fila en el conjunto de datos que se esta recuperando,se utiliza para realizar calculos en campos numericos.compute actua siempre sobre un campo o expresion del conjunto de resultados y esta expresion debe figurar exactamente igual en la clausula SELECT y siempre se debe ordenar el resultado por la misma o al menos agrupar el resultado.esta expresion no puede utilizar ningun ALIAS SELECT IDPEDIDO,CANTIDAD,NOMBREPRODUCTO,[DETALLES DE PEDIDOS].PRECIOUNIDAD,CANTIDAD*[DETALLES DE PEDIDOS].PRECIOUNIDAD AS TOTAL FROM [DETALLES DE PEDIDOS] INNER JOIN PRODUCTOS ON [DETALLES DE PEDIDOS].IDPRODUCTO=PRODUCTOS.IDPRODUCTO ORDER BY IDPEDIDO COMPUTE SUM(CANTIDAD*[DETALLES DE PEDIDOS].PRECIOUNIDAD) BY IDPEDIDO SELECT IDPEDIDO,CANTIDAD,NOMBREPRODUCTO,[DETALLES DE PEDIDOS].PRECIOUNIDAD,CANTIDAD*[DETALLES DE PEDIDOS].PRECIOUNIDAD AS TOTAL FROM [DETALLES DE PEDIDOS] INNER JOIN PRODUCTOS ON [DETALLES DE PEDIDOS].IDPRODUCTO=PRODUCTOS.IDPRODUCTO WHERE IDPEDIDO=10250 COMPUTE SUM(CANTIDAD*[DETALLES DE PEDIDOS].PRECIOUNIDAD) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.58

59 LA CLAUSULA GROUP BY Se pueden obtener subtotales con la cláusula GROUP BY. Una consulta con una cláusula GROUP BY se denomina consulta agrupada ya que agrupa los datos de la tabla origen y produce una única fila resumen por cada grupo formado. Las columnas indicadas en el GROUP BY se llaman columnas de agrupación. Ejemplos 1. Mostrar el total de clientes que tiene la empresa en cada pais SELECT PAÍS,COUNT(IDCLIENTE) AS [TOTAL CLIENTES] FROM CLIENTES GROUP BY PAÍS ORDER BY COUNT(IDCLIENTE) DESC 2. Mostrar el precio del producto mas caro de cada categoria SELECT NOMBRECATEGORÍA,MAX(PRECIOUNIDAD) AS [Mas Caros] FROM CATEGORÍAS INNER JOIN PRODUCTOS ON CATEGORÍAS.IDCATEGORÍA=PRODUCTOS.IDCATEGORÍA GROUP BY NOMBRECATEGORÍA 3. Mostrar el Monto total de cada Pedido SELECT IDPEDIDO,SUM(CANTIDAD*PRECIOUNIDAD) AS [TOTAL PEDIDO] FROM [DETALLES DE PEDIDOS] GROUP BY IDPEDIDO Profesor Henry Chavez Viera SQL Server 2005 Express Pag.59

60 4. Mostrar el total de compras por cliente en el año 1995 SELECT NOMBRECOMPAÑÍA, YEAR(FECHAPEDIDO) AS AÑO, SUM(CANTIDAD*PRECIOUNIDAD) AS [TOTAL COMPRAS] FROM CLIENTES INNER JOIN PEDIDOS ON CLIENTES.IDCLIENTE=PEDIDOS.IDCLIENTE INNER JOIN [DETALLES DE PEDIDOS] ON PEDIDOS.IDPEDIDO=[DETALLES DE PEDIDOS].IDPEDIDO WHERE YEAR(FECHAPEDIDO)=1995 GROUP BY NOMBRECOMPAÑÍA,YEAR(FECHAPEDIDO) 5. Mostrar los tres mejores empleados tomando en cuenta la cantidad de pedidos despachados SELECT TOP 3 NOMBRE+' '+APELLIDOS AS EMPLEADO, COUNT(IDPEDIDO) AS [TOTAL DESPACHADOS] FROM EMPLEADOS INNER JOIN PEDIDOS ON EMPLEADOS.IDEMPLEADO=PEDIDOS.IDEMPLEADO GROUP BY NOMBRE+' '+APELLIDOS ORDER BY COUNT(IDPEDIDO) DESC 6. Mostrar el total de ventas del dia actual SELECT FECHAPEDIDO,SUM(CANTIDAD*CANTIDAD) AS TOTAL FROM PEDIDOS INNER JOIN [DETALLES DE PEDIDOS] ON PEDIDOS.IDPEDIDO=[DETALLES DE PEDIDOS].IDPEDIDO WHERE FECHAPEDIDO= CONVERT(CHAR(10),GETDATE(),103) GROUP BY FECHAPEDIDO Profesor Henry Chavez Viera SQL Server 2005 Express Pag.60

61 7. Mostrar el total de ventas del MES actual del AÑO Actual SELECT MONTH(FECHAPEDIDO)AS MES,SUM(CANTIDAD*CANTIDAD) AS TOTAL FROM PEDIDOS INNER JOIN [DETALLES DE PEDIDOS] ON PEDIDOS.IDPEDIDO=[DETALLES DE PEDIDOS].IDPEDIDO WHERE MONTH(FECHAPEDIDO)=MONTH(GETDATE()) AND YEAR(FECHAPEDIDO)=YEAR(GETDATE()) GROUP BY MONTH(FECHAPEDIDO) 8. Mostrar el total de ventas del AÑO Actual SELECT YEAR(FECHAPEDIDO) AS AÑO,SUM(CANTIDAD*CANTIDAD) AS TOTAL FROM PEDIDOS INNER JOIN [DETALLES DE PEDIDOS] ON PEDIDOS.IDPEDIDO=[DETALLES DE PEDIDOS].IDPEDIDO WHERE YEAR(FECHAPEDIDO)= YEAR(GETDATE()) GROUP BY YEAR(FECHAPEDIDO) 8. Mostrar los tres productos menos vendidos SELECT TOP 3 NOMBREPRODUCTO,SUM(CANTIDAD) AS [TOTAL VENDIDOS] FROM [DETALLES DE PEDIDOS] INNER JOIN PRODUCTOS ON [DETALLES DE PEDIDOS].IDPRODUCTO=PRODUCTOS.IDPRODUCTO GROUP BY NOMBREPRODUCTO ORDER BY SUM(CANTIDAD) 9. Mostrar el total de ventas en cada pais SELECT PAÍSDESTINATARIO,SUM(CANTIDAD*CANTIDAD) AS TOTAL FROM PEDIDOS INNER JOIN [DETALLES DE PEDIDOS] ON PEDIDOS.IDPEDIDO=[DETALLES DE PEDIDOS].IDPEDIDO GROUP BY PAÍSDESTINATARIO ORDER BY SUM(CANTIDAD*CANTIDAD)DESC Profesor Henry Chavez Viera SQL Server 2005 Express Pag.61

62 USO DE SUBCONSULTAS Una subconsulta es una sentencia SELECT que aparece dentro de otra sentencia SELECT que llamaremos consulta principal. Se puede encontrar en la lista de selección, en la cláusula WHERE o en la cláusula HAVING de la consulta principal. Una subconsulta tiene la misma sintaxis que una sentencia SELECT normal exceptuando que aparece encerrada entre paréntesis, no puede contener la cláusula ORDER BY, ni puede ser la UNION de varias sentencias SELECT, además tiene algunas restricciones en cuanto a número de columnas según el lugar donde aparece en la consulta principal. Estas restricciones las iremos describiendo en cada caso. Cuando se ejecuta una consulta que contiene una subconsulta, la subconsulta se ejecuta por cada fila de la consulta principal. Se aconseja no utilizar campos calculados en las subconsultas, ralentizan la consulta. Las consultas que utilizan subconsultas suelen ser más fáciles de interpretar por el usuario Ejemplo:usando SUPERMERCADOSNEPTUNO Mostrar los productos que tengan un precio mayor al precio promedio de todos los productos SELECT IDPRODUCTO,NOMBREPRODUCTO,PRECIOUNIDAD FROM PRODUCTOS WHERE PRECIOUNIDAD>(SELECT AVG(PRECIOUNIDAD) FROM PRODUCTOS) TEST DE COMPARACION ANY Tenemos el test ANY (algún, alguno en inglés) y el test ALL (todos en inglés). La subconsulta debe devolver una única columna sino se produce un error. Se evalúa la comparación con cada valor devuelto por la subconsulta. Si alguna de las comparaciones individuales produce el resultado verdadero, el test ANY devuelve el resultado verdadero. Si la subconsulta no devuelve ningún valor, el test any devuelve falso. si el test de comparación es falso para todos los valores de la columna, ANY devuelve falso. Si el test de comparación no es verdadero para ningún valor de la columna, y es nulo para al menos alguno de los valores, ANY devuelve Nulo. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.62

63 Ejemplo:usando BDVENTAS SELECT OFICINA, CIUDAD FROM OFICINAS WHERE OBJETIVO > ANY (SELECT SUM(CUOTA) FROM EMPLEADOS GROUP BY OFICINA) En este caso la subconsulta devuelve una única columna con las sumas de las cuotas de los empleados de cada oficina. Y luego se Lista las oficinas cuyo objetivo sea superior a alguna de las sumas obtenidas. EL TEST DE COMPARACION ALL. La subconsulta debe devolver una única columna sino se produce un error. Se evalúa la comparación con cada valor devuelto por la subconsulta. Si todas las comparaciones individuales, producen un resultado verdadero, el test devuelve el valor verdadero. Si la subconsulta no devuelve ningún valor el test ALL devuelve el valor verdadero. ( Ojo con esto!) Si el test de comparación es falso para algún valor de la columna, el resultado es falso. Si el test de comparación no es falso para ningún valor de la columna, pero es nulo para alguno de esos valores, el test ALL devuelve valor nulo. Ejemplo con BDVENTAS: SELECT OFICINA, CIUDAD FROM OFICINAS WHERE OBJETIVO > ALL (SELECT SUM(CUOTA) FROM EMPLEADOS GROUP BY OFICINA) En este caso se listan las oficinas cuyo objetivo sea superior A TODAS las sumas TEST DE PERTENENCIA A CONJUNTO (IN) Examina si el valor de la expresión es uno de los valores incluidos en la lista de valores producida por la subconsulta. La subconsulta debe generar una única columna y las filas que sean. Si la subconsulta no produce ninguna fila, el test da falso. Tiene la siguiente sintaxis: Ejemplo con BDVENTAS SELECT NUMEMP, NOMBRE, OFICINA FROM EMPLEADOS WHERE OFICINA IN (SELECT OFICINA FROM OFICINAS WHERE REGION = 'ESTE') Con la subconsulta se obtiene la lista de los números de oficina del este y la consulta principal obtiene los empleados cuyo número de oficina sea uno de los números de oficina del este. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.63

64 Por lo tanto lista los empleados de las oficinas del este TEST DE EXISTENCIA EXISTS Examina si la subconsulta produce alguna fila de resultados. Si la subconsulta contiene filas, el test adopta el valor verdadero, si la subconsulta no contiene ninguna fila, el test toma el valor falso, nunca puede tomar el valor nulo Con este test la subconsulta puede tener varias columnas, no importa ya que el test se fija no en los valores devueltos sino en si hay o no fila en la tabla resultado de la subconsulta. Cuando se utiliza el test de existencia en la mayoría de los casos habrá que utilizar una referencia externa. Si no se utiliza una referencia externa la subconsulta devuelta siempre será la misma para todas las filas de la consulta principal y en este caso se seleccionan todas las filas de la consulta principal (si la subconsulta genera filas) o ninguna (si la subconsulta no devuelve ninguna fila) Ejemplo con BDVENTAS SELECT numemp, nombre, oficina FROM empleados WHERE EXISTS (SELECT * FROM oficinas WHERE region = 'este' AND empleados.oficina = oficinas.oficina) Este ejemplo obtiene lo mismo que el ejemplo del test IN.Observa que delante de EXISTS no va ningún nombre de columna. En la subconsulta se pueden poner las columnas que queramos en la lista de selección (hemos utilizado el *).Hemos añadido una condición adicional al WHERE, la de la referencia externa para que la oficina que se compare sea la oficina del empleado NOTA. Cuando se trabaja con tablas muy voluminosas el test EXISTS suele dar mejor rendimiento que el test IN. RESUMEN DEL TEMA Una subconsulta es una sentencia SELECT que aparece en la lista de selección, o en las cláusulas WHERE o HAVING de otra sentencia SELECT. 1. La subconsulta se ejecuta por cada fila de la consulta principal. 2. Dentro de una consulta se puede utilizar una columna del origen de la consulta principal, una referencia externa. 3. Aunque se puedan anidar subconsultas no es aconsejado más de un nivel de anidamiento. 4. La subconsulta sufre una serie de restricciones según el lugar donde se encuentre. 5. Las condiciones asociadas a las subconsultas son las siguientes: Profesor Henry Chavez Viera SQL Server 2005 Express Pag.64

65 6. el test de comparación con subconsulta el test ANY,ALL, IN, EXISTS MAS EJEMPLOS CON SUBCONSULTAS 1. Mostrar el nombre de la categoria,el nombre del producto y el precio del producto mas caro de cada categoria SELECT NOMBRECATEGORÍA, NOMBREPRODUCTO, PRECIOUNIDAD FROM PRODUCTOS INNER JOIN CATEGORÍAS ON PRODUCTOS.IDCATEGORÍA=CATEGORÍAS.IDCATEGORÍA WHERE PRECIOUNIDAD IN (SELECT MAX(PRECIOUNIDAD) FROM PRODUCTOS WHERE PRODUCTOS.IDCATEGORÍA=CATEGORÍAS.IDCATEGORÍA) 2. Mostrar la lista de los 3 mejores vendedores en base a su total de pedidos despachados SELECT TOP 3 NOMBRE,APELLIDOS,COUNT(PEDIDOS.IDPEDIDO)AS TOTALPEDIDOS FROM EMPLEADOS INNER JOIN PEDIDOS ON EMPLEADOS.IDEMPLEADO=PEDIDOS.IDEMPLEADO WHERE EMPLEADOS.IDEMPLEADO IN (SELECT PEDIDOS.IDEMPLEADO FROM PEDIDOS GROUP BY PEDIDOS.IDEMPLEADO) GROUP BY NOMBRE,APELLIDOS ORDER BY COUNT(PEDIDOS.IDPEDIDO) DESC 3. Mostrar los productos que se hayan vendido con un descuento igual al 25% SELECT * FROM PRODUCTOS WHERE PRECIOUNIDAD ANY(SELECT PRECIOUNIDAD FROM [DETALLES DE PEDIDOS] WHERE DESCUENTO=0.25) 4. Mostrar a los clientes que por lo menos hayan realizado un pedido SELECT CLIENTES.NOMBRECOMPAÑÍA,CLIENTES.TELÉFONO FROM CLIENTES Profesor Henry Chavez Viera SQL Server 2005 Express Pag.65

66 WHERE EXISTS (SELECT FROM PEDIDOS WHERE PEDIDOS.IDCLIENTE=CLIENTES.IDCLIENTE) 5. Mostrar a los empleados que tengan un salario igual al salario promedio de todos los empleados SELECT APELLIDOS,NOMBRE,TITULO,SALARIO FROM EMPLEADOS AS T1 WHERE SALARIO= (SELECT AVG(SALARIO) FROM EMPLEADOS WHERE T1.TITULO=EMPLEADOS.TITULO) ORDER BY TITULO 6. Obtiene una lista con el nombre,cargo y salario de todos los agentes de ventascuyo salario es mayor que el de todos los jefes y directores SELECT APELLIDOS,NOMBRE,CARGO,SALARIO FROM EMPLEADOS WHERE CARGO LIKE AGENTE VENT* AND SALARIO ALL(SELECT SALARIO FROM EMPLEADOS WHERE CARGO LIKE JEFE* ) OR CARGO LIKE *DIRECTOR* ) 7. Obtiene una lista de las compañías y los contactos de todos los clientes que han realizado un pedido en el segundo trimestre de 1995 SELECT DISTINCT NOMBRECONTACTO,NOMBRECOMPAÑIA,CARGOCONTACTO,TELEFONO FROM CLIENTES WHERE IDCLIENTE IN(SELECT DISTINCT IDCLIENTE FROM PEDIDOS WHERE FECHAPEDIDO< 07/01/95 ) 8. Recupera el codigo del producto y la cantidad y la cantidad pedida de la tabla Detalles de pedidos,extrayendo el nombre del producto de la tabla Productos SELECT DISTINCT [DETALLES DE PEDIDOS].IDPRODUCTO, [DETALLES DE PEDIDOS].CANTIDAD, (SELECT PRODUCTOS.NOMBREPRODUCTO FROM PRODUCTOS WHERE PRODUCTOS.IDPRODUCTO=[DETALLES DE PEDIDOS].IDPRODUCTO) AS ELPRODUCTO FROM [DETALLES DE PEDIDOS] WHERE [DETALLES DE PEDIDOS].CANTIDAD=15 ORDER BY [DETALLES DE PEDIDOS].IDPRODUCTO 9. Recupera numeros de vuelos y capacidades de aquellos vuelos con destino a madrid y plazas libres SELECT NUMVUELO,PLAZAS FROM VUELOS WHERE ORIGEN= MADRID AND EXISTS(SELECT T1.NUMVUELO FROM VUELOS AS T1 WHERE T1.PLAZASLIBRES>0 AND T1.NUMVUELO=VUELOS.NUMVUELO) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.66

67 FUNCIONES DE SQL SERVER FUNCIONES DE TIPO FECHA Estas funciones escalares realizan una operación sobre un valor de fecha y hora de entrada, y devuelven un valor de cadena, numérico o de fecha y hora. DATEADD Devuelve un valor datetime nuevo que se basa en la suma de un intervalo a la fecha especificada. Sintaxis DATEADD ( partedefecha, numero, Fecha ) Parte de fecha Year quarter Month dayofyear Day Week Hour minute second millisecond Abreviaturas yy, yyyy qq, q mm, m dy, y dd, d wk, ww hh mi, n ss, s ms Mostrar la fecha de pago de los pedidos incrementando en 21 dias la fecha de pedido SELECT DATEADD(day, 21, FechaPedido) AS FechaPago FROM pedidos DATEDIFF Devuelve el número de dias,meses o años que han transcurrido entre dos fechas especificadas. Sintaxis DATEDIFF ( partefecha, Fechainicial, fechafinal ) SELECT NOMBRE,APELLIDOS, DATEDIFF(YEAR,FECHANACIMIENTO,GETDATE()) AS EDAD FROM EMPLEADOS Profesor Henry Chavez Viera SQL Server 2005 Express Pag.67

68 DATENAME Devuelve una cadena de caracteres que representa la parte de la fecha especificada de la fecha especificada. Sintaxis DATENAME (partefecha, fecha ) En este ejemplo se extrae el nombre del mes de la fecha devuelta por GETDATE. SELECT IDPEDIDO,FECHAPEDIDO,FECHAENVIO,FECHAENTREGA,DATENAME(M ONTH, FECHAPEDIDO) AS MESPEDIDO FROM PEDIDOS El siguiente es el conjunto de resultados: DATEPART Devuelve un entero que representa la parte de la fecha especificada de la fecha indicada. Sintaxis DATEPART ( partefecha, fecha ) La función GETDATE devuelve la fecha actual; sin embargo, la fecha completa no es siempre la información que se necesita para la comparación (a menudo, sólo se compara una parte de la fecha). En este ejemplo se muestra la salida de GETDATE y la de DATEPART. SELECT GETDATE() AS 'FechaActual' GO El siguiente es el conjunto de resultados: FechaActual Feb :46PM En este ejemplo se supone que la fecha es el 29 de mayo. SELECT DATEPART(month, GETDATE()) GO El siguiente es el conjunto de resultados: Profesor Henry Chavez Viera SQL Server 2005 Express Pag.68

69 DAY Devuelve un entero que representa la parte del día de la fecha especificada. Sintaxis DAY ( fecha ) En este ejemplo se devuelve el número del día de la fecha 12/03/1998. SELECT DAY('03/12/1998') AS 'NumeroDia' GO El siguiente es el conjunto de resultados: NumeroDia MONTH Devuelve un entero que representa el mes de una fecha especificada. Sintaxis MONTH ( Fecha ) Este ejemplo devuelve el número del mes de la fecha 03/12/1998. SELECT "NumeroMes" = MONTH('03/12/1998') GO El siguiente es el conjunto de resultados: NumeroMes YEAR Devuelve un entero que representa la parte de año de la fecha especificada. Sintaxis YEAR ( Fecha ) Este ejemplo devuelve el número del año de la fecha 03/12/1998. SELECT "NumeroAño" = YEAR('03/12/1998') GO El siguiente es el conjunto de resultados: NumeroAño Profesor Henry Chavez Viera SQL Server 2005 Express Pag.69

70 UTILIZAR FUNCIONES MATEMÁTICAS Una función matemática realiza una operación matemática en expresiones numéricas y devuelve el resultado de la operación. Las funciones matemáticas operan sobre datos numéricos suministrados por el sistema Microsoft SQL Server (decimal, integer, float, real, money, smallmoney, smallint y tinyint). La precisión de las operaciones integradas para el tipo de datos float es, de forma predeterminada, de seis lugares decimales. ROUND Devuelve una expresión numérica, redondeada a la longitud o precisión especificada. Sintaxis ROUND ( numero, longitud ) Ejemplos Resultado ROUND(748.58, -1) ROUND(748.58, -2) ROUND(748.58, -3) ROUND( , 2) ROUND(123.45, -2) CEILING Devuelve un numero entero más pequeño mayor o igual que la expresión numérica dada. Sintaxis CEILING ( expressionnumerica ) Este ejemplo muestra valores numéricos positivos, negativos y cero con la función CEILING. SELECT CEILING($123.45), CEILING($ ), CEILING($0.0) El siguiente es el conjunto de resultados: FLOOR Devuelve el numero entero más grande menor o igual que la expresión numérica dada. Sintaxis FLOOR ( expresionnumerica ) Este ejemplo muestra valores numéricos positivos, negativos y valores de moneda con la función FLOOR. SELECT FLOOR(123.45), FLOOR( ), FLOOR($123.45) El resultado es la parte entera del valor calculado en el tipo de datos correspondiente a expresionnumerica Profesor Henry Chavez Viera SQL Server 2005 Express Pag.70

71 POWER Devuelve el valor de la expresión indicada elevada a la potencia especificada. Sintaxis POWER ( expression numerica, EXPONENTE ) Ejemplo elevar el valor 2 al cubo SELECT POWER(2,3) Resultado es igual a 8 SQRT Devuelve la raíz cuadrada de la expresión especificada. Sintaxis SQRT ( expressionnumerica ) float = 16 SELECT Devuelve 4 UTILIZAR FUNCIONES DE TEXTOS Estas funciones escalares realizan una operación sobre una cadena de entrada y devuelven un valor de cadena o un valor numérico. UPPER Convierte de minúsculas a mayúsculas Sintaxis UPPER (expressiontexto) Ejemplos En este ejemplo se utiliza la funcion UPPER para devolver el primer apellido del empleado concatenado con el nombre. SELECT UPPER(NOMBRE) + ', ' + APELLIDOS AS NAME FROM EMPLEADOS ORDER BY APELLIDOS LOWER Convierte de mayúsculas a minusculas Sintaxis LOWER ( expressiontexto ) Muestra los nombres de los clientes en minusculas SELECT LOWER(NOMBRECOMPAÑIA) FROM CLIENTES Profesor Henry Chavez Viera SQL Server 2005 Express Pag.71

72 LEFT Extrae caracteres empezando por el lado izquierdo de la cadena especificada como expresion de texto Sintaxis LEFT ( expressiontexto,numerocaracteres ) Este ejemplo devuelve los cinco caracteres situados más a la izquierda de cada nombre del producto SELECT LEFT(NOMBREPRODUCTO, 5) FROM PRODUCTOS RIGHT Extrae caracteres empezando por el lado derecho de la cadena de caracteres Sintaxis RIGHT ( expressiontexto, numerocaracteres) Este ejemplo devuelve los cinco caracteres situados más a la derecha de cada nombre del producto. SELECT RIGHT(NOMBREPRODUCTO, 5) FROM PRODUCTOS LEN Devuelve el número de caracteres de la expresión de cadena dada, excluidos los espacios finales en blanco. Sintaxis LEN ( expressiontexto ) Ejemplo : SELECT NOMBREPRODUCTO,LEN(NOMBREPRODUCTO) AS TOTALCARACTERES FROM PRODUCTOS Profesor Henry Chavez Viera SQL Server 2005 Express Pag.72

73 SUBSTRING Devuelve una parte de una expresión de caracteres Sintaxis SUBSTRING ( expressiontexto, Posicion inicial, numerocaracteres) En el ejemplo siguiente se muestra cómo obtener parte de una cadena de caracteres. En la tabla Empleados, esta consulta obtiene los apellidos en una columna y sólo la primera inicial en la segunda columna. SELECT nombre, SUBSTRING(Apellidos, 1, 1) FROM authors ORDER BY Apellidos REPLACE Reemplaza por una tercera expresión todas las apariciones de la segunda expresión de cadena proporcionada en la primera expresión de cadena. Sintaxis REPLACE ( 'expressiontexto1', 'expressiontexto2', expressiontexto3' ) En este ejemplo se reemplaza la cadena "cde" de "abcdefghi" por "xxx". SELECT REPLACE('abcdefghicde','cde','xxx') PATINDEX Devuelve la posición inicial de la primera aparición de un patrón en la expresión especificada o ceros si el patrón no se encuentra, con todos los tipos de datos de texto y caracteres. Sintaxis PATINDEX ( '%pattern%', expression ) En este ejemplo se busca la posición en que comienza el patrón "secas" en una fila específica de la columna NombreProducto de la tabla Productos SELECT PATINDEX('%secas%', nombreproducto) FROM Productos WHERE idproducto = 7 El siguiente es el conjunto de resultados: STUFF Elimina el número de caracteres especificado e inserta otro conjunto de caracteres en un punto de inicio indicado. Sintaxis STUFF (expressiontexto, PosInicial, longitud, expressiontexto ) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.73

74 En el ejemplo siguiente se obtiene una cadena de caracteres creada al eliminar tres caracteres de la primera cadena (abcdef) a partir de la posición 2 (la letra b) e insertar la segunda cadena en el punto de eliminación. SELECT STUFF('abcdef', 2, 3, 'ijklmn') El siguiente es el conjunto de resultados: aijklmnef STR Devuelve datos de tipo carácter obtenidos a partir de datos numéricos. Sintaxis STR ( expressionnumerica ) En el ejemplo siguiente se convierte una expresión formada por cinco dígitos y un separador decimal en una cadena de caracteres de seis posiciones. La parte fraccionaria del número se redondea a un lugar decimal. SELECT STR(123.45, 6, 1) El siguiente es el conjunto de resultados: SPACE Devuelve una cadena de espacios repetidos. Sintaxis SPACE ( expressionnumero ) En el ejemplo siguiente se corta el apellido de cada cliente y se concatena una coma, dos espacios y su nombre. SELECT RTRIM(Nombre) + ',' + SPACE(2) + LTRIM(apellidos) FROM Empleados ORDER BY Nombre, Apellidos El siguiente es el conjunto de resultados: CHAR Una función de cadena que convierte un código ASCII int en un carácter. Sintaxis CHAR ( expresionnumerica ) Este ejemplo utiliza CHAR(13) para imprimir la información de nombre, dirección y ciudad en líneas separadas, cuando los resultados se devuelven en texto. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.74

75 SELECT Nombre + ' ' + Apellidos, + CHAR(13) + Direccion, + CHAR(13) + Ciudad + Pais FROM Empleados WHERE IdEmpleado = 1 El siguiente es el conjunto de resultados: Nancy Davolio th Ave. E. Apt. 2A Seattle WA ASCII Devuelve el código ASCII del carácter más a la izquierda de una expresión de caracteres. Sintaxis ASCII ( expressiontexto ) SELECT ASCII( A ) Devuelve 65 REPLICATE Repite una expresión de caracteres un número especificado de veces. Sintaxis REPLICATE ( expressiontexto, numeroveces ) En este ejemplo se duplica el nombre de cada Empleado dos veces. SELECT REPLICATE(Nombre, 2) FROM Empleados ORDER BY nombre Profesor Henry Chavez Viera SQL Server 2005 Express Pag.75

76 FUNCIONES DE CONVERSION CAST Y CONVERT Convierten una expresión de un tipo de datos en otro. CAST y CONVERT proporcionan funciones similares. Este ejemplo concatena expresiones mediante la función de conversión de tipos de datos CAST. SELECT 'EL PRECIO ES ' + CAST(PRECIOUNIDAD AS VARCHAR(12)) FROM PRODUCTOS WHERE PRECIOUNIDAD > El siguiente es el conjunto de resultados: The precio es The precio es Este ejemplo convierte una columna de tipo int (la columna idpedido) en una columna de tipo char(20) para poder utilizarla en una cláusula LIKE. Mostrar los pedidos cuyo el mes de la fechapedido sea igual Agosto y el numero de pedido empieze en los numeros 12 SELECT IDPEDIDO,FECHAPEDIDO FROM PEDIDOS WHERE CAST(IDPEDIDO AS CHAR(20)) LIKE '12%' AND MONTH(FECHAPEDIDO) = 8 GO La function GetDate() devuelve la Fecha y la hora Actual en este formato Si desea obtener solo la fecha en formato Dia Mes Año sin incluir la hora actual haga lo siguiente SELECT CONVERT(VARCHAR(8),GETDATE(),3) SELECT CONVERT(VARCHAR(10),GETDATE(),103) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.76

77 COMANDOS SET El lenguaje de programación Transact-SQL ofrece varias instrucciones SET que alteran el tratamiento de información de SQL SERVER.. Las instrucciones SET se dividen en las siguientes categorías: Categoría Fecha y hora Bloqueo Varias Ejecución de consultas Valores de SQL-92 Estadísticas Transacciones Altera la configuración de la sesión actual para Tratar datos de fecha y hora. Tratar el bloqueo en Microsoft SQL Server Diversa funcionalidad de SQL Server. Ejecutar y procesar consultas. Utilizar la configuración predeterminada de SQL- 92. Presentar información estadística. Tratar transacciones de SQL Server. SET DATEFIRST Establece como primer día de la semana un número del 1 al 7. Sintaxis SET DATEFIRST { } Es un entero que indica el primer día de la semana y puede tener uno de los valores siguientes. Valor 1 Lunes 2 Martes 3 Miércoles 4 Jueves 5 Viernes 6 Sábado 7 (predeterminado, Inglés EE.UU.) Primer día de la semana: Domingo Puede utilizar la función para conocer el valor actual de SET DATEFIRST. SELECT En este ejemplo se indica el día de la semana correspondiente a un valor de fecha y se muestra el efecto de cambiar la opción DATEFIRST. SET DATEFIRST 7 GO SELECT CAST('1/1/99' AS DATETIME), DATEPART(DW, '1/1/99') Profesor Henry Chavez Viera SQL Server 2005 Express Pag.77

78 SET DATEFORMAT Determina el orden de las partes de la fecha (mes/día/año) para escribir datos de tipo datetime o smalldatetime. Sintaxis SET DATEFORMAT { } Este valor sólo se utiliza en la interpretación de las cadenas de caracteres cuando se convierten en valores de fecha. No tiene ningún efecto en la presentación de los valores de fecha. En este ejemplo se usan distintos formatos de fecha para tratar cadenas de fecha con formatos diferentes. /*Establecemos el formato en Mes Dia Año SET DATEFORMAT MDY GO /*DECLARAMOS UNA VARIABLE DE TIPO FECHA DATETIME /*ASIGNAMOS EL VALOR A LA VARIABLE = '12/31/98' /*MOSTRAMOS EL VALOR DE LA VARIABLE GO /* Establecemos el formato en Año Dia mes y hacemos lo mismo que el Ejemplo Anterior SET DATEFORMAT DMY GO DATETIME = '31/12/98' GO SET IDENTITY_INSERT Permite insertar valores explícitos en la columna identidad(autonumerica) de una tabla.por ejemplo la tabla PRODUCTOS tiene el campo idproducto como clave primaria y es una columna con la propiedad identidad establecida en si Ejemplos En este ejemplo se crea una tabla con una columna de identidad y se muestra cómo se puede usar la opción SET IDENTITY_INSERT para llenar un hueco en los valores de identidad causado por una instrucción DELETE. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.78

79 1. Tenemos la siguiente tabla 2. Eliminamos la categoria de codigo 7 DELETE FROM CATEGORÍAS WHERE IDCATEGORÍA = 7 GO SELECT * FROM CATEGORÍAS GO Ahora si queremos insertar un nuevo registro con el codigo numero 7 que fue eliminado no sera posible porque SQL SERVER nos enviara el sgte error Servidor: mensaje 544, nivel 16, estado 1, línea 1 No se puede insertar un valor explícito en la columna de identidad de la tabla 'Categorías' cuando IDENTITY_INSERT es OFF Para solucionar este problema usaremos la siguiente instrucción SET IDENTITY_INSERT CATEGORÍAS ON GO INSERT INTO CATEGORÍAS(IDCATEGORÍA, NOMBRECATEGORÍA) VALUES(7, 'FRUTAS/VERDURAS') GO /*EXAMINE LOS RESULTADOS*/ SELECT * FROM CATEGORIAS SET LANGUAGE Especifica el idioma de entorno de la sesión. El idioma de la sesión determina los formatos de datetime y los mensajes del sistema.utilice la funcion Para averiguar el nombre del idioma en uso. En este ejemplo se establece como idioma predeterminado en español SET LANGUAGE spanish GO Profesor Henry Chavez Viera SQL Server 2005 Express Pag.79

80 SET NOCOUNT Hace que deje de devolverse como parte de los resultados el mensaje que indica el número de filas afectado por una instrucción Transact-SQL. Sintaxis SET NOCOUNT { ON OFF } Cuando SET NOCOUNT es ON, no se devuelve el número de filas afectado por una instrucción Transact-SQL. Cuando SET NOCOUNT es OFF, sí se devuelve ese número. La función se actualiza incluso cuando SET NOCOUNT es ON. Este ejemplo en el Analizador de consultas de SQLse impide que aparezca el mensaje con el número de filas afectadas. GO SELECT IDPEDIDO FROM PEDIDOS GO SET NOCOUNT ON GO SELECT IDPEDIDO FROM PEDIDOS GO /*PARA REESTABLECERLO DESACTIVE EL COMANDO EN OFF*/ SET NOCOUNT OFF GO SET ROWCOUNT Hace que Microsoft SQL Server deje de procesar la consulta cuando se haya devuelto el número de filas especificado. SET ROWCOUNT detiene el procesamiento cuando se alcanza el número de filas especificado. En este ejemplo, observe que hay x filas que cumplen el criterio de anticipo inferior o igual a 10 $; aunque por el número de filas que devuelve la actualización se puede ver que no se procesaron todas. ROWCOUNT afecta a todas las instrucciones de Transact-SQL. SELECT COUNT(*) AS Contador FROM Pedidos WHERE Cargo >= 10 GO A continuación se establece 4 en ROWCOUNT y se actualizan todas las filas con anticipos de 10 $ o más. SET ROWCOUNT 4 GO UPDATE PEDIDOS SET CARGO = 7.5 WHERE CARGO >= 10 GO Profesor Henry Chavez Viera SQL Server 2005 Express Pag.80

81 USO DE CREATE FUNCTION Microsoft agregó nuevas características a su producto SQL SERVER 2000, y lo más interesante para los programadores del SQL es la posibilidad de hacer funciones definidas por el usuario. La adición de funciones al lenguaje del SQL solucionara los problemas de reutilización del código y dara mayor flexibilidad al programar las consultas de SQL. TIPOS DE FUNCIONES El servidor 2000 del SQL utiliza estos tipos de funciones: 1. Las funciones escalares, 2. Tabla en linea Los tres tipos de funciones aceptan parámetros de cualquier tipo. Las funciones escalares devuelven un solo valor, tabla en linea y Multisentencias devuelben un tipo de dato tabla. I. FUNCIONES ESCALARES Las funciones escalares vuelven un tipo de los datos tal como int, money, varchar, real, etc. Pueden ser utilizadas en cualquier lugar incluso incorporada dentro de sentencias SQL. La sintaxis para una función escalar es la siguiente: CREATE FUNCTION NombreFuncion ( parametern]) RETURNS tipovalorretorno [AS] BEGIN <instrucciones> RETURN expresionescalar END EJEMPLO: 1. Escriba esto en el analizador de consultas CREATE FUNCTION SUMA INT) RETURNS INT AS BEGIN END Profesor Henry Chavez Viera SQL Server 2005 Express Pag.81

82 2. A continuacion selecciona todo el texto de la funcion y pulsa F5 3. Para confirmar la creacion de la funcion revise el panel izquierdo del analizador de consultas en su base de datos SUPERMERCADOSNEPTUNO 4. Probemos la funcion ahora 5. SELECT DBO.SUMA(100,500) AS TOTAL 6. Tambien podemos usarla utilizando una tabla: SELECT IDPRODUCTO,NOMBREPRODUCTO,PRECIOUNIDAD, DBO.SUMA(PRECIOUNIDAD,10) AS PRECIOINCREMENTADO FROM PRODUCTOS II. FUNCIONES DE TABLA EN LÍNEA Las funciones de tabla en linea son las funciones que devuelven la salida de una simple declaración SELECT. La salida se puede utilizar adentro de joins o consultas como si fuera un tabla de estándar. CREATE FUNCTION varchar(25) ) RETURNS TABLE AS RETURN (SELECT * FROM Clientes WHERE País Creamos la funcion y luego invocaremos a la funcion de esta forma: SELECT * FROM DBO.CLIENTESPORPAIS('ALEMANIA') Profesor Henry Chavez Viera SQL Server 2005 Express Pag.82

83 ALTER FUNCTION Modifica una función existente definida por el usuario, creada anteriormente por la ejecución de la instrucción CREATE FUNCTION, sin cambiar los permisos y sin que afecte a ninguna otra función, procedimiento almacenado o desencadenador dependientes. EJEMPLO :Modificando la funcion SUMA. Para que acepte valores con decimales vamos a cambiar los tipos INT por FLOAT ALTER FUNCTION SUMA FLOAT) RETURNS FLOAT AS BEGIN END Invocando a la FUNCION SUMA: SELECT DBO.SUMA(12.5,2.7) EJEMPLOS DE FUNCIONES CREATE FUNCTION DATETIME) RETURNS TINYINT AS BEGIN TINYINT SET END Invocando la funcion :SELECT DBO.EDAD( 22/09/71,GETDATE()) CREATE FUNCTION FLOAT) RETURNS MONEY AS BEGIN FLOAT FLOAT SET SET RETURN END Invocando la funcion :SELECT DBO.PAGOCUOTA(5000,10,0.06) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.83

84 CREATE FUNCTION AS INTEGER) RETURNS TABLE AS RETURN SELECT IDPEDIDO, FECHAPEDIDO, NOMBRECOMPAÑÍA, NOMBRE, APELLIDOS, PEDIDOS.CARGO FROM PEDIDOS INNER JOIN CLIENTES ON PEDIDOS.IDCLIENTE=CLIENTES.IDCLIENTE INNER JOIN EMPLEADOS ON PEDIDOS.IDEMPLEADO=EMPLEADOS.IDEMPLEADO WHERE Invocando a la funcion :SELECT * FROM DBO.PEDIDOSAÑO(1995) ELIMINAR UNA FUNCION Para eliminar una funcion ejecute el comando DROP FUNCTION Ejemplo: DROP FUNCTION DBO.PEDIDOSAÑO Profesor Henry Chavez Viera SQL Server 2005 Express Pag.84

85 CREACION DE VISTAS CON CREATE VIEW Una vista es una tabla virtual que está definida por una consulta que consiste en una instrucción SELECT. Esta tabla virtual está creada con datos de una o más tablas reales y, para los usuarios, una vista parece una tabla real. De hecho, una vista puede ser tratada del mismo modo que una tabla normal. Los usuarios pueden hacer referencia a estas tablas virtuales con instrucciones Transact-SQL (T-SQL) del mismo modo que se hace con las tablas. En una vista se pueden realizar las operaciones SELECT, INSERT UPDATE y DELETE. En realidad, una vista se almacena simplemente como una instrucción SQL previamente definida. Cuando se accede a la vista, el optimizador de consultas de SQL Server une la instrucción SQL que se ejecuta en ese momento con la consulta que se use para definir la vista. EJEMPLO: CREATE VIEW ProductosMasCaros AS BEGIN SELECT TOP 5 NOMBREPRODUCTO,PRECIOUNIDAD,UNIDADESENEXISTENCIA FROM PRODUCTOS ORDER BY PRECIOUNIDAD DESC END Invocando la vista: SELECT * FROM ProductosMasCaros VENTAJAS DE LAS VISTAS Una ventaja del uso de las vistas es que éstas siempre ofrecen los datos actualizados. La instrucción SELECT que define una vista sólo se ejecuta cuando se accede a la vista, por tanto, todos los cambios de la tabla subyacente se reflejan en la vista. Otra ventaja de usar vistas es que una vista puede tener un nivel diferente de seguridad del que posea la tabla subyacente. La consulta que define la vista se ejecuta con el nivel de seguridad que posea el usuario que crea la vista. De esta manera, se puede crear una vista que enmascare los datos que no se quieran mostrar a ciertas clases de usuarios. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.85

86 MODIFICAR UNA VISTA Utilice el comando ALTER VIEW de la siguiente forma:cambiamos de la vista anterior el 5 por 10 y ejecutamos de nuevo con el comando ALTER VIEW ALTER VIEW ProductosMasCaros AS BEGIN SELECT TOP 10 NOMBREPRODUCTO,PRECIOUNIDAD,UNIDADESENEXISTENCIA FROM PRODUCTOS ORDER BY PRECIOUNIDAD DESC END Invocando a la vista : SELECT * FROM ProductosMasCaros ELIMINAR UNA VISTA Utilice el comando DROP VIEW para eliminar una vista de la siguiente forma: DROP VIEW ProductosMasCaros PROCEDIMIENTOS ALMACENADOS Los procedimientos almacenados son conjuntos de sentencias en leguaje Transact SQL que pueden almacenarse en el propio servidor. Los procedimientos almacenados de SQL Server, son más potentes, porque permiten almacenar funciones y procedimientos compuestos por varias instrucciones, introducir saltos, bucles, etc. También se pueden compilar procedimiento escritos en lenguaje C, para ampliar su potencia modularmente. Por ejemplo, podemos crear un procedimiento para recuperar el nombre de un Cliente, cuyo código se pasa por parámetro. CREATE PROCEDURE varchar(11) AS SELECT NOMBRECOMPAÑíA FROM CLIENTES WHERE IDCLIENTE Con esta sentencia, se crea un procedimiento almacenado, de nombre ObtenerNombre, al que se le pasa un parámetro, de tipo varchar(11), que realiza una consulta para obtener el nombre de la tabla clientes, cuyo código coincida con el parámetro. De esta forma, si queremos obtener el nombre del cliente cuyo código sea 'anton', deberemos ejecutar el procedimiento pasándole como argumento este valor: Profesor Henry Chavez Viera SQL Server 2005 Express Pag.86

87 Las llamadas a procedimientos almacenados se pueden realizar de las siguientes formas: Pasando los argumentos en el mismo orden que en el que se han declarado. Exec ObtenerNombre 'anton' esta sentencia produce la siguiente la salida: Pasando los argumentos nombrados. En este caso no hace falta que los parámetros vayan en el mismo orden. = 'ANTON' Ejemplo 2: CREATE PROCEDURE LISTARPEDIDOS SMALLDATETIME ) AS SELECT PEDIDOS.IDPEDIDO,CLIENTES.NOMBRECOMPAÑÍA,EMPLEADOS.NOMBRE + EMPLEADOS.APELLIDOS AS EMPLEADO,PEDIDOS.CARGO,PEDIDOS.FECHAPEDIDO, PEDIDOS.FECHAENVIO,PEDIDOS.FECHAENTREGA FROM PEDIDOS INNER JOIN CLIENTES ON PEDIDOS.IDCLIENTE=CLIENTES.IDCLIENTE INNER JOIN EMPLEADOS ON PEDIDOS.IDEMPLEADO=EMPLEADOS.IDEMPLEADO WHERE AND FECHAPEDIDO Ejecutando el procedimiento almacenado EXEC LISTARPEDIDOS 'ANTON','12/05/95','22/12/96' Profesor Henry Chavez Viera SQL Server 2005 Express Pag.87

88 PARÁMETROS POR REFERENCIA Si ejecutamos las anteriores sentencias, obtendremos el resultado directamente en la ventana que tengamos abierta en SQL Server. Pero Que pasa si queremos obtener un parámetro de salida, como resultado de la ejecución del procedimiento?. La solución para este caso es utilizar la palabra reservada OUTPUT para los argumentos de salida. Si por ejemplo, queremos obtener el número de clientes y el número de productos que tenemos en la base de datos, crearemos el procedimiento almacenado que muestra el Código fuente. CREATE PROCEDURE int int OUTPUT AS SELECT * FROM clientes = SELECT * FROM productos = RETURN (0) Vamos a estudiar el anterior ejemplo. Básicamente es similar al anterior. Detrás de la palabra reservada PROCEDURE damos el nombre del procedimiento almacenado, y a continuación proporcionamos los parámetros, junto con su tipo (que en este caso es entero), y diremos sin éstos son de salida, en cuyo caso especificamos la palabra reservada OUTPUT a continuación. Tras la palabra reservada AS se codifica el cuerpo del procedimiento. Primero contamos todas las filas de la tabla clientes, realizando un SELECT * FROM clientes. A continuación devolvemos en el el valor obtenido, utilizando Acto seguido se realiza lo mismo para la tabla Productos. Nótese como la forma de asignar un valor a un atributo es mediante una sentencia SELECT, igualando el parámetro al valor. La función devuelve el número de filas que se han seleccionado. Es equivalente a la sentencia que aparece en el Código fuente SELECT COUNT(*) FROM Productos Se podría sustituir por Código fuente CREATE PROCEDURE int int OUTPUT AS = (SELECT COUNT(*) FROM clientes) = (SELECT COUNT(*) FROM Productos) RETURN (0) Para ejecutar el anterior procedimiento, seguiremos los siguientes pasos: Declarar las variables que vamos a utilizar para llamar al procedimiento. La sintaxis para declarar una variable es utilizar la palabra reservada DECLARE, seguido del nombre de la variable y el tipo. int int Profesor Henry Chavez Viera SQL Server 2005 Express Pag.88

89 Ejecutar el procedimiento. La sintaxis es utilizar la palabra reservada EXEC, seguida del nombre del procedimiento, y los parámetros, separados por comas, especificando si son de retorno. EXEC OUTPUT Mostrar los resultados SELECT clientes productos Tras ejecutar las anteriores sentencias, obtendremos como resultado el siguiente listado: EXECUTE Ejecuta una función definida por el usuario que devuelve valores escalares, un procedimiento del sistema, un procedimiento almacenado definido por el usuario o un procedimiento almacenado extendido. Admite también la ejecución de una cadena de caracteres. Ejemplo: VARCHAR(25) EXEC ('SELECT * FROM ' MODIFICAR UN PROCEDIMIENTO ALMACENADO Si queremos modificar un procedimiento almacenado, ejecutaremos la sentencia ALTER PROCEDURE, seguido del nombre del procedimiento. Por ejemplo, si queremos hacer cambios el procedimiento almacenado, creado en el anterior ejemplo, escribiremos el Código fuente ALTER PROCEDURE int int OUTPUT AS = (SELECT COUNT(*) FROM clientes where pais= alemania ) = (SELECT COUNT(*) FROM productos where preciounidad>10) RETURN (0) Profesor Henry Chavez Viera SQL Server 2005 Express Pag.89

90 ELIMINAR UN PROCEDIMIENTO ALMACENADO Si queremos borrar un procedimiento almacenado, ejecutaremos la sentencia DROP PROCEDURE, seguido del nombre del procedimiento. Por ejemplo, si queremos borrar el procedimiento almacenado, creado en el anterior ejemplo, escribiremos el Código fuente DROP PROCEDURE num_clientes_clientes EJEMPLOS DE PROCEDIMIENTOS ALMACENADOS Utilizar EXECUTE con DEFAULT El ejemplo siguiente crea un procedimiento almacenado con un valor predeterminado para su parametro. Cuando se ejecuta el procedimiento,el valor predeterminado se insertan como parámetro si no se pasa ningún valor en la llamada o si se especifica el valor predeterminado. CREATE PROCEDURE VARCHAR(25) ='ARGENTINA') AS SELECT IDCLIENTE,NOMBRECOMPAÑÍA,DIRECCIÓN,PAÍS FROM CLIENTES WHERE Observe las distintas formas en las que se puede utilizar la palabra clave DEFAULT Sino se especifica el valor del parametro se asume entonces el valor por defecto es decir se tomara entonces el valor ARGENTINA EXEC LISTARCLIENTES DEFAULT CREACION DE TRIGGERS Los disparadores de procedimiento, más comúnmente conocidos como triggers, son una especie de procedimientos almacenados, a diferencia que se ejecutan cuando ocurre un evento sobre alguna tabla. Entendemos por evento, cualquier acción del tipo: INSERCIÓN BORRADO ACTUALIZACIÓN La sintaxis de la sentencia de creación de triggers es la siguiente: CREATE TRIGGER nombre ON tabla FOR accion AS codigo Donde acción especifica el evento que debe ocurrir para que se dispare el trigger, y que puede ser: UPDATE: actualización. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.90

91 INSERT: inserción. DELETE: borrado. Por ejemplo, si queremos crear un trigger llamado modificación_cliente, sobre la tabla Authors, que muestre un mensaje cada vez que se actualiza una fila de la tabla, deberemos escribir el Código fuente CREATE TRIGGER modificacion_pedidos ON Pedidos FOR UPDATE AS print "Han actualizado la tabla Pedidos" Para comprobar el funcionamiento de este trigger, podemos actualizar cualquier fila de la tabla de clientes, por ejemplo con la sentencia que aparece en el Código fuente UPDATE clientes SET nombre = 'Antonio Moreno' WHERE idcliente = 'anton' Con esto conseguimos dos cosas, actualizar el nombre del cliente cuyo código es el especificado a Miguel, y obtener el mensaje que se muestra como ejecución del trigger de actualización. Sin embargo, los triggers en SQL Server tienen una serie de limitaciones: 1. No se puede disparar un trigger dentro de otro trigger, ya que daría lugar a un bucle infinito 2. Por esta razón, un trigger no puede ejecutar instrucciones DDL (lenguaje de definición de datos) 3. No se pueden ejecutar sentencias como SELECT INTO o de creación de dispositivos dentro de un trigger ELIMINAR UN TRIGGER Para borrar un trigger, deberemos ejecutar la sentencia DROP TRIGGER Por ejemplo, si queremos borrar el trigger anteriormente creado, ejecutaremos el Código fuente DROP TRIGGER modificacion_cliente MODIFICAR UN TRIGGER Para modificar un trigger, deberemos ejecutar la sentencia ALTER TRIGGER Por ejemplo, si queremos modificar el trigger anteriormente creado, ejecutaremos el Código fuente ALTER TRIGGER modificacion_pedidos ON Pedidos FOR UPDATE AS print "Los registros de la tabla Pedidos han sido actualizados" Como ya se ha comentado, los triggers o desencadenadores son una especie de procedimientos almacenados, que se ejecutan cuando ocurre una acción dentro de la base de Profesor Henry Chavez Viera SQL Server 2005 Express Pag.91

92 datos. Así, si por ejemplo se ejecuta una inserción, una actualización, o un borrado de una tabla, se ejecutarían las sentencias definidas para el trigger en concreto de esa tabla específica. Recordamos cual es su sintaxis: CREATE TRIGGER nombre ON tabla FOR [DELETE INSERT UPDATE] AS Sentencias Las palabras reservadas DELETE, INSERT y UPDATE corresponden a cada una de las acciones para las cuales se puede definir un desencadenador dentro de la tabla especificada. El bloque de sentencias permite prácticamente cualquier tipo de ellas dentro del lenguaje T- SQL, pero con ciertas limitaciones. Por ejemplo, no se podrá utilizar la sentencia select, ya que un trigger no puede devolver datos al usuario, sino que simplemente se ejecuta para cambiar o comprobar los datos que se van a insertar, actualizar o borrar. LAS TABLAS DELETED E INSERTED Dentro de la definición de un trigger, podemos hacer referencia a un par de tablas lógicas, cuya estructura es similar a la tabla donde se esta ejecutando el trigger; es decir, es una copia de la tabla en la cual se van a insertar o borrar los datos, y que contiene, precisamente, los datos que van a ser añadidos o borrados. La utilidad de estas dos tablas es la de realizar comprobaciones entre los datos antiguos y los nuevos.así, por ejemplo, si queremos recuperar los datos de la tabla que estamos borrando, dentro del trigger,se deberá ejecutar el siguiente código: SELECT * FROM DELETED TIPOS DE DESENCADENADORES SQL-Server permite la definición de varios tipos de triggers, entre los cuales cabe destacar los siguientes: DESENCADENADORES MÚLTIPLES: Para una misma tabla, se pueden definir distintos triggers para la misma acción, es decir, si definimos un trigger para insert, y resulta que dicha tabla ya tenía definido un trigger para esa misma acción, se ejecutarán ambos triggers cuando ocurra dicho evento sobre la tabla. DESENCADENADORES RECURSIVOS: Se permite la recursividad entre las llamadas a los triggers, es decir, un trigger puede llamar a su vez a otro, bien de forma directa, bien de forma indirecta. DESENCADENADORES ANIDADOS: si un trigger cambia una tabla en la que se encuentra definido otro trigger, se provoca la llamada de este último que, si a su vez vuelve a modificar otra tabla, puede provocar la ejecución de otro trigger, y así sucesivamente. Si se supera el nivel de anidamiento permitido, se cancelará la ejecución de los triggers. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.92

93 CREATE TRIGGER TR_ACTUALIZASTOCK ON [DETALLES DE PEDIDOS] FOR INSERT AS BEGIN INT INT INT IDPRODUCTO FROM INSERTED) CANTIDAD FROM INSERTED) (SELECT STOCK FROM PRODUCTOS WHERE IF BEGIN UPDATE PRODUCTOS SET WHERE PRINT 'SE DESCARGO EL STOCK' END ELSE BEGIN ROLLBACK PRINT 'LA CANTIDAD DEBE SER MENOR AL STOCK' ENDEND 3. Crear un trigger que no permita registrar un detalle de pedido con un idpedido que no exista en la tabla pedidos CREATE TRIGGER VALIDADETALLE ON DETALLES FOR INSERT AS BEGIN INT ISNULL((SELECT IDPEDIDO FROM PEDIDOS WHERE IDPEDIDO=(SELECT IDPEDIDO FROM INSERTED)),0) BEGIN PRINT 'NO SE PUEDE INSERTAR UN PEDIDO' ROLLBACK END END 4. Crear un triger ue no permita la venta de condimentos CREATE TRIGGER PROHIBECONDIMENTOS ON [DETALLES DE PEDIDOS] FOR INSERT AS BEGIN INT INT C.IDCATEGORÍA FROM CATEGORÍAS C WHERE C.NOMBRECATEGORÍA LIKE 'CONDIMENTO%') SELECT IDPRODUCTO FROM PRODUCTOS WHERE Profesor Henry Chavez Viera SQL Server 2005 Express Pag.93

94 AND IDPRODUCTO= (SELECT IDPRODUCTO FROM INSERTED) ),0) BEGIN PRINT 'NO SE PUEDE VENDER UN CONDIMENTO ESTA SUSPENDIDO' ROLLBACK END END DESHABILITAR UN TRIGGER Para DESHABILITAR un triger se hace de la siguiente manera ALTER TABLE DETALLES DISABLE TRIGGER PROHIBECONDIMENTOS Para HABILITAR un triger se hace de la siguiente manera ALTER TABLE DETALLES ENABLE TRIGGER PROHIBECONDIMENTOS Profesor Henry Chavez Viera SQL Server 2005 Express Pag.94

95 S SESION 5 SQL Server Management Studio Express (Herramienta de Administración y Consulta) Optimizar Base de Datos Configuración de Servicios Seguridad en Sql Server 2005 Express Edition Profesor Henry Chavez Viera SQL Server 2005 Express Pag.95

96 MICROSOFT SQL SERVER MANAGEMENT STUDIO EXPRESS HERRAMIENTAS DE ADMINISTRACION Y CONSULTA Microsoft SQL Server Management Studio Express (SSMSE) es una herramienta gráfica de administración gratuita y fácil de usar para SQL Server 2005 Express Edition y SQL Server 2005 Express Edition with Advanced Services. 1. SQL Server Express Edition es una edición gratuita de MS SQL Server, con la que podrá utilizar bases de datos SQL sin ningún coste adicional. Entre sus características podemos destacar: o o o o SQL Server 100 % compatible: Con todas sus funcionalidades: transacciones, procedimientos almacenados, etc. Facilita a los desarrolladores el escalado de sus aplicaciones a SQL Server de ediciones superiores. Desarrollos distribuibles a clientes que trabajen con SQL Server. Herramienta de administración y consulta SQL Server Management Studio Express. Utiliza un procesador y hasta 1GB de memoria. Tamaño de bases de datos limitado a 4GB. MICROSOFT SQL SERVER 2005 EXPRESS EDITION WITH ADVANCED SERVICES Microsoft SQL Server 2005 Express Edition with Advanced Services (SQL Server Express) es una nueva versión gratuita y fácil de usar de SQL Server Express que incluye una nueva herramienta gráfica y eficaces características para la generación de informes y búsquedas de texto avanzadas. SQL Server Express proporciona herramientas de administración eficaces y confiables y características completas, protección de datos y un rendimiento rápido. Es ideal para clientes de aplicaciones incrustadas, aplicaciones Web ligeras y almacenes de datos locales. SQL Server Express with Advanced Services tiene todas las características de SQL Server 2005 Express Edition y, además, puede: Administrar fácilmente SQL Server Express con una nueva herramienta gráfica de administración fácil de usar: SQL Server 2005 Management Studio Express (SSMSE). Realizar consultas de texto en datos simples basados en caracteres contenidos en tablas de SQL Server. Las consultas de texto pueden contener palabras y frases o formas diversas de una palabra o frase. Ejecutar informes de SQL Server Reporting Services de datos relacionales locales. Profesor Henry Chavez Viera SQL Server 2005 Express Pag.96

97 Requisitos del sistema Sistemas operativos compatibles: Windows 2000 Service Pack 4; Windows Server 2003 Service Pack 1; Windows XP Service Pack 2 Equipo con procesador Intel Pentium III o compatible a 500 MHz o más rápido (se recomienda 1 GHz o más rápido). 512 MB de memoria RAM como mínimo (se recomienda 1 GB o más). 600 MB de espacio disponible en disco duro. Nota: SQL Server Express with Advanced Services requiere IIS 5.0 o posterior para ejecutar Reporting Services. Tareas Administrativas en SQL Server 2005 Express con SERVER MANAGEMENT STUDIO Profesor Henry Chavez Viera SQL Server 2005 Express Pag.97

CAPITULO 7. MS SQL Server Express Edition

CAPITULO 7. MS SQL Server Express Edition CAPITULO 7 MS SQL Server Express Edition 7.1 Requerimientos Previos El proceso de instalación de Microsoft SQL Server 2008 no es complejo y es de gran importancia tener en cuenta que se está realizando

Más detalles

ÍNDICE. Introducción... Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1

ÍNDICE. Introducción... Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1 Introducción... XIII Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1 Novedades y mejoras en SQL Server 2008 R2... 1 Novedades... 1 Mejoras... 3 Ediciones y componentes en SQL Server

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

Es un lenguaje de consulta estructurado establecido claramente como lenguaje de alto nivel estándar para sistemas de base de datos relacionales.

Es un lenguaje de consulta estructurado establecido claramente como lenguaje de alto nivel estándar para sistemas de base de datos relacionales. SQL (Lenguaje de Consulta Estructurado): Es un lenguaje de consulta estructurado establecido claramente como lenguaje de alto nivel estándar para sistemas de base de datos relacionales. ANSI (Instituto

Más detalles

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints Crear Una Base De Datos (L12) A TRAVÉS DE LA CONSOLA DE ADMINISTRACIÓN A TRAVÉS DEL ASISTENTE DE BASES DE DATOS (DATABASE WIZARD) A TRAVÉS DE COMANDOS SQL (CREATE DATABASE, CREATE TABLE) Crear Un Grupo

Más detalles

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA ÍNDICE CAPÍTULO 1. CARACTERÍSTICAS, NOVEDADES Y ENTORNO DE TRABAJO...17 1.1 NOVEDADES EN SQL SERVER 2008 R2...17 1.2 INSTALACIÓN DE MICROSOFT SQL SERVER 2008 R2...18 1.3 VERSIONES DE MICROSOFT SQL SERVER

Más detalles

8 SQL SERVER 2008 RA-MA

8 SQL SERVER 2008 RA-MA Í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

Más detalles

Tema: Creacion de una base de datos utilizando sintaxis Sql.

Tema: Creacion de una base de datos utilizando sintaxis Sql. Base de datos I. Guía 4 1 INSAFOR Tema: Creacion de una base de datos utilizando sintaxis Sql. Objetivo Específico Comprender la sintaxis SQL para crear base de datos y tablas Crear una base de datos con

Más detalles

MANUAL DE INSTALACIÓN DE SIGCPIOPER v3. (Proyecto SIGCPI)

MANUAL DE INSTALACIÓN DE SIGCPIOPER v3. (Proyecto SIGCPI) MANUAL DE INSTALACIÓN DE SIGCPIOPER v3 (Proyecto SIGCPI) Contenido Introducción... 3 Instalación Versión Monopuesto... 3 Requisitos Software Versión Monopuesto... 3 Instalación de los prerrequisitos...

Más detalles

Tema: Creacion de una base de datos utilizando sintaxis Sql.

Tema: Creacion de una base de datos utilizando sintaxis Sql. Base de datos I. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Creacion de una base de datos utilizando sintaxis Sql. Objetivo Específico Comprender la sintaxis SQL

Más detalles

CLAVE DE UNIDAD DE APRENDIZAJE DURACIÓN (HORAS) NOMBRE DE LA PRÁCTICA. Comandos SQL 2

CLAVE DE UNIDAD DE APRENDIZAJE DURACIÓN (HORAS) NOMBRE DE LA PRÁCTICA. Comandos SQL 2 2014-2 FACULTAD DE INGENIERÍA MEXICALI Formato para Prácticas de Laboratorio PROGRAMA EDUCATIVO PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE NOMBRE DE LA UNIDAD DE APRENDIZAJE LSC 2009-2 12001 Administración

Más detalles

[ EDICION ESPECIAL] En el siguiente ejemplo se agrega un archivo de datos de 5 MB a la base de datos BD_Ejemplo01.

[ EDICION ESPECIAL] En el siguiente ejemplo se agrega un archivo de datos de 5 MB a la base de datos BD_Ejemplo01. 01 BASE DE DATOS Crear la base de datos Ejemplo_05 especificando un único archivo. Use master Create database Ejemplo_05 on (name=archidat1, filename='c:\ejercicio\archidat1.mdf', size=4, maxsize=10, filegrowth=1

Más detalles

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO LENGUAJE DE CONSULTA ESTRUCTURADO - SQL 1. TIPOS DE DATOS 2. COMANDOS DDL 2.1 Créate 2.2 Drop 2.3 Alter 3. COMANDOS DML 3.1 Select 3.2 Insert 3.3 Update 3.4 Delete 4. CLAUSULAS 4.1 From 4.2 Where 4.3 Having

Más detalles

TUTORIAL CONEXIÓN SQL SERVER 2005 CON VISUAL STUDIO 2005(TECNOLOGIA RAD)

TUTORIAL CONEXIÓN SQL SERVER 2005 CON VISUAL STUDIO 2005(TECNOLOGIA RAD) TUTORIAL CONEXIÓN SQL SERVER 2005 CON VISUAL STUDIO 2005(TECNOLOGIA RAD) Resumen:En este tutorial, aprenderá a sacar el máximo partido a las capacidades de diseño integradas en Visual Studio 2005 para

Más detalles

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas LENGUAJE SQL Que es SQL? SQL es un estándar un lenguaje estructurado para consultas SQL te permite acceder y manejar bases de datos SQL es un Estándar (ANSI American National Standards Institute) Que puede

Más detalles

FileMaker 11. Guía ODBC y JDBC

FileMaker 11. Guía ODBC y JDBC FileMaker 11 Guía ODBC y JDBC 2004-2010 FileMaker, Inc. Reservados todos los derechos. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker es una marca comercial de FileMaker,

Más detalles

INTRODUCCIÓN AL SQL. TRANSACT-SQL SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

INTRODUCCIÓN AL SQL. TRANSACT-SQL SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE INTRODUCCIÓN AL SQL. TRANSACT-SQL SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE INTRODUCCIÓN AL SQL. TRANSACT SQL CONCEPTOS BÁSICO DE SQL SQL (Structured Query Language),

Más detalles

Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1

Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1 Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER GUÍA 2 Pág. 1 I. OBJETIVOS Utilizar procedimientos almacenados Conocer el uso de los cursores

Más detalles

SENTENCIAS Y CONSULTAS EN SQL SERVER

SENTENCIAS Y CONSULTAS EN SQL SERVER SENTENCIAS Y CONSULTAS EN SQL SERVER En esta sección nos preocuparemos por conocer, las consultas en SQL que describiremos aquí. Para eso haremos un pequeño de las palabras claves que se utilizan en SQL,

Más detalles

CLAVE DE UNIDAD DE APRENDIZAJE DURACIÓN (HORAS) NOMBRE DE LA PRÁCTICA. Tópicos de arquitectura de computadoras. Comandos SQL 2

CLAVE DE UNIDAD DE APRENDIZAJE DURACIÓN (HORAS) NOMBRE DE LA PRÁCTICA. Tópicos de arquitectura de computadoras. Comandos SQL 2 FACULTAD DE INGENIERÍA MEXICALI Formato para Prácticas de Laboratorio PROGRAMA EDUCATIVO PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE NOMBRE DE LA UNIDAD DE APRENDIZAJE LSC 2009-2 12001 Administración

Más detalles

INSTALACION Y CONFIGURACION DE SQL SERVER MANAGEMENT (EXPRESS) 2008

INSTALACION Y CONFIGURACION DE SQL SERVER MANAGEMENT (EXPRESS) 2008 INSTALACION Y CONFIGURACION DE SQL SERVER MANAGEMENT (EXPRESS) 2008 Requisitos de HW Virtualización SQL Server se admite en entornos de máquina virtual que se ejecutan en el rol de: Windows Server 2008

Más detalles

FileMaker 12. Guía ODBC y JDBC

FileMaker 12. Guía ODBC y JDBC FileMaker 12 Guía ODBC y JDBC 2004-2012 FileMaker, Inc. Reservados todos los derechos. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker y Bento son marcas comerciales de

Más detalles

Cómo abrir las bases de datos de Aspel-NOI 5.0?

Cómo abrir las bases de datos de Aspel-NOI 5.0? Cómo abrir las bases de datos de Aspel-NOI 5.0? 1. Herramientas de administración nativas de Firebird. Firebird cuenta con una herramienta llamada ISQL la cual es una consola de línea de comandos desde

Más detalles

Gestión Documental ERP

Gestión Documental ERP N. Documento Revisión Nº: 1.0 Fecha: 30/03/11 Introducción 1 Configuración de la Gestión Documental ERP 2 Funcionamiento de la Gestión Documental ERP 6 ÍNDICE Introducción El programa Ahora permite una

Más detalles

ECB CONT SISTEMA DE CONTABILIDAD INSTALACIÓN DE BASE DE DATOS

ECB CONT SISTEMA DE CONTABILIDAD INSTALACIÓN DE BASE DE DATOS ECB CONT SISTEMA DE CONTABILIDAD INSTALACIÓN DE BASE DE DATOS INDICE 1. INTRODUCCION... - 3-2. REQUISITOS DE SOFTWARE... - 4-2.1 VERIFICAR SISTEMA OPERATIVO... - 4-2.2 VERIFICAR VERSION DEL WINDOWS...

Más detalles

Bienvenido a su Software de Base de Datos Microsoft SQL 2005 Express Edition... 2. Aprendiendo sobre SQL Server... 3. Requerimientos Mínimos...

Bienvenido a su Software de Base de Datos Microsoft SQL 2005 Express Edition... 2. Aprendiendo sobre SQL Server... 3. Requerimientos Mínimos... Contenido Bienvenido a su Software de Base de Datos Microsoft SQL 2005 Express Edition... 2 Aprendiendo sobre SQL Server... 3 Requerimientos Mínimos... 3 Requisitos del Sistema... 4 Proceso de Instalación

Más detalles

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL Página 1 de 28 es un estandar para accesar y manejar bases de datos Este tutorial te va a mostrar como manejar bases de datos en My, Server, MS Access, Oracle, Sybase, DB2 y otras bases de datos Que es?

Más detalles

Acceso a bases de datos MySQL con PHP

Acceso a bases de datos MySQL con PHP GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado fsilvasys@hotmail.com DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre

Más detalles

EL ENTORNO DE TRABAJO SQL ORACLE

EL ENTORNO DE TRABAJO SQL ORACLE PREVIO 2 EL ENTORNO DE TRABAJO SQL ORACLE Y LENGUAJE DE DEFINICIÓN DE DATOS DDL) INTRODUCCIÓN A ORACLE Oracle10g es de las últimas versiones de esté manejador de base de datos, incorpora la tecnología

Más detalles

Objetos de la Base de Datos

Objetos de la Base de Datos Objetos de la Base de Datos Todos los datos de una base de datos de Microsoft SQL Server 2005/8 están contenidos en objetos llamados tablas. Cada tabla representa algún tipo de objeto con significado para

Más detalles

Administración y programación de Bases de Datos con SQL Server 2005

Administración y programación de Bases de Datos con SQL Server 2005 Administración y programación de Bases de Datos con SQL Server 2005 Este curso trata las diferentes tareas necesarias para llevar a cabo el despliegue, diseño, implementación y mantenimiento de bases de

Más detalles

Cómo abrir la base de datos de Aspel-SAE 5.0?

Cómo abrir la base de datos de Aspel-SAE 5.0? Cómo abrir la base de datos de Aspel-SAE 5.0? 1 Herramientas de administración nativas de Firebird. Firebird cuenta con una herramienta llamada ISQL la cual es una consola de línea de comandos desde la

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE IGNATURA NOMBRE DE LA IGNATURA LSC 2009-2 12001 Administración de Bases de Datos PRÁCTICA No. 5 LABORATORIO DE NOMBRE DE LA PRÁCTICA

Más detalles

SQL Data Export for PS/PSS

SQL Data Export for PS/PSS Version 2.3.5 MANUAL DE INSTRUCCIONES (M98232701-01-13B) CIRCUTOR, SA ÍNDICE 1.- INSTALACIÓN DEL SOFTWARE SQL DATA EXPORT... 3 1.1.- HABILITAR CONEXIONES REMOTAS DEL SERVIDOR SQL SERVER... 14 1.2.- DESINSTALAR

Más detalles

Tema: Disparadores Parte I.

Tema: Disparadores Parte I. Base de datos I. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Disparadores Parte I. Objetivo Utilizar la sintaxis de un disparador en SQL Server Implementar transacciones

Más detalles

Requisitos del Sistema Instalación SQL Server

Requisitos del Sistema Instalación SQL Server Requisitos del Sistema Instalación SQL Server Sistemas operativos compatibles Sistemas de 32 bits Sistemas de 64 bits Windows 7 Equipo con Intel o Windows Vista Windows XP Windows Server 2008 compatible

Más detalles

SQL básico. SQL básico http://idesweb.es/ 1. Contenido

SQL básico. SQL básico http://idesweb.es/ 1. Contenido SQL básico http://idesweb.es/ 1 SQL básico El presente documento no tiene más aspiraciones que servir de recordatorio mínimo para las órdenes más básicas y en su mínima expresión. No es un manual de SQL

Más detalles

Cómo abrir las bases de datos en Aspel-COI 6.0?

Cómo abrir las bases de datos en Aspel-COI 6.0? Cómo abrir las bases de datos en Aspel-COI 6.0? 1. Herramientas de administración nativas de Firebird. Firebird cuenta con una herramienta llamada ISQL la cual es una consola de línea de comandos desde

Más detalles

LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL

LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL LABORATORIO 3. CONFIGURACIÓN DE SISTEMAS MANEJADORES DE BASE DE DATOS - POSTGRE SQL GUÍA DE LABORATORIO Nº 3 Actividad de Proyecto No. 2: CONFIGURAR SISTEMAS MANEJADORES DE BASE DE DATOS. CONFIGURACIÓN

Más detalles

Práctica 1. Desarrollo de bases de datos con Microsoft Access 1.1. Descripción de Microsoft Access 2000

Práctica 1. Desarrollo de bases de datos con Microsoft Access 1.1. Descripción de Microsoft Access 2000 Práctica 1. Desarrollo de bases de datos con Microsoft Access 1.1. Descripción de Microsoft Access 2000 Microsoft Access 2000 para Windows es un SGBDR (Sistema de Gestión de Bases de Datos Relacional)

Más detalles

ÍNDICE. Introducción... Capítulo 1. Novedades de Access 2013... 1

ÍNDICE. Introducción... Capítulo 1. Novedades de Access 2013... 1 Introducción... XIII Capítulo 1. Novedades de Access 2013... 1 Nuevas posibilidades de cifrado, compactación y reparación de archivos... 1 Trabajo en la nube... 2 Compartir la información... 3 Guardar

Más detalles

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008 TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008 ESTRUCTURA DEL SEMINARIO Modulo 1: Crear y administrar una base de datos SQL Server Métodos para crear una base de datos SQLServer.

Más detalles

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA SECCIÓN: 15N1- IS REALIZADO POR: BR. BRETE JINETH. BR. SULBARÁN ARMANDO BR. TORREZ

Más detalles

Guía de implementación

Guía de implementación Guía de implementación Instalación de software Contenido Descripción general de la implementación de software Servidor CommNet Windows Clúster de Windows - Servidor virtual Agente CommNet Windows Clúster

Más detalles

Universidad Francisco Gavidia.

Universidad Francisco Gavidia. H1 G7 es: Universidad Francisco Gavidia. MANUAL DE INSTALACION. SISTEMA DE CONTROL DE PAGO DE PERSONAL PARA FUNDACIONES. (OptimaList) Autores: Rut Elizabeth Ayala. Marcela Martínez. Stilwell Santos. Fecha:

Más detalles

SERVICIO NACIONAL DE APRENDIZAJE SENA

SERVICIO NACIONAL DE APRENDIZAJE SENA SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE SISTEMA INTEGRADO DE GESTIÓN Proceso Gestión de la Formación Profesional Integral Procedimiento Ejecución de la Formación Profesional Integral

Más detalles

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL. GUIA DE LABORATORIO # 5 Nombre de la Practica: Manipulación de datos Lugar de ejecución: Centro de Computo MATERIA: Base de Datos II CICLO: 02-2012 I. OBJETIVOS ESPECIFICOS Qué el estudiante: Manipule

Más detalles

El lenguaje SQL es un lenguaje estándar para el acceso y

El lenguaje SQL es un lenguaje estándar para el acceso y 1. INTRODUCCIÓN El lenguaje SQL es un lenguaje estándar para el acceso y manipulación de bases de datos relacionales como SQL Server. Esto quiere decir que aprender SQL es algo indispensable para cualquier

Más detalles

Paso 1: Iniciar en todos los programas Microsoft SQL Server SQL Server Management Studio.

Paso 1: Iniciar en todos los programas Microsoft SQL Server SQL Server Management Studio. Tema 1: SQL Server Requerimientos de este laboratorio: SQL SERVER 2005 o 2008 Visual Studio 2008 Paso 1: Iniciar en todos los programas Microsoft SQL Server SQL Server Management Studio. Paso 2: Teclear

Más detalles

Bases de Datos Relacionales

Bases de Datos Relacionales 2da. Parte Bases de Datos Relacionales Objetivos de la Clase SQL. Tipos de sentencias SQL Describir los tipos de dato que se pueden utilizar al especificar la definición de columnas. Sentencias SQL Select.

Más detalles

ÍNDICE. Capítulo 1. Conceptos de base de datos de SQL Azure... 1

ÍNDICE. Capítulo 1. Conceptos de base de datos de SQL Azure... 1 Introducción... XIII Capítulo 1. Conceptos de base de datos de SQL Azure... 1 EL NUEVO PORTAL DE ADMINISTRACIÓN... 1 INFORMACIÓN GENERAL DE SQL AZURE... 2 SIMILITUDES Y DIFERENCIAS CON SQL SERVER... 2

Más detalles

REQUISITOS DEL SISTEMA. Software Servidor. Cliente. Hardware Servidor. Cliente

REQUISITOS DEL SISTEMA. Software Servidor. Cliente. Hardware Servidor. Cliente MANUAL TECNICO INSTALACIÓN Y CONFIGURACIÓN DEL SISTEMA AARON A QUIEN VA DIRIGIDO El siguiente manual está dirigido al administrador encargado de la instalación y configuración del Sistema AARON. PRÓLOGO

Más detalles

U2 Instalar una aplicación SharePoint en un servidor

U2 Instalar una aplicación SharePoint en un servidor U2 Instalar una aplicación SharePoint en un servidor En esta unidad, vamos a instalar Microsoft SharePoint Server 2010 eligiendo la opción Independiente, es decir, todo en un único servidor sin la posibilidad

Más detalles

Instalación Manual de Cubos 2008

Instalación Manual de Cubos 2008 Intelisis [Escribir el subtítulo del documento] Desarrollado por: Elizabeth Márquez 07/09/2010 Analista de Business Intelligence 2 / 63 Índice Carpeta de Instalación de Cubos... 3 01 Base de Datos para

Más detalles

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite

Más detalles

Formatos para prácticas de laboratorio

Formatos para prácticas de laboratorio Fecha de efectividad: 2014-2 CARRERA L.S.C. PLAN DE CLAVE ESTUDIO ASIGNATURA NOMBRE DE LA ASIGNATURA 2009-2 12001 Administración de Base de Datos. PRÁCTICA LABORATORIO Licenciado en Sistemas DURACIÓN No.

Más detalles

1 Introducción. 2 Requisitos del sistema. Control de presencia. V.1.0 Manual de instrucciones. Control de presencia. V.1.0 Manual de instrucciones

1 Introducción. 2 Requisitos del sistema. Control de presencia. V.1.0 Manual de instrucciones. Control de presencia. V.1.0 Manual de instrucciones 1 2 1 Introducción AccessControl es un eficaz sistema para gestionar la presencia de sus empleados mediante huella dactilar. Con él podrá monitorizar fácilmente las entradas y salidas de sus empleados

Más detalles

Crear BD en. Isis Bonet Cruz, PhD

Crear BD en. Isis Bonet Cruz, PhD Crear BD en Isis Bonet Cruz, PhD SQL Server Microsoft SQL Server es un sistema de administración y análisis de bases de datos relacionales de Microsoft para soluciones de comercio electrónico, línea de

Más detalles

Toda base de datos relacional se basa en dos objetos

Toda base de datos relacional se basa en dos objetos 1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

Tema 2 Modelos de Base de Datos. Profesor Luis Gmo. Zúñiga Mendoza UMCA

Tema 2 Modelos de Base de Datos. Profesor Luis Gmo. Zúñiga Mendoza UMCA Tema 2 Modelos de Base de Datos Profesor Luis Gmo. Zúñiga Mendoza UMCA Introducción Como hemos visto la base de datos consiste en una colección de datos estructura, que finalmente permite ser accedida

Más detalles

Tema: CREACIÓN DE TABLAS DE RDBMS (RELATIONAL DATA BASE MANAGEMENT SYSTEM).

Tema: CREACIÓN DE TABLAS DE RDBMS (RELATIONAL DATA BASE MANAGEMENT SYSTEM). Base de datos I. Guía 3 1 Tema: CREACIÓN DE TABLAS DE RDBMS (RELATIONAL DATA BASE MANAGEMENT SYSTEM). Objetivo Específico Creer una base de datos Diseñar y crear tablas para almacenar información Manejar

Más detalles

ADMINISTRACIÓN DE BASE DE DATOS

ADMINISTRACIÓN DE BASE DE DATOS SQL SERVER T-SQL QUERY s es ADMINISTRADOR GRÁFICO SGBD Elementos objetos Tablas Procedimientos Triggers Funciones Usuarios Permiso Roles Contraseñas Programas DTS (Data Transfer System) Exportación e Importación

Más detalles

GALA MODELO CLIENTE SERVIDOR SQL SERVER MANAGEMENT STUDIO SERVIDOR SQL BASES DE DATOS. Introducción. Describir SQL Server (L1)

GALA MODELO CLIENTE SERVIDOR SQL SERVER MANAGEMENT STUDIO SERVIDOR SQL BASES DE DATOS. Introducción. Describir SQL Server (L1) Describir SQL Server (L1) MODELO CLIENTE SERVIDOR SQL SERVER MANAGEMENT STUDIO SERVIDOR SQL BASES DE DATOS Sistema de Operación SQL Server (L1) WINDOWS 2000/2003 ADVANCED SERVER WINDOWS 2000/2003 SERVER

Más detalles

2- Creación de tablas y manejos de datos.

2- Creación de tablas y manejos de datos. 2- Creación de tablas y manejos de datos. Objetivos: Crear tablas completas. Identificar qué tipo de datos a usar en cada campo Recursos: SQL SERVER 2012 Guías de práctica. http://msdn.microsoft.com/es-es/library/ms187752.aspx

Más detalles

Base de datos I Facultad de Ingeniería. Escuela de computación.

Base de datos I Facultad de Ingeniería. Escuela de computación. Base de datos I Facultad de Ingeniería. Escuela de computación. 1 2 Base de datos I, Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Bases de datos I en el desarrollo de

Más detalles

Manual Práctico de SQL. ORIENTADO A SQL 7.0 Preparado por: Alvaro E. García alvaroegarcia@ubbi.com

Manual Práctico de SQL. ORIENTADO A SQL 7.0 Preparado por: Alvaro E. García alvaroegarcia@ubbi.com ORIENTADO A SQL 7.0 Preparado por: Alvaro E. García alvaroegarcia@ubbi.com ÍNDICE INTRODUCCIÓN 3 PASOS PARA IMPLEMENTAR UNA BD 5 CREAR UNA BD 6 SENTENCIA CREATE 8 LIGADURAS 9 ELIMINACIÓN DE TABLAS 14 SENTENCIA

Más detalles

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1 UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEM LABORATORIO DE BES DE DATOS 1 Prof. Marco Aedo Práctica de Laboratorio Nº 6 I. OBJETIVOS

Más detalles

Instalación de MySQL 5.1 en Windows

Instalación de MySQL 5.1 en Windows Instalación de MySQL 5.1 en Windows Aspectos importantes antes de la instalación. 1. Determinar si la plataforma donde se desea hacer la instalación está soportada. 2. Elegir la distribución que se instalará.

Más detalles

* Size es el tamaño inicial y Filegrowth es el incremento * El size del Primary debe ser 3 veces mayor que el Log necesariamente

* Size es el tamaño inicial y Filegrowth es el incremento * El size del Primary debe ser 3 veces mayor que el Log necesariamente SQL SERVER 2012 PARA SENTENCIA SQL EJEMPLO CREAR UNA BASE DE DATOS CREATE DATABASE [NOMBRE DE LA BD] Create Database Empresa ACTIVAR LA BASE DE DATOS USE [NOMBRE DE LA BD] Use Empresa ELIMINAR UNA BASE

Más detalles

MANUALITO MS-SQL SERVER

MANUALITO MS-SQL SERVER MANUALITO MS-SQL SERVER Contenido 1. Crear Store Procedures en MS SQL Server... 1 2. Crear Triggers en MS SQL Server... 5 3. Crear Vistas en MS SQL Server... 9 1. Crear Store Procedures en MS SQL Server

Más detalles

GUIA DE SQL DDL (DATA DEFINITION LANGUAGE) DML (DATA MANIPULATION LANGUAGE) Agosto de 2008 AUTORES:

GUIA DE SQL DDL (DATA DEFINITION LANGUAGE) DML (DATA MANIPULATION LANGUAGE) Agosto de 2008 AUTORES: GUIA DE SQL DDL (DATA DEFINITION LANGUAGE) DML (DATA MANIPULATION LANGUAGE) Agosto de 2008 AUTORES: Ernesto Chinkes Diego Alarcon Regolini Lucas Coronel Diego Hernan Contreras Ocampo Ernesto Goldman GUIA

Más detalles

Uso de las herramientas de consulta de Transact-SQL

Uso de las herramientas de consulta de Transact-SQL Uso de las herramientas de consulta de Transact-SQL Contenido Introducción 1 Analizador de consultas SQL 2 Uso de la herramienta Examinador de objetos en el Analizador de consultas SQL 3 Uso de plantillas

Más detalles

BASES DE DATOS DISTRIBUIDAS CON SQL SERVER 2012

BASES DE DATOS DISTRIBUIDAS CON SQL SERVER 2012 BASES DE DATOS DISTRIBUIDAS CON SQL SERVER 2012 (2014) Antonio Ortiz Ramírez www.aortiz.net Dirigido a: Programadores, Analistas de Sistemas, Administradores de Sistemas, Estudiantes y Profesores que deseen

Más detalles

Implementación n de Base de Datos con Microsoft SQL Server 2000. Ing. Martín Manuel Leiva Castillo Ing. Jorge Martín Rodríguez Castro

Implementación n de Base de Datos con Microsoft SQL Server 2000. Ing. Martín Manuel Leiva Castillo Ing. Jorge Martín Rodríguez Castro Implementación n de Base de Datos con Microsoft SQL Server 2000 Ing. Martín Manuel Leiva Castillo Ing. Jorge Martín Rodríguez Castro Visión general de SQL Server Contenido 1. Qué es SQL Server 2000? 2.

Más detalles

Manual de Usuario. Manual de Instalación Compucaja.Net y SQL Server 2012

Manual de Usuario. Manual de Instalación Compucaja.Net y SQL Server 2012 Manual de Usuario Manual de Instalación Compucaja.Net y SQL Server 2012 Hoja de Contenido Requerimientos mínimos 4 Instalación de COMPUCAJA.net 5 Instalación Microsoft SQL Server 2012 Express 11 Herramientas

Más detalles

4- Uso de sentencias para el envió y extracción de datos

4- Uso de sentencias para el envió y extracción de datos Objetivos: 4- Uso de sentencias para el envió y extracción de datos Identificar la sintaxis de las consultas de datos Elaborar sentencias de manejo de datos. Recursos: SQL SERVER 2012 Guías de práctica.

Más detalles

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia: TRABAJANDO CON SQL*PLUS El objetivo de este tema es simplemente, hacer una revisión de los conceptos avanzados de SQL, para ello, empezaremos por ver como se accede a SQL*PLUS y como crear usuarios, para

Más detalles

Trabajos de Ampliación. Bases de datos NoSQL.

Trabajos de Ampliación. Bases de datos NoSQL. BASES DE DATOS NoSql Son bases de datos pensadas para aplicaciones que hagan un uso intensivo de la misma. Estas bases de datos permiten una mayor flexibilidad y facilidad a la hora de introducir los datos

Más detalles

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 3: Controles de formulario

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 3: Controles de formulario Ministerio de Educación Base de datos en la Enseñanza. Open Office Módulo 3: Controles de formulario Instituto de Tecnologías Educativas 2011 Controles de formulario El control más habitual de un formulario

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION CICLO 01-2014 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUIA DE LABORATORIO Nº 5 Nombre de la practica: Creación de Base de datos relacional con Transact SQL Lugar

Más detalles

Symantec Backup Exec 2010. Guía de instalación rápida

Symantec Backup Exec 2010. Guía de instalación rápida Symantec Backup Exec 2010 Guía de instalación rápida 20047221 Instalación de Backup Exec Este documento incluye los temas siguientes: Requisitos del sistema Antes de la instalación Acerca de la cuenta

Más detalles

Construcción de la base de datos en Oracle

Construcción de la base de datos en Oracle Estructura de contenidos. INTRODUCCIÓN...2 1. CREACIÓN DE UN USUARIO...3 2. CONSTRUCCIÓN DE LA ESTRUCTURA DE ALMACENAMIENTO...6 2.1 Crear Tabla Pacientes...7 2.2 Crear Tabla Médicos...11 2.3 Crear Tabla

Más detalles

Sistema Gestor de Bases de Datos Relacionales (SGBDR), que maneja distintos tipos de datos:

Sistema Gestor de Bases de Datos Relacionales (SGBDR), que maneja distintos tipos de datos: Bases de Datos Introducción a ORACLE Sistema Gestor de Bases de Datos Relacionales (SGBDR), que maneja distintos tipos de datos: o Tradicionales como INTEGER, VARCHAR2, DATE,..., etc. o Nuevos y complejos:

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO INTRODUCCIÓN... 3 1. COMANDOS... 4 1.1 Comandos DLL... 4

Más detalles

Instalación Windows XP Profesional

Instalación Windows XP Profesional Antes de empezar Instalación Windows XP Microsoft Windows XP Antes de instalar Windows XP, debe completar las siguientes tareas, que se describen a continuación, para asegurar que la instalación será correcta:

Más detalles

Tema 3: VMWARE VSPHERE. UPDATE MANAGER ADMINISTRATION

Tema 3: VMWARE VSPHERE. UPDATE MANAGER ADMINISTRATION Orense, 20 28020 Madrid D`Aribau, 200 08036 Barcelona www.formadoresfreelance.es Tema 3: VMWARE VSPHERE. UPDATE MANAGER ADMINISTRATION Parte 1 - Puesta en marcha del VMware Update Manager Parte 2 - Funcionamiento

Más detalles

Dr.Web Enterprise Security Suite 10 Guía Rápida de Implantación (Windows)

Dr.Web Enterprise Security Suite 10 Guía Rápida de Implantación (Windows) Dr.Web Enterprise Security Suite 10 Guía Rápida de Implantación (Windows) Versión de Dr.Web ESS: 10.0 Última actualización: 24/09/2014 2014 IREO Mayorista de ITSM y Seguridad Guía de Implantación Dr.Web

Más detalles

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

BASE DE DATOS QUÉ ES UNA BASE DE DATOS? BASE DE DATOS BASE DE DATOS QUÉ ES UNA BASE DE DATOS? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Actualmente la mayoría de

Más detalles

Curso de MySQL y Java

Curso de MySQL y Java Curso de MySQL y Java Introducción: instalación, arranque y primeros pasos 1. Material En este curso vamos a trabajar con el servidor mysql versión 4.0.18. También utilizaremos una herramienta llamada

Más detalles

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin. PHPMYADMIN Y MYSQL Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin. PhpMyAdmin es una herramienta para la administración del servidor de base de datos MySQL que dispone

Más detalles

Guía paso a paso para empezar a trabajar con Microsoft Windows Server Update Services

Guía paso a paso para empezar a trabajar con Microsoft Windows Server Update Services Guía paso a paso para empezar a trabajar con Microsoft Windows Server Update Services Microsoft Corporation Publicación: 14 de marzo de 2005 Autor: Tim Elhajj Editor: Sean Bentley Resumen Este documento

Más detalles

Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas)

Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Lo que aprenderá Esta clase es aplicable para los usuarios de Oracle8i, Oracle9i y Oracle Database 10g. En este

Más detalles

Microsoft SQL Server 2005

Microsoft SQL Server 2005 Microsoft SQL Server 2005 Módulo 1: Diseño y programación Estudia el servidor de bases de datos SQL Server 2005 desde el punto de vista de un diseñador y programador de bases de datos, prestando atención

Más detalles

Diseñe mejores productos. SolidWorks 2009. Guía de instalación de SolidWorks Enterprise PDM

Diseñe mejores productos. SolidWorks 2009. Guía de instalación de SolidWorks Enterprise PDM Diseñe mejores productos SolidWorks 2009 Guía de instalación de SolidWorks Enterprise PDM 1995-2008, Dassault Systèmes Dassault Systèmes SolidWorks Corporation, una compañía de Dassault Systèmes S.A. 300

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

EMC Retrospect Express para Windows Guía breve

EMC Retrospect Express para Windows Guía breve EMC Retrospect Express para Windows Guía breve BIENVENIDO Bienvenido a EMC Retrospect Express, la rápida y sencilla herramienta para realizar copias de seguridad en CD/DVD, disco duro y unidades de disco

Más detalles

Requerimientos de equipo Requerimientos CONTPAQ i BANCOS y SQL Server

Requerimientos de equipo Requerimientos CONTPAQ i BANCOS y SQL Server Requerimientos de equipo Requerimientos CONTPAQ i BANCOS y SQL Server No. Usuarios Versión SQL Requerimientos mínimos 1 usuario Monousuario 2005 Express Edition / 2005 Standard Edition o Windows 2000 Professional

Más detalles

Para entornos con más de un equipo conectados en red es necesario que el programa de firewall conceda paso a los servicios de Microsoft SQL Server.

Para entornos con más de un equipo conectados en red es necesario que el programa de firewall conceda paso a los servicios de Microsoft SQL Server. ET-SEGURIDAD SQL INSTRUCCIONES DE USO IMPORTANTE Este software puede ser bloqueado por software antivirus. Asegúrese de añadir la excepción correspondiente si fuese necesario. Se recomienda deshabilitar

Más detalles

Versiones Home / Profesional

Versiones Home / Profesional . ConSix Facturación 9.0 Versiones Home / Profesional Manual de Usuario Copyright 2009 http://www.consix.es 1. Introducción a ConSix Facturación 1.1. Qué es ConSix Facturación? ConSix Facturación es una

Más detalles