0% encontró este documento útil (0 votos)
289 vistas

Laboratorio 5

Este documento presenta un laboratorio sobre variables, estructuras de control de flujo y procedimientos almacenados en Transact SQL. Contiene 8 problemas o ejercicios prácticos donde se utilizan estas características de SQL para manipular datos en las tablas Products, Employees, Regions y Customers de la base de datos Northwind. Los estudiantes deben desarrollar scripts SQL para cada problema y mostrar los resultados obtenidos.

Cargado por

Emily Ortega
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
289 vistas

Laboratorio 5

Este documento presenta un laboratorio sobre variables, estructuras de control de flujo y procedimientos almacenados en Transact SQL. Contiene 8 problemas o ejercicios prácticos donde se utilizan estas características de SQL para manipular datos en las tablas Products, Employees, Regions y Customers de la base de datos Northwind. Los estudiantes deben desarrollar scripts SQL para cada problema y mostrar los resultados obtenidos.

Cargado por

Emily Ortega
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES


BASE DE DATOS 2
LABORATORIO 5
Variables, Estructuras de Control de Flujo y Procedimientos almacenados

Objetivos:
 Utilizar variables locales definidas por el usuario en el Transact SQL
 Aprender a utilizar las estructuras de control de flujo

ACTIVE LA BASE DE DATOS NOTHWIND. PARA CADA PROBLEMA


DESARROLLADO COPIE EN EL CUADRO DEL FINAL:
 EL SCRIP CON LA CREACIÓN DEL PROGRAMA O PROCEDIMIENTO
SOLICITADO Y
 LA SALIDA OBTENIDA AL INGRESAR LOS DATOS.

1. Declare una variable llamada "@nombre" de tipo "varchar(20)" y asígnele su


nombre; luego liste el contenido de la variable ( vea su contenido).

2. Usando la tabla Products, encuentre cual es el mayor y menor precio y luego


liste los mismos, usando los siguientes formatos:
 PRECIO MAYOR = 99999 PRECIO MENOR = 99999

 PRECIO MAYOR PRECIO MENOR


99999 99999 Mostrado como título de
columna y dato abajo

3. Se desea que usted liste todos los empleados


que trabajan en la empresa (BD Northwind, tabla
employees), colocando primero el nombre
completo de su título de cortesía (ejemplo en
lugar de Mrs. Colocar Señora, en lugar de Mr.
Colocar Señor, en lugar de Ms. Colocar señorita,
seguido de su primer nombre y luego su apellido,
todo esto en una sola columna.
4. Modifique el problema anterior de tal forma que en una segunda columna se
despliegue una etiqueta que diga CUMPLEAÑERO y en la columna se
despliegue el nombre del mes.
Realice el problema utilizando una
variable a la cual se le asigne un mes
en particular y el problema
despliegue el mensaje, solo para el
que cumple en el mes especificado.
Debe listarse en una segunda
columna, tal cual se ilustra.
Colocando el literal ‘mes’ y el nombre
del mes; todo en mayúscula cerrada.

5. Cree el scrip que permita verificar si existe en la tabla “Region” la región con
id =4.
Si existe debe actualizar el nombre de la región por ‘’ Norte’; si no existe,
debe insertar este nombre como un registro nuevo.
Utilice variables que le permitan modificar los valores de los campos de
comparación (región y nombre de región)
Corra su scrip y muestre sus resultados

6. Ahora cambie el valor de la región por 100 y vea que ocurre. Muestre sus
resultados.

7. Realizar un procedimiento almacenado que recibiendo como parámetro de


entrada la categoría, devuelva el precio mayor y el precio menor de los
productos. Liste el nombre de la categoría y los los precios solicitados. (Obs.
Ambas tablas están relacionadas por el campo CategoryID, BD Northwind)

8. Realice un procedimiento que permita eliminar de la tabla (Customers), un


cliente particular, si éste no tiene órdenes (no aparece en la tabla orders). El
procedimiento deberá recibir como parámetro de entrada el (CustomerID).
Si existe el cliente en la tabla ORDERS, el procedimiento debe devolver el
valor 1 (No se puede eliminar, pues tiene ordenes pendientes de entrega)
caso contrario devuelve 0 (que indica que se eliminó).
El programa principal debe recibir este indicador (1 ó 0) e imprimir si se
eliminó o no el cliente.
Pruebe su procedimiento
 con el valor ‘Lilas’ y luego
 con el valor ‘Pedro’
HOJA DE RESPUESTAS.
1

2
3
4

5
6

7 CREATE PROC Listarprecios


(@nombrecategoria varchar(30))
AS
BEGIN
DECLARE @mayorc money, @menorc money, @idc int
SELECT @idc=CategoryID
FROM Categories
WHERE CategoryName=@nombrecategoria

SELECT @mayorc=max(UnitPrice),
@menorc=min(UnitPrice)
FROM Products AS p
inner join Categories on @idc=p.CategoryID
SELECT @nombrecategoria AS 'CATEGORIA',@mayorc
AS 'PRECIO MAYOR', @menorc AS 'PRECIO MENOR'
END
EXEC Listarprecios
'BEVERAGES'
EXEC Listarprecios
'CONDIMENTS'

8 CREATE PROC Eliminarclientes


(@idec varchar(30),@resultado int output)
AS
IF EXISTS (SELECT * FROM Orders WHERE
CustomerID = @idec )
SET @resultado=1
ELSE
BEGIN
SET @resultado=0
DELETE FROM Customers
WHERE CustomerID=@idec
END
DECLARE @id varchar(10), @estado int
SET @id ='LILAS'
EXEC Eliminarclientes
@id, @estado output
IF @estado =1
SELECT 'SE HA ELIMINADO EL CLIENTE' AS
RESULTADO
ELSE
SELECT 'NO SE HA ELIMINDO EL CLIENTE' AS
RESULTADO

DECLARE @estados int, @idm varchar(10)

SELECT @idm =CustomerID


FROM Customers
WHERE ContactName like 'Pedro %'
EXEC Eliminarclientes
@idm, @estados output

IF @estados=1
SELECT 'NO SE HA ELIMINADO AL CLIENTE' AS
RESULTADO
ELSE
SELECT 'SE HA ELIMINADO AL CLIENTE' AS RESULTADO

También podría gustarte