Servidor SQL Server-1

download Servidor SQL Server-1

of 101

Transcript of Servidor SQL Server-1

  • 8/10/2019 Servidor SQL Server-1

    1/101

    Pgina 1de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 Acceso al Servidor SQL SERVER 2

    2 Entorno de Microsoft SQL Server Management Studio 3

    3 Creacin De Base De Datos 4

    4 Creacin de Tablas en una Base de Datos 5

    5 Ingresando Registros a La Tabla CLIENTES 6

    6 Gestin de Archivos de una base de datos 7

    7 Separar Una Base De Datos 8

    8 Adjuntar Una Base De Datos 8

    9 Eliminar una base de datos SQL SERVER 9

    Propuesto Practico 01 10

    CAPITULO 1

    Objetivos.- aprender a ingresar a SQL Server

    2008. Adems de manipular los archivos de

    una base de datos y creacin de tablas

  • 8/10/2019 Servidor SQL Server-1

    2/101

  • 8/10/2019 Servidor SQL Server-1

    3/101

    Pgina 3de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    2 Entorno de Microso ft SQL Server Management Stud io

    Resolver:

    Qu tipo de autenticacin est configurado en tu servidor

    Que cantidad de memoria por consulta tiene asignado tu servidor

    Que tiempo de espera de consulta tiene tu servidor

    Mencionar las opciones de las propiedades del servidor

    Cules son las bases de datos del sistema

    Mencionar los Objetos del Agente SQL SERVER

  • 8/10/2019 Servidor SQL Server-1

    4/101

    Pgina 4de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    3 Creacin De Base De Datos

    a) Expandir la raz del explorador de objetos

    b) Seleccionar el objeto BASE DE DATOS

    c) Clic en NUEVA BASE DE DATOS del men contextual de dicho objeto

    d) Ingresar el Nombre de la base de datos LONDRES

    e) Presionar el botn ACEPTAR

    Una vez creado la base de datos LONDRES debes verificar quese encuentre anclado en el explorador de soluciones

    Dentro de la base de datos veras como se clasificara los objetoscreados como son tablas, procedimientos almacenados u otros

    objetos a crearse.

    NOTA: Las bases de datos de SQL server. Administra susarchivos fsicos de diferente manera como lo hara tal vez unarchivo MDB de Access. UNA base de datos creada estconstituida por ms de 1 o ms archivos fsicos

    Adems hacer uso de una base de datos existente en otracomputadora necesita de un servidor SQL server y adjuntar subase de datos existente.

  • 8/10/2019 Servidor SQL Server-1

    5/101

    Pgina 5de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    4 Creacin de Tablas en una Base de Datos

    Para este ejemplo haremos uso de la base de datos LONDRES creada anteriormente. Los pasos son los siguientes:

    a) Expandir la base de datos LONDRESb) Seleccionar el objeto TABLAS

    c) Clic en NUEVA TABLA del men contextual de dicho objeto

    d) Ingresar Nombre de Columnas y Tipos de Datos de la siguiente manera

    e) Presionar el botn guardar de la barra de herramientas. Y asignar el nombre CLIENTES a la tabla creada

    Verificar la creacin de la tabla CLIENTES

    TABLA.- las tablas son objetos que nos permiten organizar lainformacin de una empresa. Como pueden ser sus clientes,proveedores, productos, etc.

    Cada tabla contiene atributos o CAMPOS y cadaCampo un tipo de dato que le asigna el desarrollador.

    Dentro de cada tabla podemos llenar datos (REGISTROS) Desde la

    cantidad que uno necesite.

    Recuerda verificar la existencia de los objetos creados

    actualizando el servidor SQL server con la tecla f5

  • 8/10/2019 Servidor SQL Server-1

    6/101

    Pgina 6de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    5 Ingresando Registros a La Tabla CLIENTES

    a) Seleccionar la tabla CLIENTESb) Clic en EDITAR LAS PRIMERAS 200 FILAS del men contextual de dicho objeto

    c) Ingresar los siguientes Registros

    d) Para GUARDAR los cambios realizados debes presionar el botn EJECUTAR SQL

    Tipos De Datos SQL Server 2008

  • 8/10/2019 Servidor SQL Server-1

    7/101

    Pgina 7de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    6 Gestin de Archivos de una base de datos SQL SERVER

    Ahora aprenderemos manejar los archivos de una base de datos. Manejar una base de datos en diferentesservidores. Ahora veamos paso a paso.

    Primero identifiquemos la RUTA donde se almacenan los archivos de una base de datos. La ruta es:

    Cada vez que uno crea una base de datos a travs de un asistente oherramientas visuales de SQL server 2008.

    Una base de datos creada genera sus archivos en algn lugar fsico dentro deun disco.

    En una carpeta que fue configurado en el momento de instalacin. Los archivosque genera son:

    1 archivo MDF (solo uno)

    1 o ms archivos NDF

    1 o ms archivos LDF

    EN CONCLUSION cada vez que Ud. crea una base de datos.Automticamentecada Generar 2 archivos.

    DEMOSTRACION:

    A. Crear una base de datos de nombre JPANDAL

    B. Verificar la rutade donde se ha creado los archivos de la base de datos creada

    C. Buscar en la carpeta DATA los archivos de la base de datos creada

    Estos 2 archivosgenerados sernmanipulados por losusuarios. Es decir que siUd. Desea transportar su

    base de datos de unacomputadora a otra.Deber realizar la accin

    SEPARAR COPIAR -ADJUNTAR

    Archivos de la base de

    datos LONDRES

  • 8/10/2019 Servidor SQL Server-1

    8/101

  • 8/10/2019 Servidor SQL Server-1

    9/101

    Pgina 9de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    c) En la ventana Adjuntar base de datos clic en el botn AGREGAR

    d) Seleccionar el archivo MDF de la base de datos

    e) Clic en ACEPTAR

    f) Clic en ACEPTAR

    9 Eliminar una base de datos SQL SERVER

    a) Seleccionar la base de datos existente

    b) Clic en ELIMINAR del men contextual de la base de

    datos seleccionada

    c) De la ventana elimina r objetopresionar ACEPTAR

    Una base de datos eliminada. Tambin elimina los archivos que

    estas generaron.

  • 8/10/2019 Servidor SQL Server-1

    10/101

    Pgina 10de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Propuesto Practico 01

    1 Crear las siguientes bases de datos:

    TRILCE, PAMER, UPC, UPCI, JHONNYPANDAL

    2 Separar las bases de datos TRILCE Y PAMER3 Copiar y Guardar los archivos de cada base de datos separada en una carpeta con su mismo nombre en DISCO C

    4 Adjuntar las bases de datos TRILCE Y PAMER desde su nueva ubicacin fsica

    5 Crear las siguientes tablas en la base de datos TRILCE e Ingresar 10 registros en cada tabla respetando laCalidad de informacin que se almacena.

    6 Generar un diagrama de las tablas creadas

    7 Qu objetos contiene la carpeta SEGURIDAD del explorador de objetos de SQL SERVER

    8 ingresar el nombre de los INICIOS DE SESION que existen en el servidor SQL SERVER

    9 que nombre recibe el servidor que esta Ud. trabajando

    10 que objetos muestra el AGENTE SQL SERVER

  • 8/10/2019 Servidor SQL Server-1

    11/101

    Pgina 11de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 Transact SQL 122 Fundamentos de Transact SQL 12

    3 Tipos de datos en Transact SQL 13

    4 Variables en Transact SQL 16

    5 Operadores en Transact SQL 19

    6 Estructuras de control en Transact SQL 20

    7 Desarrollo de Ejemplos 25

    Propuesto Practico 02 27

    CAPITULO 2

    Objetivos.- aprender a trabajar con Transact-

    SQL adems de crear programas haciendo

    uso de elementos de la programacin en SQL

    server 2008

  • 8/10/2019 Servidor SQL Server-1

    12/101

    Pgina 12de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 Transact SQL

    Transact SQL es el lenguaje de programacin que proporciona SQL Server para ampliar SQL con los elementoscaractersticos de los lenguajes de programacin: variables, sentencias de control de flujo, bucles, ...

    Herramienta de Programacin TRANSACT-SQLPara acceder a esta herramienta solo debe hacer clic en el botn NUEVA CONSULTA

    1.1 Guardar un Script SQL

    a) Presionar el botn GUARDARb) Aplicarle un nombre y ubicacin

    ES IMPORTANTE SABER QUE LOS SCRIPTS CREADOS EN CLASE DEBEN SER

    GUARDADOS PARA UN POSTERIOR USO

    2 Fundamentos de Transact SQL

    Primeros pasos con Transact SQL

    Para programar en Transact SQLes necesario conocer sus fundamentos.Como introduccin vamos a ver algunos elementos y conceptos bsicos del lenguaje.Transact SQLno es CASE-SENSITIVE, es decir, no diferencia maysculas de minsculas como otros lenguajes deprogramacin como C o Java.

    Un comentario es una aclaracin que el programador incluye en el cdigo. Son soportados 2 estilos decomentarios, el de lnea simple y de multilnea, para lo cual son empleados ciertos caracters especiales como son:-- Para un comentario de linea simple

    /* ... */ Para un comentario de varias lneas

    Un literal es un valor fijo de tipo numrico, caracter, cadena o lgico no representado por un identificador (es unvalor explcito).

    Una variable es un valor identificado por un nombre (identificador) sobre el que podemos realizar modificaciones.En Transact SQL los identificadores de variables deben comenzar por el caracter @, es decir, el nombre de unavariable debe comenzar por @.Para declarar variables en Transact SQLdebemos utilizar la palabra clave declare,seguido del identificador y tipo de datos de la variable.

  • 8/10/2019 Servidor SQL Server-1

    13/101

    Pgina 13de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Veamos algunos ejemplos:

    -- Esto es un comentario de linea simple

    /*Este es un comentario con varias lneas.Conjunto de Lineas.*/declare@nombre varchar(50)-- declare declara una variable

    -- @nombre es el identificador de la-- variable de tipo varchar

    set @nombre = Jhonny pandal' -- El signo = es un operador-- Jhonny pandal es un literal

    print@Nombre -- Imprime por pantalla el valor de @nombre.-- No diferencia maysculas ni minsculas

    Scripts y lotes.

    Un script de Transact SQLes un conjunto de sentencias de Transact SQLen formato de texto plano que seejecutan en un servidor de SQL Server.

    Un script est compuesto por uno o varios lotes. Un lote delimita el alcance de las variables y sentencias del script.Dentro de un mismo script se diferencian los diferentes lotes a travs de la instruccin GO.

    -- Este es el primer lote del scriptSELECT * FROM COMENTARIOS

    GO-- GO es el separador de lotes-- Este es el segundo lote del scriptSELECT getdate()-- getdate() es una funcin integrada que devuelve

    -- la fecha

    En ocasiones es necesario separar las sentencias en varios lotes, porque Transact SQLno permite la ejecucin deciertos comandos en el mismo lote, si bien normalmente tambin se utilizan los lotes para realizar separacioneslgicas dentro del script.

    3 Tipos de datos en Transact SQL

    Cuando definimos una tabla, variable o constante debemos asignar un tipo de dato que indica los posibles valores. Eltipo de datos define el formato de almacenamiento, espacio que de disco-memoria que va a ocupar un campo ovariable, restricciones y rango de valores vlidos.

    Transact SQL proporciona una variedad predefinida de tipos de datos. Casi todos los tipos de datos manejados porTransact SQL son similares a los soportados por SQL.

  • 8/10/2019 Servidor SQL Server-1

    14/101

    Pgina 14de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    A.- Tipos de datos numricos.

    SQL Serverdispone de varios tipos de datos numricos. Cuanto mayor sea el nmero que puedan almacenar mayorser en consecuencia el espacio utilizado para almacenarlo. Como regla general se recomienda usar el tipo de datomnimo posible. Todos los dato numricos admiten el valor NULL.

    Bit. Una columna o variable de tipo bitpuede almacenar el rango de valores de 1 a 0.

    Tinyint. Una columna o variable de tipo tinyintpuede almacenar el rango de valores de 0 a 255.

    SmallInt. Una columna o variable de tipo smallint puede almacenar el rango de valores -32768 a 32767.

    Int. Una columna o variable de tipo int puede almacenar el rango de valores -231a 231-1 .

    BigInt. Una columna o variable de tipo bigintpuede almacenar el rango de valores -263a 263-1 .

    Decimal(p,s). Una columna de tipo decimal puede almacenar datos nmericos decimales sin redondear. Donde p esla precision (nmero total del dgitos) y s la escala (nmero de valores decimales)

    Float. Una columna de datos float puede almacenar el rango de valores -1,79x-10308a 1,79x-10308,, si la definimoscon el valor mxmo de precisin. La precisin puede variar entre 1 y 53.

    Real. Sinnimo de float(24). Puede almacenar el rango de valores -3,4x-1038a 3,4x-1038,

    Money.Almacena valores nmericos monetarios de -263 a 263-1, con una precisin de hasta diexz milesimas de launidad monetaria.

    SmallMoney. Almacena valores nmericos monetarios de -214.748,3647 a 214.748,3647, con una precisin de hastadiez milesimas de la unidad monetaria.

    Todos los tipos de datos enteros pueden marcarse con la propiedad identitypara hacerlos autonumricos.

    DECLARE @bit bit,@tinyint tinyint,@smallint smallint,@int int,@bigint bigint,@decimal decimal(10,3), -- 10 digitos, 7 enteros y

    -- 3 decimales@real real,@double float(53),

    @money moneyset @bit = 1print @bitset @tinyint = 255print @tinyintset @smallint = 32767print @smallintset @int = 642325print @intset @decimal = 56565.234 -- Punto como separador decimalprint @decimalset @money = 12.34print @money

  • 8/10/2019 Servidor SQL Server-1

    15/101

    Pgina 15de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    B.- Tipos de datos de carcter.

    Char(n). Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipochar, siempre se utilizan los n caracteres indicados, incluso si la entrada de datos es inferior. Por ejemplo, si en unchar(5), guardamos el valor 'A', se almacena 'A ', ocupando los cinco bytes.

    Varchar(n).Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipovarchar, unicamente se utilizan los caracteres necesarios,Por ejemplo, si en un varchar(255), guardamos el valor 'A',se almacena 'A', ocupando solo un byte bytes.

    Varchar(max). Igual que varchar, pero al declararse como max puede almacenar 231-1 bytes.

    Nchar(n).Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipode datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idomas.

    Nvarchar(n).Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar estetipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idomas.

    Nvarchar(max).Igual que varchar, pero al declararse como max puede almacenar 2

    31

    -1 bytes.

    C.- Tipos de datos de fecha.

    Datetime. Almacena fechas con una precisin de milisegundo. Debe usarse para fechas muy especficas.

    SmallDatetime. Almacena fechas con una precision de minuto, por lo que ocupa la mitad de espacio de que el tipodatetime, para tablas que puedan llegar a tener muchos datos es un factor a tener muy en cuenta..

    D.- Tipos de datos binarios.

    Binary. Se utiliza para almacenar datos binarios de longitud fija, con una longitud mxima de 8000 bytes.

    Varbinary. Se utiliza para almacenar datos binarios de longitud variable, con una longitud mxima de 8000 bytes..Esmuy similar a binary, salvo que varbinary utiliza menos espacio en disco.

    Varbinary(max).Igual que varbinary, pero puede almacenar 231-1 bytes

    E .- Tipo de datos XML.

    XML.Una de las grandes mejoras que incorpora SQL Server 2005 es el soporte nativo para XML. Como podemosdeducir, este tipo de datos se utiliza para almacenar XML.

    DECLARE@myxml XML

    set@myxml = (SELECT@@SERVERNAME NOMBRE FOR XML RAW, TYPE)

    printcast(@myxml asvarchar(max))

    Obtendremos la siguiente salida:

  • 8/10/2019 Servidor SQL Server-1

    16/101

    Pgina 16de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    F.- Otros tipos de datos.

    UniqueIdentifier. Se utiliza para identificadores nicos. Para generar identificadores nicos debemos utilizar lafuncin NEWID().

    DECLARE@myuniqueid UNIQUEIDENTIFIER

    set@myuniqueid = NEWID()

    printcast(@myuniqueid as varchar(36))

    Obtendremos la siguiente salida: 46141D79-102C-4C29-A620-792EA0208637

    Sql_Variant.Permite almacenar valores de diferentes tipos de datos. No puede almacena varchar(max), xml,timestamp y tipos de datos definidos por el usuario.

    G.- Tipos de datos personalizados.Transact SQL permite la creacin de tipos de datos personalizados, a trevs de la instruccin CREATE TYPE.Personalmente, desaconsejo el uso de tipos de datos personalizados.

    CREATE TYPEMD5FROMCHAR(32) NULLGODECLARE @miMD5MD5set@miMD5 = '0000000000000000000000000000000A'print@miMD5

    4 Variables en Transact SQL

    Declarar variables es Transact SQL

    Una variable es un valor identificado por un nombre (identificador) sobre el que podemos realizar modificaciones.

    En Transact SQLlos identificadores de variables deben comenzar por el carcter @, es decir, el nombre de unavariable debe comenzar por @. Para declarar variables en Transact SQLdebemos utilizar la palabra clave declare,seguido del identificador y tipo de datos de la variable.

    -- Esto es un comentario de linea simple

    /*Este es un comentario con varias lneas.Conjunto de Lineas.*/declare @nombre varchar(50)-- declare declara una variable

    -- @nombre es el identificador de la-- variable de tipo varchar

    set @nombre = 'MANCHESTER UNITED' -- El signo = es un operador

    -- MANCHESTER UNITED es un literalprint @Nombre -- Imprime por pantalla el valor de @nombre.-- No diferencia maysculas ni minsculas

  • 8/10/2019 Servidor SQL Server-1

    17/101

    Pgina 17de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Asignar variables en Transact SQL

    En Transact SQLpodemos asignar valores a una variable de varias formas:

    A travs de la instrunccin set.Utilizando una sentencia SELECT.

    Realizando un FETCHde un cursor.

    El siguiente ejemplo muestra como asignar una variable utilizando la instruccin SET.

    DECLARE@nombreVARCHAR(100)

    -- La consulta debe devolver un nico registro

    SET@nombre = (SELECTnombre

    FROMCLIENTES

    WHEREID = 1)

    PRINT@nombre

    El siguiente ejemplo muestra como asignar variables utilizando una sentencia SELECT.

    DECLARE@nombreVARCHAR(100),

    @apellido1VARCHAR(100),

    @apellido2VARCHAR(100)

    SELECT @nombre=nombre ,

    @apellido1=Apellido1,

    @apellido2=Apellido2

    FROMCLIENTES

    WHEREID = 1

    PRINT@nombre

    PRINT@apellido1

    PRINT@apellido2

  • 8/10/2019 Servidor SQL Server-1

    18/101

    Pgina 18de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Un punto a tener en cuenta cuando asignamos variables de este modo, es que si la consulta SELECT devuelve msde un registro, las variables quedarn asignadas con los valores de la ltima fila devuelta.

    Por ltimo veamos como asignar variables a travs de un cursor.

    DECLARE@nombreVARCHAR(100),

    @apellido1VARCHAR(100),

    @apellido2VARCHAR(100)

    DECLARECDATOS CURSOR

    FOR

    SELECTnombre , Apellido1, Apellido2

    FROMCLIENTES

    OPENCDATOS

    FETCHCDATOS INTO@nombre, @apellido1, @apellido2

    WHILE(@@FETCH_STATUS = 0)

    BEGIN

    PRINT@nombre

    PRINT@apellido1

    PRINT@apellido2

    FETCHCDATOS INTO@nombre, @apellido1, @apellido2

    END

    CLOSECDATOS

    DEALLOCATECDATOS

    Veremos los cursores con ms detalle ms adelante en este tutorial.

  • 8/10/2019 Servidor SQL Server-1

    19/101

    Pgina 19de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    5 Operadores en Transact SQL

    La siguiente tabla ilustra los operadores de Transact SQL.

    Tipo de operador Operadores

    Operador de asignacin =

    Operadores aritmticos + (suma)

    - (resta)

    * (multiplicacin)

    / (divisin)

    ** (exponente)

    % (modulo)

    Operadores relacionales

    o de comparacin

    = (igual a) (distinto de)!= (distinto de)< (menor que)> (mayor que)>= (mayor o igual a) (no mayor a)!< (no menor a)

    Operadores lgicos AND (y lgico)NOT (negacion)

    OR (o lgico)

    & (AND a nivel de bit)

    | (OR a nivel de bit)

    ^ (OR exclusivo a nivel de bit)

    Operador de

    concatenacin+

    Otros

    ALL (Devuelve TRUE si el conjunto completo de comparaciones es

    TRUE)

    ANY(Devuelve TRUE si cualquier elemento del conjunto de

    comparaciones es TRUE)

    BETWEEN (Devuelve TRUE si el operando est dentro del intervalo)EXISTS (TRUE si una subconsulta contiene filas)

    IN (TRUE si el operando est en la lista)

    LIKE (TRUE si el operando coincide con un patron)

    NOT (Invierte el valor de cualquier operador booleano)

    SOME(Devuelve TRUE si alguna de las comparaciones de

    un conjunto es TRUE)

  • 8/10/2019 Servidor SQL Server-1

    20/101

  • 8/10/2019 Servidor SQL Server-1

    21/101

    Pgina 21de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    La estructura IFadmite el uso de subconsultas:

    DECLARE @coPaisint,@descripcionvarchar(255)

    set @coPais =5

    set @descripcion ='Espaa'IFEXISTS(SELECT* FROMPAISESWHERECO_PAIS = @coPais)BEGIN

    UPDATE PAISESSETDESCRIPCION = @descripcionWHERECO_PAIS = @coPais

    END

    ELSEBEGIN

    INSERT INTOPAISES(CO_PAIS, DESCRIPCION)VALUES

    (@coPais, @descripcion)END

    Estructura condicional CASE

    La estructura condicional CASEpermite evaluar una expresion y devolver un valor u otro.

    La sintaxis general de case es:

    CASE

    WHENTHENWHENTHENELSE -- Valor por defecto

    END

    Ejemplo de CASE.

    DECLARE@Web varchar(100),@diminutivo varchar(3)

    SET@diminutivo = 'DJK'SET@Web = (CASE@diminutivoWHEN'DJK' THEN'www.pandalsoft.com'WHEN'ALM' THEN'www.manchester.com'ELSE'www.united.com'

    END)PRINT@Web

  • 8/10/2019 Servidor SQL Server-1

    22/101

    Pgina 22de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Otra sintaxis de CASEnos permite evaluar diferentes expresiones:

    CASEWHEN = THENWHEN = THEN

    ELSE -- Valor por defecto

    END

    El mismo ejemplo aplicando esta sintaxis:

    DECLARE@Web varchar(100),@diminutivo varchar(3)

    SET@diminutivo = 'DJK'

    SET@Web = (CASEWHEN@diminutivo = 'DJK' THEN'www.manchester.com'WHEN@diminutivo = 'ALM' THEN'www.united.com'ELSE'www.jhonnypandal.com'

    END)PRINT@Web

    Otro aspecto muy interesante de CASEes que permite el uso de subconsultas.

    DECLARE@Web varchar(100),

    @diminutivo varchar(3)SET@diminutivo = 'DJK'

    SET@Web = (CASEWHEN@diminutivo = 'DJK' THEN(SELECT web

    FROMWEBS

    WHEREid=1)WHEN@diminutivo = 'ALM' THEN(SELECT web

    FROMWEBS

    WHEREid=2)ELSE'www.jhonnypandal.com'

    END)PRINT@Web

  • 8/10/2019 Servidor SQL Server-1

    23/101

    Pgina 23de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Bucle WHILE

    El bucle WHILEse repite mientras expresion se evalue como verdadero.

    Es el nico tipo de bucle del que dispone Transact SQL.

    WHILEBEGIN

    ...END

    Un ejemplo del bucle WHILE.

    DECLARE@contador intSET@contador = 0

    WHILE(@contador < 100)BEGIN

    SET@contador = @contador + 1

    PRINT'Iteracion del bucle ' + cast(@contadorAS varchar)END

    Podemos pasar a la siguiente iteracin del bucle utilizando CONTINUE.

    DECLARE@contador int

    SET@contador = 0WHILE(@contador < 100)BEGIN

    SET@contador = @contador + 1IF(@contador % 2 = 0)CONTINUEPRINT'Iteracion del bucle ' + cast(@contadorAS varchar)

    END

    El bucle se dejar de repetir con la instruccin BREAK.

    DECLARE@contador intSET@contador = 0WHILE(1 = 1)BEGIN

    SET@contador = @contador + 1IF(@contador % 50 = 0)BREAKPRINT'Iteracion del bucle ' + cast(@contadorAS varchar)

    END

  • 8/10/2019 Servidor SQL Server-1

    24/101

  • 8/10/2019 Servidor SQL Server-1

    25/101

    Pgina 25de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    7 Desarrollo de Ejemplos

    A.- Programa que ingresa dos nmeros y muestra la suma

    Declare @Num1 Int ,@Num2 Int,@Total IntSet @Num1 =250Set @Num2 =550

    Set @Total =@Num1 + @Num2

    Print @Total

    B.- Programa que ingrese Nombre De Producto, Precio, Cantidad Y Mostrar Pago Total, IGV Y Pago Neto

    Declare @NomProd Varchar(50) ,@Precio Money,@Cant Int,@TOTAL Money,@IGV Money,@NETO Money

    Set @NomProd ='Camiseta Oficial del Manchester United 2011'Set @Precio =250Set @Cant =10

    Set @TOTAL =@Precio * @CantSet @IGV =@TOTAL * 0.19Set @NETO =@TOTAL + @IGV

    Print @TOTAlPrint @IGVPrint @NETO

    C.- Programa que ingrese la edad de un alumno y determine si es mayor o menos de edad

    Declare @Nombre Varchar(50), @Mensaje Varchar(50), @Edad IntSet @Nombre ='Mabel'Set @Edad =12

    IF @Edad >=18Begin

    Set @Mensaje='MAYOR DE EDAD'End

    ElseBegin

    Set @Mensaje='MENOR DE EDAD'End

    Print @Mensaje

    D.- Programa que permita ingresar el nombre del empleado y la venta del mes. Si las ventas superan los 5000soles. Recibir un pago de 800 soles. Caso contrario solo 400 soles.

    Declare @Nombre Varchar(50), @Ventas Money, @Pago MoneySet @Nombre ='Fabio Da Silva'

    Set @Ventas=5580.25

    IF @Ventas >5000Begin

    Set @Pago =800End

    ElseBegin

    Set @Pago =400End

    Print @Pago

  • 8/10/2019 Servidor SQL Server-1

    26/101

    Pgina 26de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    E.- Programa que ingrese el promedio de un alumno. Su condicion sera:Mayor de 15 EXELENTE, mayor de 10 APROBADO, Mayor de 5 DESAPROBADO, los demas PESIMO

    Declare @Nombre Varchar(50), @Promedio Int, @Condicion Varchar(30)Set @Nombre ='Alex Ferguson'Set @Promedio=15

    IF @Promedio >15Begin

    Set @Condicion ='EXELENTE'End

    Else If @Promedio >10Begin

    Set @Condicion ='APROBADO'End

    Else If @Promedio >5BeginSet @Condicion ='DESAPROBADO'

    EndElse

    BeginSet @Condicion ='PESIMO'End

    Print @Condicion

    F.- Programa que ingrese el promedio de un alumno. Su condicin ser:Mayor de 15 EXELENTE, mayor de 10 APROBADO, Mayor de 5 DESAPROBADO, los dems PESIMO

    Declare @Nombre Varchar(50), @Promedio Int, @Condicion Varchar(30)Set @Nombre =JHONNY PANDAL POMA'Set @Promedio=15

    Set @Condicion=(CASEWHEN @Promedio >15 THEN 'EXELENTE'WHEN @Promedio >10 THEN 'APROBADO'WHEN @Promedio >5 THEN 'DESAPROBADO'

    ELSE 'PESIMO'END)

    PRINT 'el alumno ' + @Nombre + ' Esta ' + @Condicion

    G.- Programa que ingrese el area de trabajo del empleado y defina su sueldo. Sabiendo que OBRERO gana500, EMPLEADO gana 900 y GERENTE 2500

    Declare @Nombre Varchar(50), @Sueldo Money, @Area Varchar(30)

    Set @Nombre =Ryan Giggs'Set @Area='OBRERO'

    Set @Sueldo=(CASE @AreaWHEN 'OBRERO' THEN 500WHEN 'EMPLEADO' THEN 900WHEN 'GERENTE' THEN 2500END)

    PRINT 'el SR. ' + @Nombre + ' Recibe S/. ' + CAST(@Sueldo AS VARCHAR(50))

  • 8/10/2019 Servidor SQL Server-1

    27/101

    Pgina 27de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Propuesto Practico 02

    1. EDAD.VB Desarrollar un programa que ingrese el nombre y la edad de un alumno y le muestre como mensaje. Si dicho alumno esMAYOR DE EDAD o MENOR DE EDAD

    2. AULA.VB Desarrollar un programa que ingrese el numero de aula, fecha inicio, fecha termino, turno y cantidad de alumnomatriculados. Si el aula programada tiene mas de 15 alumnos el programa debe mostrar un mensaje de ACTIVO caso contrarioINACTIVO.

    3. VENTAS.VB Desarrolla un programa que ingrese las ventas de un empleado. Si sus ventas superan los 10000 mensuales. Semostrara un mensaje de EMPLEADO DEL MES caso contrario EMPLEADO NORMAL.

    4. ALUMNO.VB Desarrolle un programa que ingrese el nombre y el promedio de un alumno. El programa debe mostrar un mensajesindicando si el alumno esta APROBADO o DESAPROBADO

    5. TIPO.VB Desarrollar un programa que ingrese el nombre, precio y tipo (NACIONAL o IMPORTADO) del producto. Los productosnacionales reciben un incremento de S/.100 y los importados S/. 300 soles. El programa debe mostrar: Descuento y pago neto.

    6. CARGO.VB Desarrollar un programa que ingrese el nombre, apellido, edad, sexo y cargo de un empleado. Su sueldo depende delcargo que ocupe. Detalles:(GERENTE gana S/. 2500), (OBRERO gana S/. 500), (VENTAS gana S/. 2500) otro cargo diferente a losanteriores ganara S/. 350.00

    7. PROMEDIO.VB Desarrolla un Programa que ingrese el nombre y las 4 notas de un alumno. El programa debe mostrar el promedio yel acumulado de notas. ADEMAS El alumno mostrara un mensaje segn el promedio que haya sacado. (PROM > 20 promedioinvalido), (PROM > 14 alumno excelente),(PROM > 10 alumno aprobado), CASO CONTRARIO Desaprobado.

    8. BUSCADOR.VB Desarrolla un programa que ingrese el cdigo de un alumno y te muestre su nombre, telfono y direccin.DETALLE: (A001,Juan Perez, 450-9600, Jr.Ica 1200) , (A002,Nadia Ivette, 478-9655, Jr.puno 478), (A003,Joce Ramirez, 987-989-955, Calle Bahia 175), (A004, Diana Robles, 785-9655, Calle Los Pinos 125), Si ingresaras un cdigo incorrecto mostrara unamensaje de ERROR DE INGRESO

    Fecha de ENTREGA:

    Es importante repetir. que es muy

    importante el aprendizaje de este tipo de

    programacin. Ya que ser necesario para la

    comprensinde los siguientes captulos

  • 8/10/2019 Servidor SQL Server-1

    28/101

    Pgina 28de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 Archivos de Base de Datos 29

    2 Creacin de Bases de Datos 29

    3 Ampliando el Tamao una Base De Datos 30

    4 Creacin de Tablas 31

    5 Integridad de Datos de una Tabla 31

    6 Integridad referencial FOREIGN KEY 33

    7 Generando el cdigo de CURSO-INSTRUCTOR 34

    8 Generando el cdigo de CARGO-EMPLEADO-DISTRITO 35

    9 Creacin de Diagrama 36

    Propuesto Practico 03 37

    CAPITULO 3

    Objetivos.- administrar y ampliar el tamao

    de una base de datos. Adems de normalizar

    la misma. Haciendo uso de restricciones que

    permiten datos correctos

  • 8/10/2019 Servidor SQL Server-1

    29/101

    Pgina 29de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 Archivos de Base de Datos

    Archivos de base de datosLas bases de datos de SQL Server 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 labase de datos. Cada base de datos tiene un archivo de datos principal. La extensin recomendada para losnombres 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 puedentener varios archivos de datos secundarios. La extensin de nombre de archivo recomendada para losarchivos de datos secundarios es .ndf.

    Archivos de registro

    Los archivos de registro almacenan toda la informacin de registro que se utiliza para recuperar la base dedatos. Como mnimo, tiene que haber un archivo de registro por cada base de datos, aunque puede habervarios. La extensin de nombre de archivo recomendada para los archivos de registro es .ldf.

    2 Creacin de Bases de Datos

    A una lnea

    Create Database Empresa

    Con esta lnea estas creando una base de datos de nombre empresa dentro de la carpeta DATA

    Con Atributos configurados para cada archivo

    Create Database AppleON(Name=Apple_Dat,FileName='C:\Apple\Apple_Dat.MDF',Size=5,

    Maxsize=10,Filegrowth=2)

    LOG ON(Name=Apple_Log,FileName='C:\Apple\Apple_Log.LDF',

    Size=2,Maxsize=5,Filegrowth=1)

    Detalles: la base de datos esta creado sobre una carpeta APPLE en disco local C.

    Name.-especifica el nombre del archivo

    Filename.-determinas la ubicacin fsica del archivo

    Size.-espacio mnimo que debe tener el archivo al ser construido

    Maxsize.-espacio mximo que puede almacenar dicho archivo

    Filegrowth.- el incremente de crecimiento del archivo a partir de su tamao mnimo hasta su tamao mximo

  • 8/10/2019 Servidor SQL Server-1

    30/101

  • 8/10/2019 Servidor SQL Server-1

    31/101

    Pgina 31de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    4 Creacion de Tablas

    Una de las primeras restrcciones que uno aplica dentro de una tabla son los tipos de datos. Al crear una tabla unodebe especificar un tipo de dato relacionado con lo que almacenara dicho campo. Ej. NOMBRE debe almacenar unvarchar.

    5 Integridad de Datos de una Tabla

    Restricciones PRIMARY KEY

    Una tabla suele tener una columna o una combinacin de columnas cuyos valores identifican de forma nica cada filade la tabla. Estas columnas se denominan claves principales de la tabla y exigen la integridad de entidad de la tabla.Puede crear una clave principal mediante la definicin de una restriccin PRIMARY KEY cuando cree o modifiqueuna tabla. Este campo no acepta valores NULL por defecto.

    Imposible ingresar2 productos conmismo cdigo.

    ERROR DE

    USUARIO

  • 8/10/2019 Servidor SQL Server-1

    32/101

    Pgina 32de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Restricciones Null o Not Null.- NOT NULL Determina que el campo tenga datos de manera obligatoria. NULL porel contrario null admite campos vacos. Para hacer uso de estas restricciones debe contar con un anlisis y asconseguir unos datos consistentes.

    Restricciones Unique.-Solo admit5e valores nicos dentro de un campo. Una tabla puede contar con muchoscampos con restriccin UNIQUE.

    Restricciones Check.- Nos permite aplicar una regla de validacin dentro de un campos. Es decir una regla de datosque podran ingresar dentro de un campo. Ej. Campo EDAD solo admite valores >=18 debido a que los clientesdeben ser mayores de edad..

  • 8/10/2019 Servidor SQL Server-1

    33/101

    Pgina 33de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Definiciones DEFAULT.- Los valores por defecto indican que valor ser guardado en una columna si no seespecifica un valor para la columna cuando se inserta una fila. Las definiciones DEFAULT pueden ser creadascuando la tabla es creada (como parte de la definicin de la tabla) o pueden ser agregadas a una tabla existente.Cada columna en una tabla puede contener una sola definicin DEFAULT.

    6 Integridad referencial FOREIGN KEY

    La integridad referencial preserva las relaciones definidas entre tablas, cuando se entran, modifican o borranregistros. En SQL Server, la integridad referencial esta basada en interrelaciones entre claves ajenas y clavesprimarias o entre claves ajenas y claves nicas (a travs de la restricciones FOREIGN KEY y CHECK). La integridadreferencial asegura que los valores de las claves son consistentes a travs de distintas tablas. Tal consistenciarequiere que no existan referencia a valores inexistentes y que, si un valor clave cambia, todas las referenciascambien consistentemente a lo largo de la base de datos.

    Cuando se fuerza la integridad referencial, SQL Server previene a los usuarios de realizar lo siguiente:

    Agregar registros a una tabla relacionada si no hay registros asociados en la correspondiente tabla primaria.

    Cambiar valores en la tabla primaria que resulten en registros hurfanos en las tablas relacionadas.

    Borrar registros desde una tabla primaria si existen registros relacionados en la tabla ajena.

    EJEMPLO:

    Para este ejemplo crearemos una tabla cursosy la tabla Instructor.Estas tablas estn relacionadas por un campocomn CODIGO de la tabla cursos y CURSO de la tabla Instructor.

  • 8/10/2019 Servidor SQL Server-1

    34/101

    Pgina 34de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Create Table Cursos(Codigo Char(5) Primary key,Nombre Varchar(50))Go

    Insert Into Cursos Values('C0001','Sql Server Administrator')Insert Into Cursos Values('C0002','Visual Basic 2008 - N Layer')Insert Into Cursos Values('C0003','Analisis de Sistemas POO')Go

    Create Table Instructor(Codigo Char(5) Primary key,Nombre Varchar(50),DNI Varchar(8),Curso Char(5) Constraint FK_CursoInstr Foreign Key(Curso)

    References Cursos(Codigo))Go

    Insert Into Instructor values('P0001','Jhonny Pandal','10606388','C0001')

    Insert Into Instructor values

    ('P0002','Juan Salazar','52362200','C0001')

    Insert Into Instructor values('P0003','Ernesto Bonifaz','11225125','C0002')

    Insert Into Instructor values('P0004','Nemanja Vidic','00006388','C0002')

    Insert Into Instructor values('P0005','Poul Scholes','12306388','C0002')

    Insert Into Instructor values

    ('P0006','Park Jing Sung','88559960','C0002')

    Insert Into Instructor values('P0007','Rafael Da Silva','15202111','C0003')

    Go

    Select*From CursosSelect*From Instructor

    7 Generando el cdigo de CURSO-INSTRUCTOR

    Comenzamos creando la tabla cursos e ingresando 3 registros. Luego creamos la tabla instructor y medianteFOREIGN KEY establecemos la relacin con la tabla CURSOS ya creado anteriormente. Seguidamente. Ingresamosregistros en la tabla INSTRUCTOR. Pero recordando que el ltimo campo hace uso de datos externos para asegurarla integridad de datos.

    LUEGOIngresar los siguientes datos a la Tabla INSTRUCTOR

    P0008 Gabriel Milito 12548544 C0008P0009 Dayana Rose 25632210 C0025

    Ingresa correctamente el script y

    obtendrs este resultado. PULSA

    Que sucede al insertar estos

    registros? Y como se soluciona?

  • 8/10/2019 Servidor SQL Server-1

    35/101

    Pgina 35de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    8 Generando el cdigo de CARGO-EMPLEADO-DISTRITO

    Desarrollamos el script de estas 3 tablas relacionadas. Analizando que un empleado vives en un distrito y asume uncargo.

    TABLA: CARGO

    TABLA: DISTRITO

    Creacin de Tabla Hijo EMPLEADO

    Create Table Cargo(CodCargo Char(5) Primary key,Nombre Varchar(30) Not Null Constraint Un_Nombre Unique)GoInsert Into Cargo Values('CAR01','Vigilante')

    Insert Into Cargo Values('CAR02','Ventas')Insert Into Cargo Values('CAR03','Gerente')

    GoSELECT*FROM Cargo

    Go

    Create Table Distrito(CodDis Char(5) Primary Key,Nombre Varchar(30) Not Null Constraint Un_NombreDIS Unique)GOInsert Into Distrito Values('DIS01','Chosica')Insert Into Distrito Values('DIS02','Chaclacayo')Insert Into Distrito Values('DIS03','Santa Anita')

    GOSELECT*FROM Distrito

    Create Table Empleado(CodEmp Char(5) Primary key,NomEmp Varchar(50) Not Null,Edad SmallInt Not Null Constraint Chk_Edad Check(Edad>=18 and Edad

  • 8/10/2019 Servidor SQL Server-1

    36/101

    Pgina 36de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Luego debes ingresar estos registros en la tabla EMPLEADO. De tal manera que quede al final de esta manera:

    Luego debes Crear el Diagrama de Datos de las 3 tablas.

    9 Creacin de Diagramaa) Seleccionar Diagramas de base de datos

    b) Clic en Nuevo diagrama de base de datosc) Seleccionar y AGREGAR las tablas Cursos, Cargo y Empleadod) Clic en CERRAR

    Para el desarrollo de este proyecto de 3

    tablas se utilizaron integridad de datos para

    cada una de las tablas involucradas. No

    debes olvidar que las tablas tiene campos

    comunes y que tiene el mimo tipo de dato

    en cada CAMPO no olvidarse.

    Adems de haber poblado de datos de

    forma adecuada. Ahora solo se necesita la

    prctica de parte tuya.

  • 8/10/2019 Servidor SQL Server-1

    37/101

    Pgina 37de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Propuesto Practico 03

    Desarrollo de la base de datos UNIVERSIDAD

    Desarrollo de la Base de Datos FERRARI

    .

    Fecha de Entrega:

  • 8/10/2019 Servidor SQL Server-1

    38/101

    Pgina 38de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 Funciones de cadena en SQL Server 39

    2 Funciones de Fecha 40

    3 Funciones Matemticas 41

    4 Funciones de Agregado 41

    5 Otras Funciones Importantes 42

    Propuesto Practico 04 43

    CAPITULO 4

    Objetivos.- aprender hacer uso de las

    funciones de SQL server. Para obtener un

    mejor resultado con nuestros datos.

    Importante saber usar estas funciones

    No olvidarse

  • 8/10/2019 Servidor SQL Server-1

    39/101

    Pgina 39de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 Funciones de cadena en SQL Server

    Funcin ASCII.

    - Descripcin: Retorna el valor del cdigo ASCII.

    - Sintaxis: ASCII (character)

    - Ejemplos:

    SELECT ASCII('a') Resultado = 97

    SELECT ASCII('b') Resultado = 98

    SELECT ASCII('c') Resultado = 99

    SELECT ASCII('A') Resultado = 65

    SELECT ASCII('B') Resultado = 66

    SELECT ASCII('C') Resultado = 67

    SELECT ASCII('1') Resultado = 49

    SELECT ASCII('2') Resultado = 50

    SELECT ASCII('3') Resultado = 51

    SELECT ASCII('4') Resultado = 52

    SELECT ASCII('5') Resultado = 53

    Funcin SPACE._ Descripcin: Retorna los espacios en SQL Query(Puedes especificar el tamao del especio).- Sintaxis: SPACE ( integer)- Ejemplos:

    SELECT ('Manchester') + SPACE(10) + ('United')

    -- Resultado = ManchesterUnited

    Funcin REPLACE- Descripcin: Reemplaza todas las ocurrencias de la

    cadena 2 y la cadena 1 con la cadena 3.- Sintaxis: REPLACE ( 'string1' , 'string2' , 'string3' )- Ejemplos:

    SELECT REPLACE('All Function' , 'All', 'SQL')

    -- Resultado = SQL Function

    Funcin STUFF- Descripcin: Elimina una longitud especfica de caracteres eInserta una cadena en un ndice de inicio especifico.- Sintaxis: STUFF ( string1 , startindex , length , string2 )- Ejemplo:

    SELECT STUFF('SqlTutorial', 4, 6, 'Function')

    -- Resultado = SqlFunctional

    SELECT STUFF('GoodMorning', 5, 3, 'good')

    -- Resultado = Goodgoodning

    Funcin LEFT- Descripcin: Retorna la parte izquierda de una- cadena con el nmero especfico de caracteres.- Sintaxis: LEFT ( string , integer)Ejemplo:

    SELECT LEFT('ManchesterCampeon', 6)

    -- Resultado =MancheSELECT LEFT('Megadeth',6)

    -- Resultado =Megade

    Funcin RIGHT- Descripcin: Retorna la parte derecha de una cadena con el nmeroEspecfico de caracteres.- Sintaxis: RIGHT( string , integer)

    - Ejemplo:

    SELECT RIGHT('Jhonny Pandalsoft', 6)

    -- Resultado = alsoft

    SELECT RIGHT('JhonnyPandal',6)

    -- Resultado = Pandal

    Funcin REPLICATE- Descripcin: Repite una cadena por un nmero especfico de veces.- Sintaxis: REPLICATE (string, integer)- Ejemplo:

    SELECT REPLICATE('JPP', 2)-- Resultado = JPPJPP

    Funcin SUBSTRING- Descripcin: Retorna parte de una cadena.- Sintaxis: SUBSTRING ( string, startindex , length )- Ejemplo:

    SELECT SUBSTRING('SQLServer', 4, 3)

    -- Resultado = Ser

    Funcin LEN- Descripcin: Retorna el nmero de caracteres de una cadena.-Sintaxis: LEN( string)- Ejemplo:

    SELECT LEN('DIOSTEAMA')

    -- Resultado = 9

    Funcin REVERSE- Descripcin: Convierte a una cadena invertida.- Sintaxis: REVERSE( string)- Ejemplo:

    SELECT REVERSE('Pandal')

    -- Resultado = ladnaP

    Funcin UNICODE- Descripcin: Retorna el valor entero del estndar unicode.- Sintaxis: UNICODE( char)- Ejemplo:

    SELECT UNICODE('SqlServer')

    -- Resultado = 83(it take first character)

    SELECT UNICODE('S')

    -- Resultado = 83

  • 8/10/2019 Servidor SQL Server-1

    40/101

    Pgina 40de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    FuncinLOWER- Descripcin: Convierte una cadena a minscula.- Sintaxis: LOWER( string )- Ejemplo

    SELECT LOWER('PandalSoft')

    -- Resultado =pandalsoft

    Funcin UPPER- Descripcin: Convierte una cadena a mayscula.- Sintaxis: UPPER( string )- Ejemplo:

    - SELECT UPPER('sistemasjhonny')

    -- Resultado = SISTEMASJHONNY

    Funcin LTRIM- Descripcin: Retorna una cadena despus de eliminar los espacios de laizquierda.- Sintaxis: LTRIM( string )- Ejemplo:

    SELECT LTRIM(' sqlserver')

    -- Resultado = 'sqlserver'-- (Remove left side space or blanks)

    Funcin RTRIM- Descripcin: Retorna una cadena despus de eliminar los espacios de laderecha.- Sintaxis: RTRIM( string )- Ejemplo:

    SELECT RTRIM('Prof.Pandal ')

    -- Resultado = 'Prof.Pandal'

    -- (Remove right side space or blanks)

    2 Funciones de Fecha

    DATEADDDevuelve un valor datetime nuevo que se basa en la sumade un intervalo a la fecha especificada.

    Ejemplo

    DECLARE @DateNow DATETIMESET @DateNow='08/10/1980'SELECT DATEADD(Year, 15, @DateNow) AS NewDate

    DATEDIFFDevuelve el nmero de lmites de fecha y hora que hay entre

    dos fechas especificadas.

    Ejemplos

    DECLARE @DateNow DATETIMESET @DateNow='08/10/1980'

    SELECT DATEADD(Year, 15, @DateNow) AS NewDateSELECT DATEADD(Month, 3, @DateNow) AS NewDateSELECT DATEADD(dayofyear,3, @DateNow) AS NewDateSELECT DATEADD(Day, 3, @DateNow) AS NewDateSELECT DATEADD(Hour, 3, @DateNow) AS NewDateSELECT DATEADD(minute, 3, @DateNow) AS NewDateSELECT DATEADD(second, 3, @DateNow) AS NewDate

    DATENAMEDevuelve una cadena de caracteres que representa la parteDe la fecha especificada de la fecha especificada.

    Ejemplos

    SELECT DATENAME(month, GETDATE())

    SELECT DATENAME(dayofyear, GETDATE())

    SELECT DATENAME(day, GETDATE())

    SELECT DATENAME(week, GETDATE())

    SELECT DATENAME(hour, GETDATE())

    SELECT DATENAME(minute, GETDATE())

    SELECT DATENAME(second , GETDATE())

    SELECT DATENAME(millisecond , GETDATE())DATEPARTDevuelve un entero que representa la parte de la fechaEspecificada de la fecha indicada..

    Ejemplo

    SELECT DATEPART(year, '2007-06-01') AS "Month"SELECT DATEPART(month, '2007-06-01') AS "Month"SELECT DATEPART(day, '2007-06-01') AS "Day"SELECT DATEPART(dayofyear, '2007-06-01') AS "Dy"SELECT DATEPART(weekday, '2007-06-01') AS "Weeday"

    DAYDevuelve un entero que representa la parte del da de lafecha especificada.

    Ejemplo

    SELECT DAY('02/12/2004') AS "DIA"

    GETDATEDevuelve la fecha y hora actuales del sistema en el formatoInterno estndar de Microsoft SQL Server para los valoresdatetime.

    Ejemplo

    SELECT GETDATE() as "HOY ES"

    MONTHDevuelve un entero que representa el mes de una fechaEspecificada.

    Ejemplo

    SELECT MONTH('02/12/2004') AS "MES"

    YEARDevuelve un entero que representa la parte de ao de la fechaEspecificada.

    Ejemplo

    SELECT YEAR('02/12/2004') AS "AO"

  • 8/10/2019 Servidor SQL Server-1

    41/101

    Pgina 41de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    3 Funciones Matematicas

    RAND (Transact-SQL)Es unaexpresin de tipo entero (tinyint, smallint o int) que proporcionaEl valor de inicializacin. Si no se especifica seed, SQL Server DatabaseEngine (Motor de base de datos de SQL Server) asigna un valor deInicializacin de forma aleatoria. Para un valor de inicializacinespecificado,El resultado devuelto es siempre el mismo.

    EjemplosEn el siguiente ejemplo se producen cuatro nmeros aleatorios diferentes,Generados con la funcin RAND.

    DECLARE @Numero SmallInt ,@Resultado smallint;SET @Numero = 1;

    WHILE @Numero < 5BEGIN

    Set @Resultado =(RAND()*100)SET @Numero = @Numero + 1Print @Resultado

    ENDGO

    ACOS (Transact-SQL)Funcin matemtica que devuelve el ngulo, en radianes, cuyo coseno esla expresin float especificada; tambin se denomina arco coseno.

    EjemplosEn el ejemplo siguiente se devuelve el valor ACOS del nmeroespecificado.

    DECLARE @N_COSENO float;SET @N_COSENO = -1.0;SELECT 'Coseno Es:' + CONVERT(varchar,

    ACOS(@N_COSENO))

    SQRT (Transact-SQL)Devuelve la raz cuadrada del valor de tipo flotante especificado.

    EjemplosEn el ejemplo siguiente se devuelve la raz cuadrada de los nmerosComprendidos entre 1.00 y 10.00.

    DECLARE @myvalue float;SET @myvalue = 1.00;

    WHILE @myvalue < 10.00BEGIN

    SELECT SQRT(@myvalue);SET @myvalue = @myvalue + 1

    ENDGO

    4 Funciones de Agregado

    Las funciones de agregado realizan un clculo sobre un conjunto de valores y devuelven un solo valor. Si exceptuamos la funcin COUNT, todas las funcionesde agregado ignoran los valores NULL. Las funciones de agregado se suelen utilizar con la clusula GROUP BY de la instruccin SELECT.

    Las funciones de agregado slo se pueden utilizar como expresiones en:

    La lista de seleccin de una instruccin SELECT (en una subconsulta o en la consulta externa). Clusulas COMPUTE o COMPUTE BY. Clusulas HAVING.

    Transact-SQL proporciona las siguientes funciones de agregado:

    NOTA: Para ejecutar los ejemplos debe crear la tabla VENDEDORESCon los siguientes registros:

    http://msdn.microsoft.com/es-es/library/ms190286.aspxhttp://msdn.microsoft.com/es-es/library/ms190286.aspx
  • 8/10/2019 Servidor SQL Server-1

    42/101

    Pgina 42de 101

    RPP - Taller de Base de Datos

    Docentes: Lic. Luis M. Rojas Z. Lic. Zambrano Arce

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    AVG (Transact-SQL)Devuelve el promedio de los valores de un grupo. Los valores NULLSe pasan por alto. Puede ir seguida de laclusula OVER.

    EjemploMostrar en promedio de ventas de los vendedores estables

    MIN Y MAX (Transact-SQL)MinDevuelve el valor mnimo de una expresin. Max devuelve el valorMximo de una expresin

    EjemploMostrar la mayor y menor venta de los vendedores

    VAR (Transact-SQL)Devuelve la varianza estadstica de todos los valores de la expresinEspecificada.

    EjemploEste ejemplo devuelve la varianza para todos los valores de VisitasDe la tabla Vendedores

    COUNT (Transact-SQL)Permite contar el nmero de elementos de un grupo. NormalmenteUsamos esta funcin para obtener un valor entero

    EjemploMostrar la mayor y menor venta de los vendedores

    5 Otras Funciones Importantes

    SQL server cuenta con los siguientes tipo de funciones queharemos uso ydebemos conocer con la iniciativa de investigacin del estudiante.

    Funciones de conjuntos de filas

    Funciones de categora

    Funciones de configuracin

    Funciones del cursor Funcinmatemtica

    Funciones de metadatos

    Funciones de seguridad

    Funciones del sistema

    Funciones estadsticas del sistema

    Funciones de texto e imagen

    Aqu algunas que deberemos usar:

    @@IDENTITY (Transact-SQL)Se trata de una funcin del sistema que devuelve el ltimo valor de identidadinsertado.@@IDENTITY

    ISDATE (Transact-SQL)Devuelve 1 si expression es un valor date, time o datetime vlido; de lo contrario,devuelve 0.

    ISNULL (Transact-SQL)Reemplaza NULL con el valor de reemplazo especificado.ISNULL ( check_expression , replacement_value )

    ISNUMERIC (Transact-SQL)Determina si una expresin es de tipo numrico vlido.

    CAST y CONVERT (Transact-SQL)

    Convierte una expresin de un tipo de datos en otro.

    http://msdn.microsoft.com/es-es/library/ms189461.aspxhttp://msdn.microsoft.com/es-es/library/ms189461.aspx
  • 8/10/2019 Servidor SQL Server-1

    43/101

    Pgina 43de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Propuesto Practico 04

    Segn lo aprendido ahora debe resolver las siguientes consultas N-100

    a) Consulta que muestre INSTRUCTOR como resultado ROTCURTSNI

    b) Consulta que muestre los 3 ltimosdgitos de la palabra MICROSOFT

    c) Consulta que muestre los 2 primero dgitos de tu nombre

    d) Consulta que duplique tu nombre 3 veces

    e) Consulta que muestre la cantidad de dgitos de tus apellidos y nombres

    f) Consulta que muestre el nombre de tu distrito en MAYUSCULA

    g) Consulta que muestre la fecha 15/03/2001 adicionndole 3 meses = 15/06/2001

    h) Consulta que muestre la fecha 15/03/2001 adicionndole 15 aos = 15/06/2016

    i) Consulta que muestre el mes de 12/14/2011

    j) Consulta que muestre el promedio de visitas que tuvieron los contratados

    k) Consulta que muestre la menor visita

    l) Consulta que muestre la cantidad de estables que hayan tenido ms de 30 visitas

    m) Consulta que muestre a los vendedores que hayan tengan ventas superiores al promedio

    Fecha de Entrega:

  • 8/10/2019 Servidor SQL Server-1

    44/101

    Pgina 44de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 DML, Lenguaje de Manipulacin de Datos SELECT 45

    2 Lenguaje de manipulacin de datos (I) - INSERT 45

    3 Consultas N-100 - WARDS SUPERMARKET 47

    4 Consulta de Datos I 49

    5 Consultas de Actualizacin I - UPDATE 51

    6 Consultas de Actualizacin II 52

    7 Consultas de Actualizacin III 53

    8 Consulta de Eliminacin - DELETE 55

    Propuesto Practico 05 61

    CAPITULO 5

    Objetivos.- es importante saber gestionar los

    datos de un DB. En esta seccin debemos

    aprender consultas que nos permitan hacer

    uso de los datos

  • 8/10/2019 Servidor SQL Server-1

    45/101

    Pgina 45de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 DML, Lenguaje de Manipulacin de DatosEl Lenguaje de Manipulacin de Datos (DML, por sus siglas en ingls) se utiliza para obtener, insertar y modificar informacin de unabase de datos.

    INSERT.- El comando INSERT en SQL es utilizado para agregar nuevos registros auna tabla existente. Tomando como ejemplo la tabla "personal", imaginemos que el

    departamento de recursos humanos necesita agregar un nuevo empleado a la basede datos. Se podra utilizar un comando similar al siguiente:

    Note que hay cuatro valores especficos para el registro. Estos corresponden a los atributos de la tabla en el orden enque fueron definidos: nombre, apellido, empleado_id y salario.

    Ejemplo

    LUEGODebes ingresar los registros restantes

    2 Lenguaje de manipulacin de datos (I)

    Consulta de datos.El proceso ms importante que podemos llevar a cabo en una base de datos esla consulta de los datos. De nada servira una base de datos si nopudiramos consultarla. Es adems la operacin que efectuaremos con mayorfrecuencia. Para consultar la informacin SQL pone a nuestra disposicin la sentencia SELECT.

    La sentencia SELECTLa sentencia SELECTnos permite consultar los datos almacenados en una tabla de la base de datos.El formato de la sentencia select es:

    Veamos por partes que quiere decir cada una de las partes que conforman la sentencia.

    Significado

    SELECT Palabra clave que indica que la sentencia de SQL que queremos ejecutar es de seleccin.ALL Indica que queremos seleccionar todos los valores.Es el valor por defecto y no suele especificarse casi

    nunca.DISTINCT Indica que queremos seleccionar slo los valores distintos.FROM Indica la tabla(o tablas) desde la que queremos recuperar los datos. En el caso de que exista ms

    de una tabla se denomina a la consulta "consulta combinada" o "join". En las consultas combinadases necesario aplicar una condicin de combinacin a travs de una clusula WHERE.

    WHERE Especifica una condicin que debe cumplirse para que los datos sean devueltos por la consulta.

    Admiten los operadores lgicosANDy OR.GROUP BY Especificala agrupacin que se da a los datos. Se usa siempre en combinacin con funciones

    agregadas.

  • 8/10/2019 Servidor SQL Server-1

    46/101

    Pgina 46de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    HAVING Especifica una condicin que debe cumplirse para los datosEspecfica una condicin que debecumplirse para que los datos sean devueltos por la consulta. Su funcionamiento es similar al deWHERE pero aplicado al conjunto de resultados devueltos por la consulta. Debe aplicarse siempre

    junto a GROUP BY y la condicin debe estar referida a los campos contenidos en ella.ORDER BY Presentael resultado ordenado por las columnas indicadas. El orden puede expresarse con ASC

    (orden ascendente) y DESC (orden descendente). El valor predeterminado esASC.

    Ejemplo

    La clusula WHERE

    La clusula WHEREes la instruccin que nos permite filtrar el resultado de una sentencia SELECT. Habitualmenteno deseamos obtener toda la informacin existente en la tabla, sino que queremos obtener slo la informacin quenos resulte til es ese momento. La clusula WHEREfiltra los datos antes de ser devueltos por la consulta.

    MOSTRAR TODOS LOS REGISTROSSelect * From Empleado

    FILTRAR CAMPOSSelect id_Empleado,Nombre

    From Empleado

    FILTRAR Y AGRUPAR POR NOMBRESelect id_Empleado,NombreFrom Empleado Order By Nombre

    FILTRAR A LOS EMPLEADOS QUE GANEN DE5000 A MSSelect * From Empleado

    Where Salario>=5000

    FILTRAR A LOS EMPLEADOS QUE GANEN DE3000 A MENOSSelect * From Empleado

    Where Salario=2000 andSalario(Select AVG(Salario) From

    Empleado)

    MOSTRAR MAYOR SALARIOSelect Max(Salario) AS ALTOFrom Empleado

    MOSTRAR MENOR SALARIOSelect Min(Salario) AS BAJO

    From Empleado

  • 8/10/2019 Servidor SQL Server-1

    47/101

  • 8/10/2019 Servidor SQL Server-1

    48/101

    Pgina 48de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Estructura de Cada Tabla

    Tabla: CATEGORIASTabla: CLIENTES

    Tabla: COMPAIASDEENVIOS

    Tabla: DETALLESDEPEDIDOSTabla: EMPLEADOS

    Tabla: PEDIDOS

  • 8/10/2019 Servidor SQL Server-1

    49/101

  • 8/10/2019 Servidor SQL Server-1

    50/101

    Pgina 50de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    04 Mostrar los productos donde el intervalo de precio sea de 12 a 15 solesSelect IdProducto,NomProducto,PrecioUnidad From dbo.ProductosWhere PrecioUnidad >=12 And PrecioUnidad =70

    06 Mostrar los productos donde el precio sea menor igual a 5 solesSelect IdProducto,NomProducto,PrecioUnidad From dbo.ProductosWhere PrecioUnidad =100 AND IdProveedor=17

    19 Mostrar el producto de mayor precioSelect IdProducto,NomProducto,Stock,IdProveedor

    From ProductosWhere Stock Between 100 and 150AND NomProducto LIKE 'C%'

  • 8/10/2019 Servidor SQL Server-1

    51/101

    Pgina 51de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    5 Consultas de Actualizacion I

    El comando UPDATE puede ser utilizado para modificar informacin contenida dentro de una tabla.Cada ao, la compaa les da a todos los empleados un incremento del 3% sobre el salario. El siguientecomando SQL podra ser utilizado para aplicar esto a todos los empleados de la base de datos:

    Vamos a trabajar con la tabla CompaiasDeEnvios

    CASO 1

    La empresa United Packagedecide cambiar de razn social por motivos econmicos. Su nueva razn social ser UnitedInternational Ud. Deber aplicar una consulta de actualizacin para realizar dicha modificacin.

    UPDATE dbo.CompaasDeEnvosSET NomCompaa='United International'

    Where IdCEnvos=2

    CASO 2

    La empresa Wester JuniorTambin cambia de razn social a London Union

    UPDATE dbo.CompaasDeEnvos

    SET NomCompaa='London Union'Where IdCEnvos=5

    CASO 3

    La Empresa Speedy ExpressCambia de numero telefonico a 0808-8025-852

    UPDATE dbo.CompaasDeEnvosSET Telefono='0808-8025-852'

    Where IdCEnvos=1

    CASO 4

    La empresa Federal Shippingdecide cambiar de razn social a Federal Peruana y de nmero telefnico a 330-1012

    UPDATE dbo.CompaasDeEnvosSET NomCompaa='Federal Peruana',

    Telefono='330-1012'Where IdCEnvos=3

    Aqu Tenemos los registros de latabla de Compaa de EnvosLos datos sern modificados

    segn lo requiera las empresasLos datos se actualizarn por

    necesidad del usuario

    Despus de haber ejecutado los 4 casos.

    La tabla Compaa de Envostuvo ciertasmodificaciones en su informacin

    haciendo

    Uso de Consultas de Actualizacin

  • 8/10/2019 Servidor SQL Server-1

    52/101

    Pgina 52de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    6 Consultas de Actualizacion II

    Mostrar lo siguientes datos:

    Select IdEmpleado,Apellidos,Nombre,TelDomicilio

    From dbo.Empleados

    01 Modificar los apellidos y nombre del Empleado donde su cdigo es 1UPDATE dbo.Empleados

    SET Apellidos='Pandal',Nombre='Jhonny'WHERE IdEmpleado=1

    02 Modificar los 3 campos del empleado donde su cdigo es 2UPDATE dbo.Empleados

    SET Apellidos='Gates',Nombre='Bill',TelDomicilio='985-965-845'WHERE IdEmpleado=2

    03 Modificar fecha de contratacin del empleado Jhonny PandalUPDATE dbo.Empleados

    SET FechaContratacion='12/03/2006'WHERE IdEmpleado=1

    04 Mostrar cdigo, nombres y telfono de empleados. Agrupado por el segundo campo calculadoSelect IdEmpleado,Nombre+SPACE(3)+Apellidos AS[Nombres y Apellidos],FechaContratacion,TelDomicilio

    From dbo.Empleados

    05 Mostrar cdigo, nombres, fecha contratacin, telfono de empleados.Agrupado por el segundo campo calculadoSelect IdEmpleado,Nombre+SPACE(3)+Apellidos AS [Nombres y Apellidos],TelDomicilioFrom dbo.Empleados Order By 2

    Ahora vamos a modificar los

    datos de los empleados.

    Cada vez que ejecutes una consulta

    verifica que los datos realmente se

    hayan actualizado. UPDATE nos permite

    modificar registros existentes.

    NO LO OLVIDES

  • 8/10/2019 Servidor SQL Server-1

    53/101

  • 8/10/2019 Servidor SQL Server-1

    54/101

    Pgina 54de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Vamos a actualizar los datos:

    UPDATE dbo.ProductosSET PrecioUnidad=PrecioUnidad-(PrecioUnidad*0.50)

    WHERE IdCategoria =2 AND Stock >=50

    Como pueden ver los datos actualizados cumplen el criterio detallado.

    CASO 6La empresa decide poner un precio de 15 soles a todas las marcas de las cervezas que vende. Debesmodificar dichos precios.

    Mostrando datos Antes:

    Select IdProducto,NomProducto,PrecioUnidad,Stock,IdCategoria From dbo.Productoswhere NomProducto LIKE 'Cerveza%'

    Vamos a actualizar los datos:

    UPDATE dbo.ProductosSET PrecioUnidad=15

    WHERE NomProducto LIKE 'Cerveza%'

    Una consulta de actualizacin depende de los criterios que deben de cumplir dicha modificacin. Es importante teneren cuenta que para poder modificar registros primero debes tener un respaldo. Pues los datos modificados nopueden ser restaurados.

    Una sentencia que NO DEBES EJECUTAR NUNCA

    UPDATE dbo.ProductosSET NomProducto='Impresora Canon'

  • 8/10/2019 Servidor SQL Server-1

    55/101

    Pgina 55de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    8 Consulta de Eliminacin

    Utilizado para eliminar datos dentro de una tabla. Desafortunadamente, los ltimos ingresos de lacorporacin reportan disminucin en el desempeo, esto ha causado que Juan Prez sea despedido. El

    comando DELETE con la clusula WHERE puede ser utilizado para eliminar su registro de la tabla de personal:

    01 la empresa decide eliminar de su data todos los productos suspendidos

    Select * From dbo.ProductosWhere Suspendido=0

    02 la empresa decide eliminar de su data los productos acabados

    Delete From dbo.ProductosWhere Stock=0

    03 la empresa decide eliminar de su data todos los productos en pedido menores igual a 40 que pertenezcanA la categora 1

    Delete From dbo.ProductosWhere CantEnPedido

  • 8/10/2019 Servidor SQL Server-1

    56/101

    Pgina 56de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    02.- Mostrar codigo y nombre del producto. ademas el nombre de la empresa yel nombre del empleado de la empresa proveedora. Ademas configurar el ancabezado conALIAS

    Select P.IdProducto AS [COD PRODUCTO],P.NomProducto AS [NOMBRE DEL PRODUCTO],PR.NomEmpresa AS [EMPRESA],PR.NomEmpleado AS [NOMBRE DE EMPLEADO]

    From Productos AS P INNER JOIN Proveedores AS PR

    ON P.IdProveedor =PR.IdProveedor

    Resultado:

    DESCRIPCION:

    a) Una consulta multitablas requiere de los campos de cada tabla en la seccin SELECT.b) Luego la unin de las tablas que intervienen en dicha consultas. Las cuales estn unidas con la unin INNER JOIN

    estas tablas deben estas relacionadas por un campo comn.c) La instruccin ON en la cual comparamos los dos campos comunes de dichas tablas.

    03.- Adems podemos filtrar este resultado acompaando a esta consulta con la instruccin WHERE

    Select P.IdProducto AS [COD PRODUCTO],P.NomProducto AS [NOMBRE DEL PRODUCTO],PR.NomEmpresa AS [EMPRESA],PR.NomEmpleado AS [NOMBRE DE EMPLEADO]

    From Productos AS P INNER JOIN Proveedores AS PRON P.IdProveedor =PR.IdProveedorWhere PR.NomEmpleado ='Wendy Mackenzie'

    Resultado:

    04.- Mostrar El nombre de la categoria. ademas nombre y precio del producto de dicha categoria

    Select C.NomCategoria,PD.NomProducto,PD.PrecioUnidadFrom Categorias AS C INNER JOIN Productos AS PDON C.IdCategoria =PD.IdCategoria

    Resultado:

    WHERE

  • 8/10/2019 Servidor SQL Server-1

    57/101

  • 8/10/2019 Servidor SQL Server-1

    58/101

    Pgina 58de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    07.- Mostrar la cantidad de productos vendidos. Clasificado por el nombre de la categora. para obtener esteresultado debemos hacer el recorrido desde la tabla detallesdepedidohacia la tabla productosy de la tablaproductos hacia la tabla categorasy as obtener los datos para los campos seleccionados

    Select C.NomCategoria AS CATEGORIA,COUNT(DT.IdProducto) AS CANTIDADFrom DetallesDePedidos AS DT INNER JOIN Productos AS PON DT.IdProducto = P.IdProducto

    INNER JOIN Categorias AS CON C.IdCategoria =P.IdCategoria

    Group By C.NomCategoria

    Resultado:

    08.- Mostrar la cantidad de productos vendidos. Clasificado por el nombre del proveedor. Para obtener esteresultado debemos hacer el recorrido desde la tabla detallesdepedidohacia la tabla productosy de la tablaproductos hacia la tabla proveddoresy as obtener los datos para los campos seleccionados

    Select PR.NomEmpresa AS CATEGORIA,COUNT(DT.IdProducto) AS CANTIDADFrom DetallesDePedidos AS DT INNER JOIN Productos AS P

    ON DT.IdProducto = P.IdProducto

    INNER JOIN Proveedores AS PRON PR.IdProveedor =P.IdProveedor

    Group By PR.NomEmpresa

    Resultado:

  • 8/10/2019 Servidor SQL Server-1

    59/101

    Pgina 59de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    09.- Mostrar cdigo y nombre del producto. Adems de el pas y telfono de dichos productos. Se debe haceruna bsqueda por digito del lado izquierdo

    SELECT P.IdProducto,P.NomProducto,PR.Pais,PR.TelefonoFROM Proveedores AS PR INNER JOIN Productos P

    ON PR.IdProveedor = P.IdProveedorWHERE P.NomProducto LIKE 'Ca%'

    Resultado:

    Analizando La Consulta

    10.- Mostrar Cantidad de Productos Pedidos Por Categora

    Select C.NomCategoria AS CATEGORIA,COUNT(DT.IdProducto) AS CANTIDADFrom DetallesDePedidos AS DT INNER JOIN Productos AS P

    ON DT.IdProducto = P.IdProductoINNER JOIN Categorias AS C

    ON C.IdCategoria =P.IdCategoriaGroup By C.NomCategoria

    11.- Mostrar Cantidad de Productos Pedidos Por Proveedor

    Select PR.NomEmpresa AS PROVEEDOR,COUNT(DT.IdProducto) AS CANTIDADFrom DetallesDePedidos AS DT INNER JOIN Productos AS P

    ON DT.IdProducto = P.IdProductoINNER JOIN Proveedores AS PR

    ON PR.IdProveedor =P.IdProveedorGroup By PR.NomEmpresa

    12.- Mostrar cdigo y nombre de producto. Adems del pas y telfono del proveedor. En nombre de productodebe iniciar con las letras CA

    SELECT P.IdProducto,P.NomProducto,PR.Pais,PR.TelefonoFROM Proveedores AS PR INNER JOIN Productos P

    ON PR.IdProveedor = P.IdProveedorWHERE P.NomProducto LIKE 'Ca%'

  • 8/10/2019 Servidor SQL Server-1

    60/101

    Pgina 60de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    13.- Mostrar todos los pedidos de la empresa

    Select*From Pedidos

    14.- Mostrar el pas hacia donde es su destino de todos los pedidos

    Select PaisDest From Pedidos

    15.- Mostrar la cantidad de pases que son clientes

    Select COUNT(Distinct(PaisDest)) FROM Pedidos

    16.- Mostrar el nombre de los pases clientes. El nombre de debe repetirse

    Select Distinct(PaisDest) FROM Pedidos

    17.- Mostrar cdigo, apellido, nombre y edad(campo calculado) de los empleados

    Select IdEmpleado,Apellidos,Nombre,(YEAR(GETDATE())-YEAR(FechaNacimiento)) AS EDADFrom Empleados

    18.- Mostrar cdigo, apellido, nombre y edad de los empleados a partir de los 50 aos de edad

    Select IdEmpleado,Apellidos,Nombre,(YEAR(GETDATE())-YEAR(FechaNacimiento)) AS EDAFrom Empleados

    Where(YEAR(GETDATE())-YEAR(FechaNacimiento))>=50

    19.- Mostrar el 25% de los empleados de la empresa

    Select Top 25 Percent * From Empleados

    20.- Mostrar empleados donde su edad comprenda del 15/01/1950 hasta 15/01/1960

    Select*From EmpleadosWhere FechaNacimiento BETWEEN '15/01/1950' AND '15/01/1960'

    21.- Mostrar pedidos del 01/09/1997 Al 31/12/1997 que se realizo dicho pedido

    Select IdPedido,FecPedido,FecEntrega,FecEnvoFrom Pedidos

    Where FecPedido BETWEEN '01/09/1997' AND '31/12/1997'

    22.- Mostrar la cantidad de pedidos realizados del 01/09/1997 al 31/12/1997

    Select COUNT(IdPedido) CANTIDADFrom Pedidos

    Where FecPedido BETWEEN '01/09/1997' AND '31/12/1997'

    23.- Mostrar ciudad y regin de francia

    Select Region,Ciudad From ProveedoresWhere Pais='Francia'

    24.- Mostrar cdigo y fecha de entrega. Adems del nombre de la compaa que los enviara. Solo debemostrar los envos de la compaa Speedy Express y la fecha de entrega debe ser a partir de la fechaindicada 01/06/1998

    Select P.IdPedido,P.FecEntrega,CE.NomCompaaFrom CompaasDeEnvos AS CE INNER JOIN Pedidos AS P

    On CE.IdCEnvos =P.IdCompEnvoWhere CE.NomCompaa ='Speedy Express' AND P.FecEntrega >='01/06/1998'

  • 8/10/2019 Servidor SQL Server-1

    61/101

  • 8/10/2019 Servidor SQL Server-1

    62/101

    Pgina 62de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    27. mostrar los clientes donde la region inicia con la letra a y c

    28. mostrar codigo, ciudad y pais de la tabla pedidos.ademas el campopais de la tabla clientesdonde el clientesea del pais dealemania

    29. mostrar codigo y nombre del productodonde el precio sea mayor igual a 15 y el stock sea mayor a 16

    30. mostrar los productos activos

    31. mostrar los proveedores que no pertenescana espaa ni japon

    32. mostrar los clientes de la ciudad de madrid y berlin

    33. mostrar la cantidad de pedidos que realizo cada empleado

    34. incrementar el preciounidad de los productos a un 75% de la categoria 1 y 2

    35. cambiar el nombre de cervezatibetana barleypor cerveza pilsendel producto de codigo 2

    36. cambiar apellido y nombre de buchana stevenpor carlos tevezdel empleado de codigo 5

    37. asignarle region lima a los empleados que no tengan region

    38. la extension sera 088para los empleados de eeuu

    39. modificar la fecha de envioa 08/10/2011 de los pedidos que van hacia belgica

    40. reducir el stock menos 3de los productos de la categoria 5

    41. insertar 3 registros a la tabla empleados

    42. insertar 15 registros a tabla productos

    43. insertar 3 registros a la tabla pedidos asociado con detalles

    44. mostrar producto de la categoria 1 donde el precio unidad sea superior a 26 y cantidaden pedido sea 0

    45. mostrar los productos donde la cantidad por unidad sean FRASCOS

    46. mostrar los productos donde la categoria sea 2 y 3 ademas esten suspendido

    47. mostrar los productos que no tengan stock

    48. mostrar los pedidos donde el monto sea menor al promedio y el pais sea mexico

    49. mostrar los empleados que no tengan ningun pedido

    50. eliminar los productos de Peru

    Fecha deEntrega:

    Un conocimiento adecuado de las consultas sobre las

    tablas de una base de datos y saber qu informacin

    desea uno obtener de dichas consultas es una parte

    fundamental para poder realizar los siguientes captulos

    NO OLVIDARLO practica es lo que hace al maestro.

  • 8/10/2019 Servidor SQL Server-1

    63/101

    Pgina 63de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 Optimisando la base de datos con Indices 64

    2 CREATE INDEX 65

    3 ndices en un Mundo Real100.000 66

    4 Agregando ndices en la Tabla Usuarios 68

    5 Creando ndices en Wards Supermarket 69

    6 Seguridad y Rendimiento con Vistas 70

    7 Creacin de Sinnimos 71

    Propuesto Practico 06 71

    CAPITULO 6

    Objetivos.- aprender a aplicarle rendimientos

    a nuestras tablas. Cuando estas tengan un

    gran cantidad de registros.

    Recuerda que la lentitud es un factor negativo

    en sistemas de la inf.

  • 8/10/2019 Servidor SQL Server-1

    64/101

    Pgina 64de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    1 Optimisando la base de datos con Indices

    Introduccin a los ndices.-

    Un ndice es una estructura de datos que permite acceder a diferentes filas de una misma tabla a travs de un campo(o campos clave). Un ndice permite un acceso mucho ms rpido a los datos.

    Para entender lo que es un ndice debemos saber primero como se almacena la informacin internamente en lastablas de una base de datos. Cada tabla se divide en pginas de datos, imaginemos un libro, podramos escribirlo en"una sola hoja enorme" al estilo pergamino egipcio, o bien en pginas a las que podemos acceder rpidamente atravs de un ndice. Est idea es la que se aplica en el mundo de las bases de datos, la informacin esta guardadaen una tabla (el libro) que tiene muchas hojas de datos (las pginas del libro), con un ndice en el que podemosbuscar la informacin que nos interesa.

    Los ndices se actualizan automticamente cuando realizamos operaciones de escritura en la base de datos. Este esun aspecto muy importante de cara al rendimiento de las operaciones de escritura, ya que adems de escribir losdatos en la tabla se escribirn tambin en el ndice. Un nmero elevado de ndices har ms lentas estasoperaciones. Sin embargo, salvo casos excepcionales, el beneficio que aportan los ndices compensa (de largo) esta

    penalizacin.

    Las sentencias de SQL para manipular ndices son: CREATE INDEX Y DROP INDEX

    La palabra clave UNIQUE especfica que no pueden existir claves duplicadas en el ndice.ASC| DESC especifican el criterio de ordenacin elegido, ascendente o descendente, por defecto es ascendente.

    Ejemplo

    En el apartado dedicado a la definicin de tablas usaremos la tabla Clientes de la base de datos Wards Supermarket,este ejemplo crea un ndice nico en el campo NOMBREEMPLEADO. Esto nos permitir buscar mucho ms rpidopor el campo NOMBREEMPLEADO y nos asegurar que no tengamos dos NOMBREEMPLEADO iguales.

    Cmo Eliminar ndices?

    DROP INDEX Clientes.UIX_Clientes_NombreEmpleado

    Cada tabla tiene unas carpetas ndices.

    Ah se guardan estos objetos

  • 8/10/2019 Servidor SQL Server-1

    65/101

    Pgina 65de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    2 CREATE INDEX

    La sentencia CREATE INDEXsirve para crear un ndicesobre una o varias columnas de una tabla.

    ASC: la clusula ASCes la que se asume por defectoe indica que el ordenelegido para el ndice esascendente(en orden alfabtico si la columna es de tipo texto, de menor a mayor si es de tipo numrico, en orden cronolgico

    si es de tipo fecha). DESC: indica orden descendente, es decir el orden inverso al ascendente.Ejemplo:

    Crea un ndice llamado ind1 sobre la tabla empleados formado por las columnas ciudad, regin y fecha denacimiento. Este ndice permite tener ordenadas las filas de la tabla empleados de forma que aparezcan losempleados ordenados por ciudad, dentro de la misma ciudad por reginy dentro de la misma regin por edad y delms joven al ms mayor.

    CREATE INDEX ind1ON Empleados (Ciudad, Region ASC, FechaNacimiento DESC)

    Create Index Ux_Cargo_Emp

    ON Clientes(CargoEmpleado)

    Create Index Ux_Nom_CatON Categorias(NomCategoria)

    Create Unique Index Ux_Nom_Cat_UnicoON Categorias(NomCategoria)

    Create NONCLUSTERED Index Ux_Nombre_CompaiaON CompaasDeEnvos(NomCompaa)

    Create CLUSTERED Index Ux_telefono_CompaiaON CompaasDeEnvos(Telefono)

    Create NONCLUSTERED Index Ux_Pedido_FechasON Pedidos(FecPedido,FecEntrega,FecEnvo)

    Verificar la existencia de los indices en laCarpeta indice de cada tabla.

    DROP INDEX

    La sentencia DROP INDEXsirve para eliminar un ndicede una tabla. Se elimina el ndice pero no las columnasque lo forman.

    La sintaxises la siguiente:

    Ejemplo:

    DROP INDEX Empleados.Ux_Nom_Cat_Unico

    Elimina el ndice que habamos creado en el ejemplo anterior.

    DESACTIVAR Y ACTIVAR INDICES

    VELOCIDAD DE DATOS

    Los INDICES se crean dentro de una tabla

    cuando el volumen de datos aumenta y es

    necesario un mecanismo de bsqueda de

    datos eficiente.

    Hay momentos en donde se debe

    ingresar informacin en lotes dentro de

    una tabla. Eso implica miles de registrospara lo cual debemos desactivar los

  • 8/10/2019 Servidor SQL Server-1

    66/101

    Pgina 66de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    3 ndices en un Mundo Real100.000

    Primero debemos entender que los ndices aunque perjudican un poco el ingreso de datos dentro de una tabla. Lafuncin ms importante es la optimizacin que nos brinda al momento de hacer consultas. Porque todo sistemarealiza muchas bsquedas en una base de datos.

    Y cm o se m ide la veloc idad de res pues ta de una consu lta?Pues cuando tenemos una gran cantidad de registros.

    Ejercicio 01

    A.- Vamos a crear una tabla de nombre un usuario y le vamos a agregar 100.000 registros de una sola ejecucin conla ayuda del procedimiento almacenado

    El cual me permite realizar el llenado de dichos registros. Bueno comencemosCrear a Tabla Usuario

    B.-Ahora desde el Analizador de consultas ejecutas el procedimiento almacenado dbo.Usp_CrearUsuariosque seencuentra en tu DB Wards Supermarket.

    dbo.Usp_CrearUsuarios 100000, 10000, 600

    Una vez ejecutado esta lnea de script te recomiendo vayas a tomarte un cafeci too unhelado de vain i l la con cho co chip (depende com o te sientas). Porque la creacin delos registros demorara y eso depende del hardware que tiene

    Nota:como veras en la imagen se demor 52 segundosen el llenado de datos.Esperemos superar ese tiempo en tu computador.

    EL TIEMPO ES UN FACTOR IMPORTANTE EN LOS SISTEMAS DE INFORMACIONNO OLVIDARLO.Mensaje exitoso

    C.-

    dbo.Usp_CrearUsuarios

  • 8/10/2019 Servidor SQL Server-1

    67/101

    Pgina 67de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    Verificar los registros ingresados

    Select * From Usuario

    Sin lugar a dudas, el desempeo de una aplicacin est directamente relacionado al buen o mal diseo de los ndicesde la base de datos.

    Esta tabla no tiene ningn ndice creado, por lo cual SQL Server tratar la tabla como un HEAP. Un heapes unaestructura de datos que almacena la posicin fsica en la que se almacen cada nueva fila dentro de las pginas

    asignadas a la tabla.

    Puesto que esta tabla no tiene ningn tipo de ndice, es bastante eficientepara agregar nuevas filas a la tabla peromuy ineficientepara encontrar una fila especfica, esto se debe a que es necesario leer toda la tabla para obtener elresultado deseado.

    Para ilustrar esto, realicemos el siguiente experimento: utilizando el procedimiento almacenadoUsp_CrearUsuarioscrearemos 100.000 usuarios de los cuales el 10.000 no estn activos y su fecha de creacinesta en los ltimos 600 das.

    D.- Ahora realicemos una consulta para validar el usuario al inicio de sesin del sistema.

    SELECT Clave, Activo FROM Usuario WHERE NombreUsuario = 'PANDAL123'

    La respuesta probablemente funcione bastante rpido, ya que al recin haber creado los datos, todas estas filasestn en memoria,pero veamos el plan de ejecucin de esta consulta presionando el botn incluir plan deejecucin real.De la barra de herramientas del SQL Server Management Studio y luego ejecutando la mismaconsulta.

  • 8/10/2019 Servidor SQL Server-1

    68/101

    Pgina 68de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    4 Agregando ndices en la Tabla Usuarios

    Vuelvo a ejecutar:

    SELECT Clave, Activo FROM UsuarioWHERE NombreUsuario = 'PANDAL123'

    Y veo el plan de ejecucin

    Ahora creare un indice

    Create Index IDX_NombreUsuarioON Usuario(NombreUsuario)

    Luego volvere a ejecutar

    SELECT Clave, Activo FROM UsuarioWHERE NombreUsuario = 'PANDAL123'

    Y Veo el plan de ejecucion

    ANTES DEL INDICE

    DESPUES DEL INDICE

  • 8/10/2019 Servidor SQL Server-1

    69/101

    Pgina 69de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    5 Creando ndices en Wards Supermarket

    Sobre tabla productos:

    Ejemplos

    A. Crear un ndice no clster sencilloEl ejemplo siguiente crea un ndice no clster en la columna NomProductoy Preciode la tabla Productos

    IF EXISTS (SELECT name FROM sys.indexesWHERE name = N'IX_ProductoNomPrecio')

    DROP INDEX Productos.IX_ProductoNomPrecioGOCREATE INDEX IX_ProductoNomPrecio

    ON Productos(NomProducto,PrecioUnidad)GO

    B. Crear un ndice compuesto no clster sencilloEl ejemplo siguiente crea un ndice compuesto no agrupado en las columnas Stock y Cant en Pedido de la tablaProductos

    IF EXISTS (SELECT name FROM sys.indexesWHERE name = N'IX_Stock_CantPed')

    DROP INDEX Productos.IX_Stock_CantPedGOCREATE NONCLUSTERED INDEX IX_Stock_CantPedON Productos (Stock,CantEnPedido)GO

    C. Crear un ndice no clster nicoEl ejemplo siguiente crea un ndice no clster nico en la columna Name de la tabla Production.UnitMeasure. El ndice

    exigir unicidad en los datos insertados en la columna Name.

    IF EXISTS (SELECT name from sys.indexesWHERE name = N'UniNomProducto')

    DROP INDEX Productos.UniNomProductoGOCREATE UNIQUE INDEX UniNomProducto

    ON Productos(NomProducto)GO

    EXEC Sp_HelpIndex ProductosMuestra los indices de la tabla productos

    EXEC sp_SpaceUsed ProductosMuestra el espacio que ocupa la tabla productos

    http://void%280%29/http://void%280%29/http://void%280%29/http://void%280%29/
  • 8/10/2019 Servidor SQL Server-1

    70/101

    Pgina 70de 101

    RPP - Taller de Base de Datos I

    Docentes: Lic. Luis M. Rojas Ziga Lic. Zambrano Arce, Julio

    Lic. Ramiro De la Cruz Lic. Israel Huaraca

    6 Seguridad y Rendimiento con Vistas

    En el modelo de datos relacional la forma de guardar la informacin no es la mejor para ver los datosUna vista es una consulta, que refleja el contenido de una o ms tablas, desde la que se puede acceder a los datoscomo si fuera una tabla. Dos son las principale