Sie sind auf Seite 1von 8

PRIMERA PRCTICA CALIFICADA DE BASES DE DATOS II GRUPO A 1.

. Dada la lista de notas de N alumnos, con la estructura presentada, crear una consulta que devuelva los mismos datos, pero con un campo extra llamado comentario el cual contendr el siguiente comentario: Reprobado, si la nota es menor a 7; Desaprobado si la nota esta en el intervalo [7 10.5]; y Aprobado si la nota es mayor a 10.5 Tabla Temporal ID 1 2 3 N Nombre Alumno1 Alumno2 Alumno3 AlumnoN Nota 15 10 19 10 NOTA: el valor de la N es un valor arbitrario. El valor de la nota es un valor aleatorio en el intervalo [020] (Puede utilizar la funcin RAND() para insertar valores en esta tabla). No modificar la estructura de la tabla temporal propuesta El procedimiento almacenado se debe ejecutar si realizamos la siguiente instruccin DECLARE @N INT SET @N = 150 EXEC sp_ListaNotaAlumnosEnActa @N ID ---1 2 -N Nombre --------Alumno1 Alumno2 -AlumnoN Nota ----11 03 -10 Comentario -------------Aprobado Reprobado --Desaprobado

2.

Insertar en una tabla temporal los N primeros nmeros primos mayores a X, y luego devolverlos como un conjunto de datos, adjuntando como comentario la informacin respecto al Nro NroPrimo Comentario Intervalo en el cual se encuentra este nmero. Los intervalos -----------------------Son [1..50],[51..100], [101150], [151200],[201250], . 1 11 Entre 1 y 50 2 13 Entre 1 y 50 NOTA: Los valores de N y X son valores arbitrarios. .. .. Entre ... y ... DECLARE @N INT, @X INT .. 113 Entre 101 y 150 SET @N = 150 N ... ... SET @X = 10 EXEC sp_NumerosPrimosMayoresaZ @N, @X

3.

Imprimir la tabla de multiplicar de los N nmeros contenidos en una tabla temporal, de la siguiente forma(M = nmero de mltiplos a encontrar): N DECLARE @M INT, @N INT 1 4 5 8 3 4 7 10 SET @M = 2 ----------------------------------SET @N = 8 2 8 10 16 6 8 14 20 M 3 12 15 24 9 12 21 30 EXEC sp_MultiplosDeTabla @M, @N

//-----------------------------------------------------CREATE FUNCTION IntToString(@size INT, @Numero INT) RETURNS VARCHAR(100) WITH EXECUTE AS CALLER AS BEGIN DECLARE @s VARCHAR(100) SET @s = CAST(@Numero AS VARCHAR(10)) WHILE (LEN(@s) <@size) SET @s = ' ' + @s RETURN @s END //-----------------------------------------------------CREATE PROCEDURE sp_Multiplos_de_Tabla @NroMultiplos INT, @NroDatos INT AS BEGIN DECLARE @i INT DECLARE @x INT DECLARE @Nro INT DECLARE @S VARCHAR(500) SET NOCOUNT ON CREATE TABLE #Tabla1 (Nro INT)

SET @i=1 WHILE (@i<=@NroDatos) BEGIN SET @X = CAST( (RAND()* 100) AS INT) INSERT INTO #Tabla1(Nro)VALUES(@X) SET @i = @i + 1 END -------------------------------------------------DECLARE MyCursor CURSOR FOR SELECT Nro FROM #Tabla1 OPEN MyCursor SET NOCOUNT OFF FETCH NEXT from MyCursor INTO @Nro WHILE (@@FETCH_STATUS=0) BEGIN SET @S = DBO.IntToString(10,@Nro) + ': ' SET @i = 1 WHILE (@i<= @NroMultiplos) BEGIN SET @S = @S + DBO.IntToString(6,@Nro * @i) + ', ' SET @i = @i + 1 END PRINT @S FETCH NEXT from MyCursor INTO @Nro END CLOSE MyCursor DEALLOCATE MyCursor END //---------------------------------------------exec sp_Multiplos_de_Tabla 7, 10

4.

Dada una tabla temporal TempX (creada al interior de un procedimiento almacenado), tal como se la que se muestra a continuacin, modificar los datos contenidos en esta tabla, de forma tal que los datos estn ordenados ascendentemente (por la Nota). La tabla modificada debe ser mostrada en pantalla (Las notas son valores aleatorios entre 1 y 20).

Tabla Temporal
ID Nombre Nota 1 Postulante1 15 2 Postulante2 08 3 Postulante3 19 N PostulanteN 10

Tabla Temporal Modificada


ID Nombre Nota 2 Postulante2 08 N PostulanteN 10 1 Postulante 1 15 3 Postulante 3 19 Nombre -------------Postulante2 PostulanteN Postulante1 ... Postulante3 Nota ---------08 10 15 .. 19

La instruccin a ejecutar ser: DECLARE @N INT SET @N = 40 EXEC sp_OrdenarContenidoDeTabla @N

ID ---2 N 1 .. 3

CREATE PROCEDURE sp_ModificarDatos_de_Tabla @NroDatos INT AS BEGIN

DECLARE DECLARE DECLARE DECLARE

@i INT @x INT @Nota INT @Nombre VARCHAR(500)

SET NOCOUNT ON CREATE TABLE #Tabla1 (ID INT, Nombre VARCHAR(20), NOTA INT) -----------------------------------------SET @i=1 WHILE (@i<=@NroDatos) BEGIN SET @Nota = CAST( (RAND()* 20) AS INT) SET @Nombre= 'Alumno ' + CAST(@i AS VARCHAR(3)) INSERT INTO #Tabla1(ID, Nombre, Nota)VALUES(@i,@Nombre,@Nota) SET @i = @i + 1 END -----------------------------------------SELECT * INTO #Tabla2 FROM #Tabla1 ORDER BY Nota DESC -----------------------------------------DELETE FROM #Tabla1 ----- CURSORES --------------------------DECLARE MyCursor CURSOR FOR SELECT ID, Nombre, Nota FROM #Tabla2 OPEN MyCursor FETCH NEXT FROM MyCursor INTO @i, @Nombre, @Nota WHILE (@@FETCH_STATUS = 0) BEGIN INSERT INTO #Tabla1(ID, Nombre, Nota)VALUES (@i,@Nombre, @Nota) FETCH NEXT FROM MyCursor INTO @i, @Nombre, @Nota END CLOSE MyCursor DEALLOCATE MyCursor --------------------------SET NOCOUNT OFF SELECT * FROM #Tabla1 END EXEC dbo.sp_ModificarDatos_de_Tabla 20

PRIMERA PRCTICA CALIFICADA DE BASES DE DATOS II GRUPO B 1. Dada la lista de notas de N alumnos, con la estructura presentada, crear una consulta que devuelva los mismos datos, pero con un campo extra llamado Estado de Salud el cual contendr los textos que se indican: Congelado, si la temperatura es menor a 5; Normal si est en el intervalo [6 20]; y Con Fiebre si la temperatura es mayor o igual 21 Tabla Temporal Codigo 1 2 3 N Animal Perro1 Perro2 Perro3 PerroN Temperatura 10 15 09 32 NOTA: el valor de la N es un valor arbitrario. El valor de la temperatura es un valor aleatorio en el intervalo [160] (Puede utilizar la funcin RAND(), para insertar valores en esta tabla). No modificar la estructura de la tabla temporal propuesta El procedimiento almacenado se debe ejecutar si realizamos la siguiente instruccin DECLARE @N INT SET @N = 200 EXEC sp_ListaDeAnimales @N Codigo Animal Temperatura ---- --------- ----1 Perro_1 10 2 Perro_2 05 ---N Perro_N 32 Estado de Salud -------------Normal Congelado --Con Fiebre

2.

Insertar en una tabla temporal los X primeros nmeros divisores de N, y los Y primeros mltiplos de N; luego devolverlos como un conjunto de datos, adjuntando como Informacin un texto que hace referencia al Intervalo en el cual se encuentra este nmero (Valor). Los intervalos Cod Valor Informacin Son [1..100],[101..200], [201300], [301400],[401500], . --- -----------------------1 50 Entre 1 y 100 NOTA: Los valores de N y X son valores arbitrarios. 2 25 Entre 1 y 100 DECLARE @N INT, @X INT, @Y INT .. .. Entre ... y ... SET @N = 100 5 100 Entre 1 y 100 SET @X = 4 6 200 Entre 151 y 200 SET @Y = 3 7 300 Entre 251 y 300 EXEC sp_NumerosDivMultiploDe @N, @X, @Y Imprimir los M primeros nmeros fibonacci mayores al valor de N usando un nmero de X columnas, de la siguiente forma: DECLARE @M INT, @N INT X SET @M = 8 1 4 3 4 5 SET @N = 7 ----------------------------------SET @X = 5 8 13 21 34 55 EXEC sp_FibonnacciMayoresA @M, @N, @X 89 144 233 Nota: Los nmeros Fibonacci son: 0, 1, 1, 2, 3, 5, 8, 13, 21...

3.

4.

Dada una tabla temporal MyTemporal (creada al interior de un procedimiento almacenado), tal como se la que se muestra a continuacin, modificar los datos contenidos en esta tabla, de forma tal que los datos estn ordenados descendentemente (por el puntaje de cada juego). La tabla modificada debe ser mostrada en pantalla (Los puntajes son valores aleatorios en el intervalo [301000]).

Tabla Temporal
Nro Juego Puntaje 1 Juego1 67 2 Juego2 36 3 Juego3 519 N JuegoN 610

Tabla Temporal Modificada


Nro Juego Puntaje N JuegoN 610 3 Juego3 519 1 Juego1 67 2 Juego2 36

La instruccin a ejecutar ser: DECLARE @N INT SET @N = 35 EXEC sp_OrdenarPuntajesEnData @N

Nro Juego Puntaje ----- ---------- --------------N JuegoN 610 3 Juego3 519 1 Juego1 67 .. ... .. 2 Juego2 36

PRIMERA PRCTICA CALIFICADA DE BASES DE DATOS II RECUPERACION 1. Dada la lista de N registros, con la estructura presentada en pantalla (ValorA y ValorB contienen nmeros aleatorios en el intervalo [100, 250]), crear una consulta que devuelva los mismos datos, pero con un campo extra llamado calculado que contenga el MCD de los valores ValorA y ValorB. Tabla Temporal ID 1 2 3 N Nombre Dato1 Dato2 Dato3 DatoN ValorA 15 10 19 10 ValorB 10 8 5 Calculado NOTA: el valor de la N es un valor arbitrario. El valor de la nota es un valor aleatorio en el intervalo [020] (Puede utilizar la funcin RAND() para insertar valores en esta tabla). No modificar la estructura de la tabla temporal propuesta El procedimiento almacenado se debe ejecutar si realizamos la siguiente instruccin DECLARE @N INT SET @N = 100 EXEC sp_ListaDeMCDs @N ID ---1 2 -N Nombre ValorA -------- -----Dato1 15 Dato2 10 --DatoN 50 ValorB -----10 8 -30 Calculado -------5 2 -10

2.

Dada la lista de N registros, con la estructura presentada en pantalla (ValorA y ValorB contienen nmeros aleatorios en el intervalo [1, 12]), crear una consulta que devuelva los mismos datos, pero con un campo extra llamado calculado que contenga el nombre del mes al cual representa el ValorA.(no considerar el mes X) Nro Nombre Valor Calculado Tabla Temporal ------------- -------ID 1 2 3 N 1 Dato1 1 Enero Nombre Dato1 Dato2 Dato3 DatoN 2 Dato2 8 Agosto Valor 1 8 2 7 3 Dato3 2 Febrero Calculado .. ... .. ... DECLARE @N INT N DatoN 7 Julio SET @N = 200 SET @X = 5 EXEC sp_MesesDelAnyo @N, @X Dada una lista de N nmeros aleatorios pares del intervalo [X, X+300] ,insertados en el campo ValorA de una tabla, resolver el siguiente problema. Insertar en el campo ValorB nmeros impares cuyo valor sea aproximadamente el promedio de un nmero del campo ValorA con el siguiente nmero. Luego en el campo Calculado, insertar el valor promedio de los campos ValorA y ValorB (El campo calculado solo contendr nmeros impares)

3.

Tabla Temporal
ID 1 2 3 ValorA 506 550 660 520 .. .. ValorB 501 521 611 581 .. .. Calculado 503 535 635 551 DECLARE @N INT, @X INT SET @N = 110 SET @X = 500 EXEC sp_InsertNumerosAleatorios @N, 4. N 710 699 705

ID ValorA ValorB Calculado ----------------------------------1 506 501 503 2 550 521 535 .. .. .. .. N 710 699 705

@X

Dada una lista de N Nmeros fibonnaci ordenarlos descendentemente segn el primer dgito del nmero ID Nro 1 0 2 1 3 1 4 2 5 3 6 5 7 8 8 9 13 21 N ..
ID ---7 6 5 9 4 8 3 2 .. 1 NroOrdenado ------------8 5 3 21 2 13 1 1 .. 0

DECLARE @N INT SET @N = 40 EXEC sp_MostrarFibonacciOrdenados @N

1.

PROBLEMAS DE CONSULTAS EN PROCEDIMIENTOS ALMACENADOS UTILIZANDO CONJUNTOS DE DATOS ALMACENADOS EN TABLAS TEMPORALES Todos los clientes que no pidieron artculos del proveedor X entre las fechas F1 Y F2. No considerar los artculos vendidos el da F3 DECLARE @Proveedor VARCHAR(50) DECLARE @F1 DATETIME, @F2 DATETIME , @F3 DATETIME SET @F1 = CAST('2003/04/25' AS DATETIME) SET @F2 = CAST('2004/06/18' AS DATETIME) SET @F3 = CAST('2003/03/20' AS DATETIME) EXEC sp_ListaClientes_Que_Pidieron01 @Proveedor, @F1, @F2, @F3
Nombre_Cliente --------------Direccin ---------Pais -----

2.

Todos los pedidos donde no participan los empleados cuyos nombres empiezan con las letras @Nombres, No considerar los pedidos realizados por clientes de nacionalidad @Nacionalidad DECLARE @Nombre VARCHAR(10) DECLARE @Nacionalidad VARCHAR(75) SET @Nombre = 'a' SET @Nacionalidad = ' Blacklick' EXEC sp_ListaPedidos_Que_Pidieron01 @Nombre, @Nacionalidad IDPedido --------Nombre_Cliente -------------Fecha_Pedido ------------

3.

Todos los productos que fueron solicitados por los clientes de nacionalidad @Nacionalidad, pero que no fueron comprados por los clientes de la ciudad @Ciudad. No incluir los productos entregados por el Proveedor @Proveedor Nombre_Producto DECLARE @Proveedor VARCHAR(50) --------------DECLARE @Nacionalidad VARCHAR(75), @Ciudad VARCHAR(20) SET @ Proveedor = 'Juan Perez' SET @ Nacionalidad = 'Chile' SET @ Ciudad = 'Ohio' EXEC sp_ListProductos9 @Proveedor, @Nacionalidad, @ Ciudad Precio -----Clase_Producto --------------

4.

Empleados que registraron pedidos para productos que nunca fueron comprados por Clientes de la Ciudad @Ciudad. No se consideran los productos de tipo @Tipo, siempre y cuando stos hayan superado la @Cantidad de unidades pedidas (en total) CodEmpleado DECLARE @Tipo_Producto VARCHAR(50) ----------DECLARE @Cantidad INT, DECLARE @Ciudad VARCHAR(20) SET @ Tipo_Producto = 'Juan Perez' SET @ Cantidad = 200 SET @ Ciudad = 'Ohio' EXEC sp_Listempleados9 @Tipo_Producto, @Cantidad, @ Ciudad Nombre_Completo --------------Sueldo -------

Pregunta 01 Grupo 1 (Ventas) de Artculos del proveedor entre las fechas F1 y F2 Grupo 2(Ventas): Articulos Vendidos el da F3 Grupo 3: Todos los clientes (Que no se relacionan con Grupo 1, y tampoco con Grupo 2) Grupo 3 (Excluir G1, G2)

Grupo 1 (F1, F2)

Grupo 2 (F3)

Pregunta 02 Grupo 1 (Clientes) clientes de Nacionalidad @Nacionalidad Grupo 2(Empleados): Empleados cuyo nombre empieza con @Nombres Grupo 3: Todos los pedidos (Que no se relacionan con G1, y tampoco con Grupo2)

Grupo 1 (@Nacionalidad)

Grupo 2 (@Nombres)

Grupo 3 (Excluir G1, G2)

gunta 02:

Pregunta 03 Grupo 1 (Productos) Productos entregados por el proveedor @Proveedor Grupo 2(Productos): Productos solicitados por clientes de Nacionalidad @Nacionalidad Grupo 3: (Productos)Todos los productos comprados por clientes de la ciudad @ciudad Grupo4: Grupo 2 Grupo1 Grupo3

Grupo 3 (@Ciudad) Grupo 2 (@Nacionalidad)

Grupo 1 (@Proveedor)
Grupo 4 (Incluir G2,y Excluir G2, yG3)

Pregunta 04 Grupo 1 (Productos) Productos comprados por clientes de la ciudad @Ciudad Grupo 2(Productos): Productos de tipo @Tipo que hayan superado las @Unidades pedidas Grupo 3: (Empleados) Todos los empleados que hicieron pedidos de productos no comprados por G1. Excluir G2

Grupo 1 (@Ciudad)

Grupo 1 (@Unidades, cantidad)

Grupo 3 (Empleados)

Grupo 3 (Excluir G1, yG2)

Das könnte Ihnen auch gefallen