Download Desarrollo de los ejercicios del capítulo 7 en Microsoft Office Access

Document related concepts
no text concepts found
Transcript
UNIVERSIDAD TÉCNICA PARTICULAR DE
LOJA
La Universidad Católica de Loja
CIENCIAS DE LA COMPUTACIÓN
QUINTO CICLO
DESARROLLO DE LOS EJERCICIOS DEL
CAPÍTULO 7
PROFESOR:
Ing. Nelson Piedra
AUTORA:
Raquel Luzuriaga
LOJA – ECUADOR
BASE TEÓRICA
Mediante el desarrollo de los siguientes ejercicios se ilustrará la utilidad de QBE (QueyBy-Example, consulta mediante ejemplo) utilizando el SGDB Microsoft Access 2003.
QBE representa una técnica visual para acceder a los datos de una base de datos
utilizando plantillas de consulta para representar la repuesta a una consulta.
QBE fue desarrollado originalmente por IBM en la década de 1970 para ayudar a los
usuarios a extraer datos de una base de datos. La utilidad QBE de Office Acess resulta
fácil de utilizar y tiene capacidades bastante potentes, por ejemplo podemos utilizarla
para realizar peguntas acerca de los datos contenidos en una o más tablas y para
especificar los campos que queremos que aparezcan en la respuesta.
Cuando se crea una base de datos utilizando Microsoft Office Access, se muestra la
ventana DataBase que presenta los objetos existentes en la base de datos por ejemplo
tablas, formularios, consultas e informes.
Para realizar una pregunta acerca de los datos contenidos en la base de datos de
DreamHome, tenemos que diseñar una consulta que indique a Microsoft Office Access
qué datos extraer.
A continuación describiré brevemente cada una de las consultas que se puede realizar en
Microsoft Office Access:
Consulta de Selección.- Realiza una pregunta o define un conjunto de criterios
acerca de los datos contenidos en una o más tablas.
Consulta de Totalización (agregación).- Realiza una serie de cálculos sobre
grupos de registros.
Consulta Paramétrica.- Muestra uno o más cuadros de diálogo predefinidos en los
que usuario puede introducir los valores de los parámetros.
Consulta de localización de correspondencias.- Localiza registros duplicados en
única tabla.
Consulta de localización de no correspondencias.- Localiza registros diferentes
en tablas relacionadas.
Consulta Matricial.- Permite resumir y presentar grandes cantidades de datos en
un formato compacto de hoja de cálculo.
Consulta de Autobúsqueda.- Rellena automáticamente ciertos valores de campo
para un nuevo registro.
Consulta de acción (incluyendo consultas de borrado, adición, actualización y
creación de tablas).- Realiza Cambios a muchos registros en una única operación.
Dichos cambios incluyen la capacidad de borrar, agregar o modificar los registros de
una tabla, así como crear una nueva tabla.
Consultas SQL (incluyendo consultas de unión, de paso, de definición de datos
y subconsultas).- Se utilizan para modificar las consultas descritas anteriormente y
para establecer las propiedades de formularios e informes. Deben emplearse para
crear consultas específicas de SQL, como consultas de unión, consultas de
definición de datos, subconsultas y consultas de paso. Las consultas de paso envían
comandos a una base de datos SQL, como por ejemplo Microsoft o Sybase SQL
Server.
DESARROLLO DE LOS EJERCICIOS
7.1 . Cree las tablas de ejemplo del caso de estudio de DreamHome que se
muestran en la Figura 3.3 y lleve a cabo los ejercicios ilustrados en este capítulo,
usando (siempre que sea posible) la función QBE de su SGBD.
Luego de crear las tablas se puede observar las siguientes relaciones:
7.2. Cree las siguientes consultas adicionales QBE de selección para las tablas de
ejemplo del caso de estudio de DreamHome, usando (siempre que sea posible) la
función QBE de su SGBD.
(a) Extraiga el número de sucursal y la dirección de todas las sucursales.
Sentencias SQL:
SELECT PropertyForRent.staffNo, PropertyForRent.branchNo,
PropertyForRent.city, PropertyForRent.street
FROM PropertyForRent;
Cuadrícula QBE:
Hoja de datos resultante:
(b) Extraiga el número de empleado, el puesto y el salario para todos los empleados
que trabajen en la sucursal B003.
Sentencias SQL:
SELECT Staff.staffNo, Staff.position, Staff.salary
FROM Staff
WHERE (((Staff.branchNo)="B003"));
Cuadrícula QBE:
Hoja de datos resultante:
(c) Extraiga los detalles de todos los apartamentos (flat) situados en Glasgow.
Sentencias SQL:
SELECT PropertyForRent.propertyNo, PropertyForRent.street,
PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type,
PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo,
PropertyForRent.staffNo, PropertyForRent.branchNo
FROM PropertyForRent
WHERE (((PropertyForRent.city)="Glasgow") AND
((PropertyForRent.type)="Flat")) OR (((PropertyForRent.city)="Glasgow")
AND ((PropertyForRent.type)="Flat"));
Cuadrícula QBE:
Hoja de datos resultante:
(d) Extraiga los detalles de todos los empleados del sexo femenino que tenga más
de 25 años.
Sentencias SQL:
SELECT Staff.staffNo, Staff.fName, Staff.iName, Staff.position, Staff.sex,
Staff.DOB, Staff.salary, Staff.branchNo
FROM Staff
WHERE (((Staff.sex)="F") AND ("DOB">(2007-25)));
Cuadrícula QBE:
Hoja de datos resultante:
(e) Extraiga el nombre completo y el teléfono de todos los clientes que hayan
visitado algún apartamento en Glasgow.
Sentencias SQL:
SELECT Client.fName, Client.iName, Client.telNo, PropertyForRent.city
FROM PropertyForRent INNER JOIN Client ON PropertyForRent.Id =
Client.Id
WHERE (((PropertyForRent.city)="Glasgow"));
Cuadrícula QBE:
Hoja de datos resultante:
(f) Extraiga el número total de inmuebles, clasificados según el tipo de inmuebles.
Sentencias SQL:
SELECT PropertyForRent.propertyNo, PropertyForRent.street,
PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type,
PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo,
PropertyForRent.staffNo, PropertyForRent.branchNo
FROM PropertyForRent
ORDER BY PropertyForRent.type DESC;
Cuadrícula QBE:
Hoja de datos resultante:
(g) Extraiga el número total de empleados que trabajan en cada sucursal,
ordenando el listado se el número de sucursal.
Sentencias SQL:
SELECT PropertyForRent.staffNo, PropertyForRent.branchNo
FROM PropertyForRent
ORDER BY PropertyForRent.branchNo DESC;
Cuadrícula QBE:
Hoja de datos resultante:
7.3. Cree las siguientes consultas QBE avanzadas para las tablas de ejemplo en el
caso de estudio DreamHome, utilizando (siempre que sea posible) la función QBE
de su SGBD.
(a) Cree una consulta paramétrica que solicite un número de inmueble y luego
muestre los detalles de dicho inmueble.
Sentencias SQL:
SELECT PropertyForRent.propertyNo, PropertyForRent.street,
PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type,
PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo,
PropertyForRent.staffNo, PropertyForRent.branchNo
FROM PropertyForRent
WHERE (((PropertyForRent.propertyNo)=[Enter PropertyForRent]));
Cuadrícula QBE:
Cuadro de diálogo para ingresar el número de inmueble
Hoja de datos resultante:
(b) Cree una consulta paramétrica que solicite el nombre y apellido de un
empleado y a continuación muestren los detalles de los inmuebles de los que ese
empleado es responsable.
Sentencias SQL:
SELECT PropertyForRent.propertyNo, PropertyForRent.street,
PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type,
PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo,
PropertyForRent.staffNo, PropertyForRent.branchNo, PrivateOwner.fName,
PrivateOwner.iName
FROM PropertyForRent INNER JOIN PrivateOwner ON PropertyForRent.Id
= PrivateOwner.Id
WHERE (((PrivateOwner.fName)=[Enter fName]) AND
((PrivateOwner.iName)=[Enter iName]));
Cuadrícula QBE:
Cuadro de diálogo que pide e nombre y apellido
Hoja de datos resultante:
(c) Añada más registros a la tabla PropertyForRent para reflejar el hecho de que
los propietarios ‘Carol Farrel’ y ‘Tony Shaw’ poseen ahora numerosos inmuebles
en diversas ciudades. Cree una consulta de selección para mostrar, para cada
propietario, el número de inmuebles que posee cada ciudad. Ahora, convierta la
consulta de selección en una consulta matricial y compruebe si la hoja de datos
resultante es más o menos útil para comparar el número de inmuebles que cada
propietario posee en cada ciudad.
Consulta de selección para mostrar, para cada propietario, el número de
inmuebles que posee en cada ciudad.
Sentencias SQL:
SELECT PropertyForRent.propertyNo, PropertyForRent.street,
PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type,
PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo,
PropertyForRent.staffNo, PropertyForRent.branchNo
FROM PropertyForRent
ORDER BY PropertyForRent.city DESC;
Cuadrícula QBE:
Hoja de datos resultante:
Consulta matricial
Instrucción SQL
TRANSFORM Avg(PropertyForRent.rooms) AS PromedioDerooms
SELECT PropertyForRent.propertyNo, PropertyForRent.street,
PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.rent,
PropertyForRent.ownerNo, PropertyForRent.staffNo,
PropertyForRent.branchNo
FROM PropertyForRent
GROUP BY PropertyForRent.propertyNo, PropertyForRent.street,
PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.rent,
PropertyForRent.ownerNo, PropertyForRent.staffNo,
PropertyForRent.branchNo
ORDER BY PropertyForRent.city DESC
PIVOT PropertyForRent.type;
Cuadrícula QBE
Hoja de Datos Resultante
Esta hoja resultante nos permite ver e número de inmuebles que cada propietario posee
por ciudad.
(e) Utilice una consulta de localización de no correspondencias para identificar los
empleados que tienen ningún inmueble asignado.
Instrucción SQL:
SELECT PrivateOwner.fName, PrivateOwner.iName, PrivateOwner.address,
PrivateOwner.telNo
FROM PropertyForRent INNER JOIN PrivateOwner ON PropertyForRent.Id
= PrivateOwner.Id
WHERE (((PropertyForRent.ownerNo) Is Null));
Cuadrícula QBE:
Hoja de datos resultantes:
Esto quiere decir que todos los empleados tienen un inmueble asignado.
7.4. Utilice consultas de acción para llevar a cabo las siguientes tareas sobre las
tablas de ejemplo del de estudio de DreamHome, empleando (siempre que sea
posible) la función QBE de su SGBD.
(a) Cree una versión reducida de la tabla PropertyForRent denominada
PropertyGlasgow, que tenga los campos propertyNo, street, postcode y type de la
tabla original y contenga únicamente los detalles de los inmuebles situados en
Glasgow.
Instrucción SQL:
SELECT PropertyForRent.propertyNo, PropertyForRent.street,
PropertyForRent.postcode, PropertyForRent.type INTO PropertyGlasgow
FROM PropertyForRent;
Cuadrícula QBE:
Mensajes de Advertencia
Hoja de Datos Resultantes
(b) Elimine todos los registros de visitas de inmuebles que no tengan ningún dato
en el campo comment.
Instrucción SQL
DELETE Viewing.*, Viewing.comment
FROM Viewing
WHERE (((Viewing.comment) Is Null));
Cuadrícula QBE
Mensaje de Advertencia
Hoja de datos de la tabla donde se eliminaron los registros que no tienen ningún
comentario
(c) Actualice el salario de todos los empleados, salvo de los gerentes (Manager), en
un 12,5%.
Instrucción SQL:
UPDATE Staff SET Staff.salary = [salary]*0.125;
Cuadrícula QBE:
Mensaje de Advertencia
(d) Cree una tabla denominada NewClient que contenga los detalles de nuevos
clientes. Añada estos datos a la tabla Client original.
Instrucción SQL:
INSERT INTO Client ( clientNo, fName, iName, telNo, prefType, maxRent )
SELECT NewClient.clientNo, NewClient.fName, NewClient.iName, NewClient.telNo,
NewClient.prefType, NewClient.maxRent
FROM NewClient;
Mensaje de Advertencia
Hoja de Datos de la Tabla después de insertar los nuevos registros
7.5 Utilizando las tablas de ejemplo del caso de estudio de DreamHome, cree
consultas QBE equivalentes para los ejemplos de SQL dados e el Capítulo 5.
5.1 Generar un listado con todos los detalles de todos los miembros del personal
Instrucción SQL
SELECT Staff.staffNo, Staff.fName, Staff.iName, Staff.position,
Staff.sex, Staff.DOB, Staff.salary, Staff.branchNo
FROM Staff;
Cuadricula QBE
Hoja de datos resultante
5.2 Generar una lista con os salarios de todos los empleados e la que sólo se
muestre el número de empleado, el nombre, el apellido y los datos salariales
Instrucción SQL
SELECT Staff.staffNo, Staff.fName, Staff.iName, Staff.salary
FROM Staff;
Cuadricula QBE
Hoja de datos resultante
5.3 Generar un listado con los números de inmueble de todos los inmuebles que
hayan sido visitados.
Instrucción SQL
SELECT Viewing.propertyNo
FROM Viewing;
Cuadricula QBE
Hoja de datos resultante
5.8 Generar un listado con todos los gerentes y supervisores
Instrucción SQL
SELECT Staff.staffNo, Staff.fName, Staff.iName, Staff.position
FROM Staff
WHERE (((Staff.position)='Manager')) OR
(((Staff.position)='Supervisor'));
Cuadricula QBE
Hoja de datos resultante