BASE DE DATOS EN ACCESS
7.1 Cree las tablas de ejemplo del caso de estudio de DreamHouse y lleve acabo los siguientes ejercicios usando la función QBE
7.2 Cree las siguientes consultas
Para poder realizarlas utilice el:
a) Extraiga el número de sucursal y la dirección de todas las sucursales
Resultado:
Vista SQL:
SELECT Branch.branchNo, Branch.street
b) Extraiga el número de empleado, el puesto y el salario para todos los empleados que trabajen en la sucursal B003
Resultado:
Vista SQL:
SELECT Staff.staffNo, Staff.position, Staff.salary
FROM Staff
c) Extraiga los detalles de todos los apartamentos Flat situados en Glasgow
Resultado:
Vista SQL:
SELECT PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.postcode, PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo, PropertyForRent.staffNo, PropertyForRent.branchNo
FROM PropertyForRent
d) Extraiga los detalles de todos los empleados del sexo femenino que tenga mas de 25 años
Resultado:
Vista SQL:
SELECT Staff.staffNo, Staff.fName, Staff.iName, Staff.position, Staff.sex, Staff.DOB, Staff.salary, Staff.branchNo, Now()-[Staff].[DOB] AS Edad
FROM Staff
GROUP BY Staff.staffNo, Staff.fName, Staff.iName, Staff.position, Staff.sex, Staff.DOB, Staff.salary, Staff.branchNo, Now()-[Staff].[DOB]
e) Extraiga el nombre completo y el teléfono de todos los clientes que hayan visitado algún apartamento en Glasgow
Vista SQL:
SELECT Client.fName, Client.iName, Client.telNo
FROM (Client INNER JOIN Viewing ON Client.clientNo = Viewing.clientNo) INNER JOIN PropertyForRent ON Viewing.propertyNo = PropertyForRent.propertyNo
f) Extraiga el número total de inmuebles, clasificados según el tipo de inmuebles
Vista SQL:
SELECT PropertyForRent.type AS TipoInmueble, Count(PropertyForRent.type) AS ContadorTipo
FROM PropertyForRent
g) Extraiga el número total de empleados que trabajen en cada sucursal, ordenando el listado según el número de sucursal
Resultado:
Vista SQL:
SELECT Staff.branchNo AS Sucursal, Count(Staff.branchNo) AS NumeroEmpleado
FROM Staff
GROUP BY Staff.branchNo
7.3 Cree las siguientes consultas QBE avanzadas
Para poder realizarlas utilice el :
esta imagen es la del asistente que les indica paso a paso como realizar las consultas de este tipo.
a) Cree una consulta paramétrica que solicite un número de inmueble y luego muestre los detalles de dicho inmueble.
Resultado:
La ventana anterior aparece ya que es una consulta paramétrica
Vista SQL:
SELECT PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type, PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo, PropertyForRent.staffNo, PropertyForRent.branchNo
FROM PropertyForRent
b) Cree una consulta paramétrica que solicite el nombre y el apellido de un empleado y a continuación muestre los detalles de los inmuebles de los que ese empleado es responsable
Resultado:
Aqui son dos parámetros los que se pide por eso apareceran esa dos ventanas
Vista SQL:
SELECT Staff.fName, Staff.iName, PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type, PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.ownerNo
FROM Staff INNER JOIN PropertyForRent ON Staff.staffNo = PropertyForRent.staffNo
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 en 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.
Resultado:
Vista SQL:
TRANSFORM Count(PropertyForRent.staffNo) AS CuentaDestaffNo
SELECT PropertyForRent.city
FROM Staff INNER JOIN PropertyForRent ON Staff.staffNo = PropertyForRent.staffNo
GROUP BY PropertyForRent.city
ORDER BY Staff.staffNo
d) Introduzca un error en su tabla Staff añadiendo un registro adicional para el empleado denominado ‘David Ford’ con un nuevo número de empleado. Utilice una consulta de localización de duplicados para identificar este error.
Resultado:
Vista SQL:
SELECT First(Staff.fName) AS fNameCampo, First(Staff.iName) AS iNameCampo, First(Staff.position) AS positionCampo, First(Staff.branchNo) AS branchNoCampo, Count(Staff.fName) AS NúmeroDeDuplicados
FROM Staff
GROUP BY Staff.fName, Staff.iName, Staff.position, Staff.branchNo
e) Utilice una consulta de localización de no correspondencias para identificar los empleados que no tienen ningún inmueble asignado.
Resultado:
Vista SQL:
SELECT Staff.staffNo, Staff.fName, Staff.iName
FROM Staff LEFT JOIN PropertyForRent ON Staff.[staffNo] = PropertyForRent.[staffNo]
f) Cree una consulta de autobúsqueda que rellene los detalles de un propietario cuando se introduce un nuevo registro inmueble en la tabla PropertyForRent y el propietario del inmueble ya existe en la base de datos
Resultado:
Vista SQL:
SELECT PropertyForRent.ownerNo, PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.city, PropertyForRent.postcode, PropertyForRent.type, PropertyForRent.rooms, PropertyForRent.rent, PropertyForRent.staffNo, PropertyForRent.branchNo, PrivateOwner.fName, PrivateOwner.iName, PrivateOwner.address, PrivateOwner.telNo
7.4 Utilice consultas de acción para las siguientes tareas:
Las tareas de acción:
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
Resultado:
Vista SQL:
SELECT PropertyForRent.propertyNo, PropertyForRent.street, PropertyForRent.postcode, PropertyForRent.type INTO PropertyGlassgow
FROM PropertyForRent
b) Elimine todos lo registros de visitas de inmuebles que no tengan ningún dato en el campo comment
Resultado:
El resultado es un mensaje en la que confirma la eliminación
Vista SQL:
DELETE Viewing.*, Viewing.Id, Viewing.propertyNo, Viewing.viewDate, Viewing.comment, Viewing.clientNo
FROM Viewing
c) Actualice el salario de todos los empleados, salvo de los gerentes Manager en un 12.5%
Vista SQL:
UPDATE Staff SET Staff.salary = [salary]*0.125
d) Cree una tabla denominada NewClent que contenga los detalles de nuevos clientes. Añada estos datos a la tabla client original.
Vista SQL:
INSERT INTO Client ( clientNo, fName, telNo, prefType, maxRent, iName )
SELECT [NuevosClientesTabla].[clientNo] AS numero, [NuevosClientesTabla].[fName] AS nombre, [NuevosClientesTabla].[telNo] AS telefono, [NuevosClientesTabla].[prefType] AS tipo, [NuevosClientesTabla].[maxRent] AS renta, [NuevosClientesTabla].[iName] AS apellido
Comentarios