jueves, 26 de agosto de 2010

Ejercicios resueltos de SQL

El día viernes 27 de Agosto de 9 a 11 será el exámen extraordinario de bd I.  Publico las respuestas al exámen final para que tengan una mejor base para estudiar.  Básicamente el exámen será similar al final, con menos cantidad de preguntas para que tengan suficiente tiempo para analizar y responder.

La Tienda de Informática

Crear la base de datos en Access 2007 con la estructura definida en el siguiente diagrama

image

Lo primero a resolver en el exámen es crear la base de datos conforme al diagrama mostrado, en los exámenes se dió la instrucción para cada caso, igual que se explicó los tipos de datos a utilizar.  Es importante saber que existe una relación entre el código del fabricante de la tabla FABRICANTES y el campo Fabricante de la tabla ARTICULOS.  Esta relación deberá definirse en el menú Herramientas de Bases de Datos / Relaciones.

Pueden bajar la estructura y los datos de prueba para la bd en este enlace y probar las instrucciones SQL

1) Obtener los nombres y los precios de los productos de la tienda.

SELECT nombre, precio FROM Articulos



2) Obtener el nombre de los productos cuyo precio sea menor a U$200.00

SELECT nombre 
FROM Articulos
WHERE precio > 200



3) Obtener todos los datos de los artículos cuyo precio esté entre los U$ 60.00 y los U$ 120.00 (ambas cantidades incluidas).

SELECT *
FROM Articulos
WHERE precio >= 60 AND precio <= 120
se coloca >= y <= porque se tienen que incluir ambas cantidades



4) Asumiendo que los precios de los artículos están en dólares, obtener el nombre y el precio en córdobas sabiendo que el tipo de cambio es 21.50

Solo es necesario multiplicar el precio por el tipo de cambio para obtener la cantidad de córdobas
correspondientes

SELECT nombre, precio * 21.50 AS [Precio Córdobas]
FROM Articulos



5) Seleccionar el precio promedio de todos los productos.

Como queremos el precio promedio de todos los productos, 
necesitamos utilizar funciones de agrupación que nos permita
promediar los precios de todos los productos registrados
en la tabla Articulos

SELECT AVG(precio)
FROM Articulos



6) Obtener la cantidad de artículos cuyo precio sea mayor o igual a U$ 180.00

En este caso se necesita la cantidad de artículos cuyo precio
sea mayor o igual a 180. Ojo no se quieren los nombres,
ni precios, se quiere la cantidad nada más

SELECT COUNT(Codigo)
FROM Articulos
WHERE precio >= 180



7) Obtener un listado completo de artículos, incluyendo por cada articulo los datos del artículo y su fabricante.

Se necesita unir las dos tablas y es por eso que deben de estar
relacionadas, para obtener la información correcta.

Se puede hacer de dos maneras:

1) Por medio del WHERE

SELECT Articulos.codigo, Articulos.nombre, Articulos.precio, Articulos.fabricante, Fabricantes.Nombre
FROM Articulos, Fabricantes
WHERE Articulos.fabricante = Fabricantes.Codigo
2) Por medio de INNER JOIN

SELECT Articulos.codigo, Articulos.nombre, Articulos.precio, Articulos.fabricante, Fabricantes.Nombre
FROM Articulos INNER JOIN Fabricantes
ON Articulos.fabricante = Fabricantes.Codigo





8) Obtener el nombre y el precio del artículo más barato.

Solo queremos el nombre del artículo más barato. La forma de 
hacer esto es a través de una subconsulta.
Primero veamos, una subconsulta es una consulta normal
establecida en la instrucción WHERE de otra consulta.

Si quisieramos el precio del producto más barato, podríamos
hacer lo siguiente

SELECT Min(precio) FROM Articulos

Ahora como queremos el nombre, podemos hacer una consulta
que contenga el nombre pero filtrado por el producto
más barato (obtenido de la subconsulta)

SELECT nombre
FROM Articulos
WHERE precio = (SELECT MIN(precio) FROM Articulos)

Esto se debe hacer así porque se supone que no sabemos el
precio más barato del catálogo.



9) Añadir un nuevo producto: Altavoces de U$70.00 (del Fabricante 2)

Aplicamos un INSERT

INSERT INTO Articulos ( nombre, precio, fabricante )
VALUES ('Altavoces', 70, 2)

Hay que tomar en cuenta para evitar errores que no se
incluye en los nombre de campos el campo codigo porque
este es autonumérico y es el propio Access quien le asigna
el siguiente valor a este campo cuando se ingresa la
información y algo muy importante: las cadenas de texto van
entre comillas simples, los numeros van sin comillas.

Se supone que el fabricante con código 2 debe existir en
la tabla Fabricantes.



10) Cambiar el nombre del producto 8 a ‘Impresora Laser’

Se hace uso de la instrucción UPDATE

UPDATE Articulos
SET nombre = 'Impresora Laser'
WHERE codigo = 8




 


y listo, ese era todo el exámen.  El resto de ejercicios para los otros tipos de exámenes era igual, todos contenían ejercicios sencillos de SELECT, INSERT, DELETE, UPDATE y subconsultas, así como consultas de dos tablas.

No hay comentarios:

Publicar un comentario en la entrada