Está en la página 1de 7

Diseño y Administración de Datos

Prof. Alejandro Manzanares


EXAMEN PARCIAL 2

Examen Parcial 2
Datos del Alumno:
Nombre y Apellido: Samuel Fajardo R
DNI: 96002796

Instrucciones:
Lea detenidamente cada una de las preguntas y elija la(s) respuesta(s) que considere correcta. Todas las
preguntas tienen un valor de 1pt. Hay 5 preguntas teóricas y 5 preguntas prácticas. Para aquellas
preguntas teóricas que tengan más de una respuesta correcta, debe seleccionar solo y todas las
respuestas correctas. Para las preguntas prácticas, debe escribir el código en T-SQL que corresponda con
la pregunta. Recuerde que puede usar en cualquier momento el SQL Server Managment Studio y la base
de datos AdventureWork como apoyo.

Pregunta 1:
En cuanto a las Transacciones, marque las respuestas afirmativas (seleccione las 3 respuestas correctas):

A) NO se pueden determinar las transacciones de forma explícita

B) El modo de administración predeterminado de SQL Server es de Confirmación Automática


C) Las transacciones explícitas empiezan con la instrucción BEGIN TRANSACTION y acaban con la
instrucción END TRANSACTION
D) Una transacción es Atómica, Consistente, Aislada y Durable (ACID)
E) La instrucción COMMIT, garantiza que todas las modificaciones de la transacción se conviertan
en una parte permanente de la base de datos
Diseño y Administración de Datos
Prof. Alejandro Manzanares
EXAMEN PARCIAL 2

Pregunta 2:
En cuanto a los Índices Non-Clustered, marque las respuestas afirmativas (seleccione las 3 respuestas
correctas):

A) No ocupan espacio en el disco (son virtuales)

B) Se organizan como árboles B


C) Los nodos hoja contienen punteros que van a las páginas de datos de la tabla subyacente
D) Ordenan los datos en base a la clave del índice
E) Se puede crear varios índices no clustered por tabla o por vista
F) Son ideales para mejorar operaciones como INSERT, UPDATE y DELETE

Pregunta 3:
Seleccione la respuesta correcta sobre el resultado de la siguiente instrucción:

A) Inserta un registro en la tabla Jugador


B) Muestra el error "Divide by zero error encountered"
C) Muestra el error "Ha ocurrido un error fatal"
D) Actualiza el valor de Lionel Messi en la tabla Jugador
E) Ninguna de las anteriores.
Diseño y Administración de Datos
Prof. Alejandro Manzanares
EXAMEN PARCIAL 2

Pregunta 4:
En cuanto a la Conversión de Tipos de Datos, marque las respuestas afirmativas (seleccione las 3
respuestas correctas):

A) CONVERT: Se utiliza para convertir un valor de un tipo de datos a otro con formato

B) En la conversión implícita, los tipos se convierten automáticamente


C) En la conversión implícita, los tipos de datos de MAYOR precedencia (ej. DATETIME) intentarán
convertirse en uno de MENOR precedencia (ej. VARCHAR)
D) La conversión explícita ocurre utilizando las funciones de conversión CAST y CONVERT
E) CAST: Se utiliza para hacer un casting y obtener el mejor dato de una tabla
F) La instrucción CAST('Hoy' AS DATETIME) devuelve la fecha de hoy

Pregunta 5:
En cuanto a las instrucciones IF…ELSE, WHILE, CURSOR, marque las respuestas afirmativas (seleccione
las 3 respuestas correctas):

A) En la instrucción IF...ELSE, el bloque de código del ELSE es obligatorio

B) Dentro de un CURSOR, la instrucción FETCH NEXT devuelve la fila inmediatamente posterior


C) Dentro de un CURSOR, la instrucción FETCH BEFORE devuelve la fila inmediatamente anterior
D) Dentro de un blucle WHILE, la instrucción BREAK permite salir de inmediato de la iteración
actual
E) Un CURSOR, es un elemento que representará a un conjunto de datos determinado por una
consulta que permitirá recorrer fila a fila
F) Dentro de un bucle WHILE, la instrucción FETCH PRIOR permite ir a la iteración anterior
Diseño y Administración de Datos
Prof. Alejandro Manzanares
EXAMEN PARCIAL 2

Pregunta 6:
Desde la base de datos AdventureWorksy haciendo uso de las SUBCONSULTAS, escribir el script que
permita:

• Listarel nombre (Name), Código (ProductNumber) y Precio (ListPrice) de los productos (tabla
Production.Product) que tengan una oferta especial (tabla Sales. SpecialOfferProduct) y color
(Color) Black
USE AdventureWorks2019;
SELECT Name, ProductNumber, ListPrice FROM Production.Product WHERE ProductID IN
(Select ProductID from Sales. SpecialOfferProduct);

Pregunta 7:
Desde la base de datos AdventureWorks, escribir el script que permita:

• Combinar (UNION) los resultados, incluyendo duplicados, de los nombres (FirstName) de las
personas (tabla Person.Person) cuyo nombre comience con la letra “P” y las personas cuyo
nombre comience con “Pa”. NOTA: Solo los nombres
Use AdventureWorks2019
Select FirstName from Person.Person where FirstName like 'P%'
UNION ALL
Select FirstName from Person.Person where FirstName like 'Pa%';
Diseño y Administración de Datos
Prof. Alejandro Manzanares
EXAMEN PARCIAL 2

Pregunta 8:
Desde la base de datos AdventureWorks, escribir el script que permita:

• Listar el Código (ProductNumber), la categoría y elnombre (Name) de los productos (tabla


Production.Product).
• Mostrar la categoría en base al campo ProductLine de la siguiente forma:
o R→Calle
o M →Montaña
o T →Turismo
o S →Otros
o Y el resto especificarlo como →No está a la venta
• Colocar Alias a todas las columnas
• Ordenar los resultados por Código
• USE AdventureWorks2019
• select ProductNumber as Pnumero, Name as nombre,
• CASE
• WHEN ProductLine = 'R' THEN 'Calle'
• WHEN ProductLine = 'M' THEN 'Montana'
• WHEN ProductLine = 'T' THEN 'Turismo'
• WHEN ProductLine = 'S' THEN 'Otros'
• ELSE 'No está a la venta'
• END AS categoria
• from Production.Product
• ORDER BY Pnumero;

Pregunta 9:
Desde la base de datos AdventureWorks, escribir el script que permita:

• Llenar una tabla temporal local llamada Proveedores con la Cuenta (AccountNumber), el
Nombre (Name) y el Website (PurchasingWebServiceURL) de los proveedores (tabla
Purchasing.Vendor). No olvidar colocar Alias a todas las columnas
• Luego consultar de la tabla temporal, los proveedores que tengan Website
• Luego consultar de la tabla temporal, los proveedores cuyo nombre contenga “Bike”
• Eliminar la tabla temporal
Diseño y Administración de Datos
Prof. Alejandro Manzanares
EXAMEN PARCIAL 2

USE AdventureWorks2019;
--Creo una tabla Temporal que contendrá los datos de mi CURSOR
CREATE TABLE #Proveedores(
Id INT,
AccountNumber VARCHAR(50),
Name VARCHAR(50),
PurchasingWebServiceURL VARCHAR(50)
)

--Declaro las variables que contendran los valores del cursor


DECLARE @pId AS INT
DECLARE @pAcc AS VARCHAR(50)
DECLARE @pNa AS VARCHAR(50)
DECLARE @pUrl VARCHAR(50)

DECLARE CursorPVendor CURSOR FOR


SELECT BusinessEntityID, AccountNumber, Name, PurchasingWebServiceURL
FROM Purchasing.Vendor

-- Se asigna los valores del resultado del query al cursor


OPEN CursorPVendor

--Asigno los valores del 1er registro del cursor a las variables
FETCH NEXT FROM CursorPVendor INTO @pId, @pAcc, @pNa, @pUrl

--Comienza la iteración. Termina cuando el FETCH no devuelva mas registros


WHILE (@@FETCH_STATUS = 0)
BEGIN
--Inserto los primeros 4 valores en mi Tabla Temporal
INSERT INTO #Proveedores(Id, AccountNumber, Name, PurchasingWebServiceURL)
VALUES (@pId, @pAcc, @pNa, @pUrl)

--Asigno el siguiente registro del cursor a las variables


FETCH NEXT FROM CursorPVendor INTO @pId, @pAcc, @pNa, @pUrl
END

-- Cierro el cursor
CLOSE CursorPVendor
DEALLOCATE CursorPVendor

--Muestro el resultado
SELECT AccountNumber As account,
Name as N, PurchasingWebServiceURL as webUrl
FROM #Proveedores WHERE PurchasingWebServiceURL IS NOT NULL;

SELECT AccountNumber As account,


Name as N, PurchasingWebServiceURL as webUrl
FROM #Proveedores WHERE Name like '%Bike';

--Elimino la tabla temporal


Diseño y Administración de Datos
Prof. Alejandro Manzanares
EXAMEN PARCIAL 2

DROP TABLE #Proveedores

Pregunta 10:
Desde la base de datos AdventureWorks, escribir el script que permita:

• Crear un Stored Procedure llamado spBuscadorDeProductos que dadas 3 palabras de máximo


10 caracteres (varchar) correspondiente a la categoría, subcategoría y nombre del producto,
devuelva:
o Una lista con la Categoría, Subcategoría, Código, Nombre y Color de los productos
(tablas Production.Product, Production.ProductSubcategoryy
Production.ProductCategory) que contengan las palabras dadas (categoría,
subcategoría y nombre del producto)
• Ejecutar el Store Procedure con los siguientes parámetros:
o Categoría → “othi”
o Subcategoría → “soc”
o Nombre→ “bike”

También podría gustarte