Beruflich Dokumente
Kultur Dokumente
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
PROCEDIMIENTOS ALMACENADOS
1. OBJETIVO:
Utilizar variables e instrucciones de control de flujo para realizar operaciones sobre los datos.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
c. Realizar una Iteracin del bucle que sea definida por una variable y que imprima los n
valores establecidos para el bucle, por ejemplo si n es igual a 10 (n=10), se debe
imprimir: 1 2 3 4 5 6 7 8 9 10
Para crear bucles en primer lugar se deben declarar las variables, despus se utiliza el comando
while que permite crear un ciclo mediante una condicin y en el contenido del while se declaran las
instrucciones que se realizarn mientras se cumpla la condicin.
En este ejemplo se declaran las variables contador y n, contador es la variable que en cada iteracin
se le ir sumando 1 y n es el nmero hasta el cual debe llegar el contador.
Dentro del ciclo while se declaran los comandos begin y end, esto se debe a que dentro del while se
encuentran ms de una lnea de instrucciones.
Crear la tabla Lugar como se indica a continuacin y crear los siguientes procedimientos
almacenados:
BASES DE DATOS I
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
Alexis Lema
INFORME DE LABORATORIO # 7
El siguiente paso es declarar la o las variables locales y siguiente a eso escribir la
instruccin que se desea realizar, en caso de que exista ms de una lnea de instruccin, es
necesario agregar los comandos begin y end.
Para ejecutar el proceso se escribe exec seguido del nombre del proceso y los valores que se van a
guardar en la tabla.
Como se puede observar al ejecutar el procedimiento se muestra un mensaje que nos informa que
una fila ha sido afectada, este mensaje puede ser modificado u omitido con la funcin set nocount
on o con la funcin print para imprimir un mensaje al ingresar los datos.
Para realizar esta modificacin se requiere utilizar el comando alter y escribir el nuevo contenido de la
tabla.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
b. Actualizar datos
Para crear el proceso actualizar datos se procede de la misma manera que en Agregar Tuplas, se
declaran las variables locales y en el contenido de las instrucciones se agrega el comando update
seguido del nombre de la tabla y set donde se igualan los nombres de las columnas de la tabla a las
variables locales, para este proceso se modificar la tupla mediante el Id de la misma.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
c. Eliminar Registros
Para el proceso de eliminar registros se realiza el mismo procedimiento que en el proceso de
actualizar datos, pero en lugar de declarar varias variables solo se declara el Id y se cambia el
comando update por el comando delete, la eliminacin se la realiza ingresando el Id de la tupla que
desea eliminar.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
En las funciones if se declara una instruccin, en caso de que esta no cumpla existe la funcin else
que es donde se procede a realizar otras instrucciones cuando no se cumple el if.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
Crear la siguiente relacin en la base de datos Ventas.
En primer lugar se debe crear la tabla Producto, ya que para que exista la relacin
entre la tabla Producto y Pedido, se debe crear la clave primaria de Producto para
que la tabla Pedido la herede.
El atributo Id_Producto es la clave primaria, tiene tipo de dato INT y es
autoincremental de 1 y el primer Id empieza en 555.
NombreProducto es de tipo varchar, no contiene valores NULL y para establecer
que los caracteres ingresados sean mas de 4, se utilizan las funciones check y len,
para no permitir espacios en blanco a la izquierda y a la derecha se usa las
funciones ltrim y rtrim.
FechaProducto es de tipo de dato INT y no permite valores NULL.
El atributo PrecioProducto es de tipo de dato MONEY ya que almacena un valor
monetario, no permite valores NULL y para establecer que el valor ingresado sea
mayor que 0 se usa la funcin check.
En StockProducto se asinga el tipo de dato INT, no permite valores NULL y para
que los valores ingresados sean mayores o igual que 0 se lo hace mediante la
funcin check.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
Para crear la relacin en la tabla Pedido se crea una clave fornea de Id_Producto,
Para crear la tabla Producto se usa el comando create table, seguido del nombre
de la tabla. Para el atributo Id_Pedido se la declara como tipo de dato INT, primary
key con identity (1,1) y al ser la clave primaria no puede tener valores NULL.
Para CantidadPedido se lo declara como tipo de dato INT, que no permita valores
NULL y la restriccin para que sea mayor que 0 se lo hace con la funcin check.
En LugarPedido se lo declara como char, no puede tener valores null y al igual que
en CantidadPedido se utiliza la funcin check para comprobar que se ingrese
solamente entre los valores permitidos.
Para crear la relacin entre la tabla Producto y Pedido se crea una clave fornea
de Id_Producto en Pedido. Esta clave es de tipo de dato INT y no permite valores
NULL.
A base del esquema anterior, crear un procedimiento almacenado que permita realizar
un PEDIDO. Este procedimiento deber verificar si el cdigo del producto ingresado
existe en la tabla PRODUCTO, adems, si la cantidad a pedir es mayor a la existencia
del producto, el procedimiento deber enviar un mensaje que diga EXISTENCIA DEL
PRODUCTO INSUFICIENTE. En caso que la cantidad a pedir sea menor o igual
deber modificar el valor de la existencia.
Crear primero un procedimiento almacenado denominado DatosPedido para que
despliegue la informacin de la tabla anterior.
Como primer paso para esta actividad se crea el proceso DatosPedido, donde mediante el Id del
Producto se selecciona el nombre y stock del pedido.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
El siguiente paso es crear el proceso RealizarPedido, en primer lugar se crean las variables locales
@Id_Producto, @CantidadPedido y @LugarPedido, cada una con su respectivo tipo de dato.
Es necesario agregar la funcin begin ya que se implementarn varias lneas de cdigo, a
continuacin se declaran las variables @Existe y @Stock tipo INT, las cuales servirn para determinar
si el producto existe y para contabilizar el stock.
En la seccin de set @Existe se comprueba que el Id del producto exista en la tabla Producto, en la
seccin select se asigna el stock del producto con el Id ingresado a la variable @Stock.
Es necesario implementar la sentencia if con la que se comprueba si el producto existe o no, en caso
de que no exista se muestra un mensaje donde indica que no es posible realizar el pedido.
Si el producto existe se aade la funcin else y dentro de esta otro if que comprueba que la cantidad
del pedido del producto sea menor que la cantidad del stock.
Si se cumple que la cantidad de producto sea mayor que la del pedido, se crea otro if donde se
ejecuta el proceso DatosPedido y se insertan las variables en la tabla Pedido, es importante agregar
el comando Update para actualizar los datos de la tabla Producto donde se realiza el procedimiento
de quitar la cantidad del pedido al stock del producto y por ltimo se vuelve a ejecutar el proceso
DatosPedido.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
3. CUESTIONARIO DE INVESTIGACIN:
WHILE: En este ejemplo se realiza la suma de un nmero hasta llegar a un valor definido, al final
imprime un mensaje sealando el valor del nmero hasta llegar al lmite.
BREAK: Esta funcin viene acompaada de la sentencia WHILE y sirve para finalizar el ciclo. En este
ejemplo se declara un nmero, mientras este nmero sea diferente de 5 se sumar 1, si llega hasta 5
el ciclo se rompe. Si se declara un nmero mayor que 5 se seguir sumando 1 a este nmero hasta
llegar a un lmite establecido.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
CASE: esta sentencia permite realizar actualizaciones o consultas condicionales, en este ejemplo se
establece una variable en la cual de acuerdo al valor establecido, imprime un mensaje indicando el
case correspondiente.
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
A base de la tabla Empleado que se encuentra a continuacin (trabajo autnomo del
laboratorio anterior), insertar por lo menos 10 empleados y realizar los siguientes
procedimientos almacenados:
Cree un procedimiento almacenado que imprima por pantalla los aos trabajados en la
empresa de un empleado. Deber de recibir por parmetro el cdigo de empleado.
Para crear el procedimiento que imprima los aos de los empleados se declara la variable
Id_Empleado que es donde ingresaremos el Id del empleado para determinar los aos que lleva
trabajando en la empresa. Se declaran tambin las variables @existe, para la comprobacin de si
existe el Id, @AnioIngreso donde se guarda el ao extrado de FechaIngresoEmpleado,
@AnioSalida donde se guarda el ao extrado de FechaSalidaEmpleado. El ao se extrae
mediante la sentencia YEAR. Si el Id ingresado no existe en la tabla Empleado se muestra un
mensaje donde seala que no es posible realizar la comprobacin.Si el Id ingresado existe se
procede a realizar un proceso donde se establece a @AniosTrabajados la resta de @AnioSalida
menos @AnioIngreso. Por tlimo se imprime los aos trabajados transformndolos a un varchar
con la sentencia cast.
BASES DE DATOS I
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
Alexis Lema
INFORME DE LABORATORIO # 7
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
Cree un pequeo mantenedor para la tabla empleado a travs de un procedimiento
almacenado (Actualizar, Insertar, Borrar)
Actualizar: en actualizar se declaran todas las variables que contiene Empleado y con el
comando update se asignan los nuevos valores ingresados. Es importante ingresar primero el Id
del empleado que se quiere actualizar los datos.
Insertar: en este proceso se declaran las variables de la tabla empleado a excepcin del Id ya que
este se genera automticamente y con el comando insert into se almacenan las variables en la tabla.
BASES DE DATOS I
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
Alexis Lema
INFORME DE LABORATORIO # 7
4. CONCLUSIONES:
Los procesos son de gran ayuda ya que estos contienen instrucciones que deben realizarse para el
ingreso, lectura de datos o una determinada accin, estos solo deben ejecutarse una sola vez
ingresando los datos que se desean almacenar, leer, modificar o eliminar evitando as crear el cdigo
de nuevo, ya que esto puede resultar tedioso. Los procesos de igual forma aceleran el proceso de
bsqueda para datos que tengan cierta caracterstica en comn.
5. BIBLIOGRAFA:
Microsoft
(2016)
YEAR
(Transact-SQL).
Recuperado
el
19
de
Junio
de
2016
de:
el
19
de
Junio
de
2016
de:
https://msdn.microsoft.com/es-es/library/ms186313.aspx
Microsoft
(2016)
WHILE
(Transact-SQL).
Recuperado
https://msdn.microsoft.com/en-us/library/ms178642.aspx
Microsoft (2016) Restricciones UNIQUE y restricciones CHECK. Recuperado el 19 de Junio de 2016
de https://msdn.microsoft.com/es-es/library/ms187550(v=sql.120).aspx
Microsoft (2016) Procedimientos almacenados (motor de base de datos). Recuperado el 19 de Junio
de 2016 de https://msdn.microsoft.com/es-ec/library/ms190782.aspx
Technet (2016) Using WHILE...BREAK or CONTINUE. Recuperado el 19 de Junio de 2016 de
https://technet.microsoft.com/en-us/library/ms190385(v=sql.105).aspx
6. ANEXOS:
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7
BASES DE DATOS I
Alexis Lema
Fecha de realizacin:
13 de Junio de 2016
Fecha de entrega
20 de Junio de 2016
INFORME DE LABORATORIO # 7