Revisión Evaluación 01
1 Evaluación 01-A
1.1 Sección 1: Selección Múltiple (40 ptos.)
¿Qué tipo de objeto de esquema es utilizado para almacenar datos en filas y columnas?
- Vista
- Tabla
- Índice
- Secuencia
¿Cuál de las siguientes funciones SQL convierte un dato a otro tipo?
- UPPER
- ROUND
- CAST
- GETDATE
¿Qué comando se utiliza para modificar una tabla existente en SQL?
- ALTER TABLE
- MODIFY TABLE
- UPDATE TABLE
- CHANGE TABLE
¿Qué cláusula se utiliza para filtrar los grupos de resultados en una consulta SQL con agrupamiento?
- WHERE
- FILTER
- GROUP BY
- HAVING
¿Cuál de las siguiente opciones describe mejor una vista en SQL?
- Una copia física de datos
- Un índice para acelerar consultas
- Una consulta almacenada que puede ser tratada como una tabla
- Un procedimiento almacenado
¿Qué tipo de índice en SQL permite acelerar las búsquedas en una columna específica?
- Índice Primario
- Índice Compuesto
- Índice No Agrupado
- Índice Clúster
¿Qué comando SQL se utiliza para crear un procedimiento almacenado?
- CREATE FUNCTION
- CREATE TRIGGER
- CREATE PROCEDURE
- CREATE SEQUENCE
¿Cuál es el resultado de la siguiente consulta SQL?
SELECT ROUND(123.456, 2);
- 123.45
- 123.46
- 123.5
- 123.4
¿Cuál es la función de un trigger en SQL?
- Ejecutar una consulta programada
- Monitorear cambios en la base de datos y ejecutar código en respuesta a esos cambios
- Almacenar procedimientos SQL
- Proteger la base de datos contra accesos no autorizados
¿Qué tipo de operación puede activar un trigger en SQL?
- SELECT
- INSERT
- DESCRIBE
- GRANT
1.2 Sección 2: Ejercicios de Desarrollo (60 ptos.)
Ejercicio 1: Creación y Gestión de Tablas
Enunciado: Crea una tabla llamada Products
con las siguientes columnas:
ProductID
: Número entero, clave primaria, autoincremental.ProductName
: Cadena de caracteres, no puede ser nulo.Price
: Decimal con dos decimales.CategoryID
: Número entero, debe referenciar aCategoryID
en una tablaCategories
.
Solución
CREATE DATABASE EVAL01A;
USE EVAL01A;
SET DATEFORMAT 'YMD';
CREATE TABLE Categories(
INT IDENTITY,
CategoryID PRIMARY KEY(CategoryID)
);
CREATE TABLE Products(
INT IDENTITY,
ProductID NVARCHAR(100) NOT NULL,
ProductName DECIMAL(10,2),
Price INT,
CategoryID PRIMARY KEY(ProductID),
FOREIGN KEY(CategoryID) REFERENCES Categories(CategoryID)
);
Ejercicio 2: Creación de Vistas
Enunciado: Crea una vista llamada VistaProductosCaros
que muestre el nombre del producto y su precio para aquellos productos cuyo precio sea mayor a $100.
Solución
CREATE VIEW VistaProductosCaros AS
SELECT ProductName, Price
FROM Products
WHERE Price < 100;
Ejercicio 3: Creación de Índice
Enunciado: Crea un índice compuesto en las columnas LastName
y FirstName
de la tabla Customers
para optimizar las búsquedas por nombre completo.
Solución
CREATE TABLE Customers(
INT IDENTITY,
CustomerID NVARCHAR(100),
FirstName NVARCHAR(100),
LastName PRIMARY KEY(CustomerID)
);
CREATE INDEX idx_LastNameFirstName
ON Customers(LastName, FirstName);
Ejercicio 4: Procedimientos Almacenados
Enunciado: Crea un procedimiento almacenado sp_ActualizarPrecio
que permita actualizar el precio de un producto dado su ID.
Solución
CREATE PROCEDURE sp_ActualizarPrecio
INT,
@productoID DECIMAL(10,2)
@nuevoPrecio AS
BEGIN
UPDATE Products
SET Price = @nuevoPrecio
WHERE ProductID = @productoID;
END;
2 Evaluación 01-B
2.1 Sección 1: Selección Múltiple (40 ptos.)
¿Qué comando se utiliza para agregar una nueva columna a una tabla existente?
- ADD COLUMN
- INSERT COLUMN
- ALTER TABLE
- MODIFY COLUMN
¿Cuál de las siguientes funciones SQL devuelve la fecha y hora actual?
- NOW()
- GETDATE()
- CURRENT_TIMESTAMP
- SYSDATE
¿Cuál es el resultado de la siguiente consulta SQL?
SELECT LOWER('HELLO WORLD');
- hello world
- HELLO WORLD
- Hello World
- No devuelve ningún resultado
¿Qué comando SQL se utiliza para eliminar una tabla?
- DROP TABLE
- DELETE TABLE
- REMOVE TABLE
- ERASE TABLE
¿Qué tipo de clave se utiliza para garantizar que un valor en una columna sea único en todas las filas?
- Clave Primaria
- Clave Externa
- Clave Única
- Clave Foránea
¿Qué tipo de función SQL se utiliza para sumar el valor de una columna en todas las filas de un grupo?
- SUM
- COUNT
- AVG
- MAX
¿Cuál de los siguientes comandos se utiliza para crear un nuevo índice en una tabla?
- ADD INDEX
- CREATE INDEX
- NEW INDEX
- GENERATE INDEX
¿Cuál es el propósito de la cláusula GROUP BY en una consulta SQL?
- Filtrar filas
- Agrupar filas con valores comunes
- Ordenar filas
- Limitar el número de filas devueltas
¿Qué comando SQL se utiliza para ejecutar un procedimiento almacenado?
- CALL
- EXEC
- RUN
- START
¿Qué evento NO puede activar un trigger en SQL?
- INSERT
- UPDATE
- DELETE
- SELECT
2.2 Sección 2: Ejercicios de Desarrollo (60 ptos.)
Ejercicio 1: Creación y Gestión de Tablas
Enunciado: Crea una tabla llamada Orders
con las siguientes columnas:
OrderID
: Número entero, clave primaria, autoincremental.OrderDate
: Fecha y hora de la orden.CustomerID
: Número entero, debe referencias aCustomerID
en una tablaCustomers
.TotalAmount
: Decimal con dos decimales.
Solución
CREATE DATABASE EVAL01B;
USE EVAL01B;
SET DATEFORMAT 'YMD';
CREATE TABLE Customers(
INT IDENTITY,
CustomerID PRIMARY KEY(CustomerID)
);
CREATE TABLE Orders (
INT IDENTITY,
OrderID
OrderDate DATETIME,INT,
CustomerID DECIMAL(10,2),
TotalAmount PRIMARY KEY(OrderID),
FOREIGN KEY(CustomerID) REFERENCES Customers(CustomerID)
);
Ejercicio 2: Creación de Vistas
Enunciado: Crea una vista llamada VistaOrdenesRecientes
que muestre el ID de la orden, la fecha de la orden, y el total de la orden para aquellas órdenes realizadas en el último mes.
Solución
CREATE VIEW VistaOrdenesRecientes AS
SELECT OrderID, OrderDate, TotalAmount
FROM Orders
WHERE OrderDate BETWEEN DATEADD(MONTH, -1, GETDATE()) AND GETDATE();
Ejercicio 3: Creación de Índices
Enunciado: Crea un índice en la columna OrderDate
de la tabla Orders
para optimizar las consultas que buscan órdenes por fecha.
Solución
CREATE INDEX idx_OrderDate
ON Orders(OrderDate);
Ejercicio 4: Procedimientos Almacenados
Enunciado: Crea un procedimiento almacenado sp_EliminarOrden
que elimine una orden dado su ID.
Solución
CREATE PROCEDURE sp_EliminarOrden
INT
@OrdenID AS
BEGIN
DELETE FROM Orders
WHERE OrderID = @OrdenID;
END;