Parcial 2 sql

download Parcial 2 sql

of 3

description

parcial

Transcript of Parcial 2 sql

2do. Parcial Base de DatosIng. Marco Zarate

SUCURSALCodSucDirSucTelSucEMPLEADOIdEmpNomEmpFecNacFecAltSalEmpDir

N : 1

N : 11N

OPERACIONN : NFecOpeHorOpeTipOpeDesOpeImpOpeCUENTANumCtaFecApe

TITULARN : NNumOrdCAJEROCodCajTipCaj

CLIENTEIdCliNomCliDirCliTelCli

Nota: ImpOpe puede ser Positivo para Depsitos y Negativo para Retiros

1. Realizar el mapeo al modelo relacional. (10 pts)2. Crear la base de datos BDBanco en SQL (5pts)3. Crear las tablas en SQL, tomando en cuenta las llaves forneas o extranjeras ( 10pts)4. Realizar una consulta para:a. Insercin del cliente: Pedro del Balle, calle Pedro Blanco No. 2, Telfono 4123456 (5pts)b. Actualizacin del cliente Pedro del Balle para corregir el error ortogrfico (Pedro del Valle) (5pts)c. Borre todos las sucursales excepto la sucursal 3 (5pts)5. Nmero de todas las cuentas corrientes ( NumCta ) de la sucursal nmero 2 ordenadas por fecha de apertura ( FecApe ). (5pts)6. El nmero de todas las cuentas corrientes del cliente con Id 44444444 y el orden de titularidad. (5pts)7. El nmero de todas las cuentas corrientes del cliente que se llama Pedro del Valle y el orden de titularidad. (5pts)8. El Id y nombre de todos los clientes que tienen cuenta en la sucursal nmero 4, ordenado por nombre. (5pts)9. El saldo de la cuenta nmero 6. (5pts)10. El nmero y saldo de todas las cuentas de la sucursal nmero 4. (5pts)11. Listado de clientes ( Id y nombre ) con el saldo total ( suma de saldos ) de todas sus cuentas corrientes, ordenado por nombre. (5pts)12. Todos los empleados que cumplan aos este mes (formato de fecha dd/mm/aaaa) (5pts)13. Todos los clientes (Id) junto con el nmero de cuentas corrientes que tienen (5pts)14. La edad mnima, promedio y mxima de los empleados agrupados por sucursal (5pts)15. Cantidad de empleados en edad de jubilacin (mayores a 50 aos) (5pts)16. Listado de los empleados que tengan ms de 5 aos de antigedad en el banco (5pts)

1. a. Empleado (IdEmp, NomEmp, FecNac, FecAlt, SalEmp, Dir, CodSuc)

b. Sucursal (CodSuc, DirSuc, TelSuc)

c. Cuenta ( NumCta, FecApe, CodSuc)

d. Titular (NumCta, IdCli, NumOrd)

e. Cliente (IdCli, NomCli, DirCli, TelCli)

f. Operacin (NumCta, CodCaj, FecOpe, HorOpe, TipOpe, DesOpe, ImpOpe)

g. Cajero (CodCaj, TipCaj, CodSuc)

2. CREATE DATABASE DBBanco3. a. CREATE TABLE Empleado(IdEmp int IDENTITY(1,1) PRIMARY KEY, NomEmp varchar(50),FecNac datetime,FecAlt datetime,SalEmp datetime,Dir varchar(50),CodSuc int, CONSTRAINT FK_Empleado_Sucursal FOREIGN KEY(CodSuc)REFERENCES Sucursal(CodSuc))

b. CREATE TABLE Sucursal(CodSuc int IDENTITY(1,1) PRIMARY KEY ,DirSuc varchar(50),TelSuc varchar(50))

c. CREATE TABLE Cuenta(NumCta int IDENTITY(1,1) PRIMARY KEY,FecApe datetime, CodSuc int, CONSTRAINT FK_Cuenta_Sucursal FOREIGN KEY(CodSuc) REFERENCES Sucursal(CodSuc))d. CREATE TABLE Titular(NumCta int, IdCli int, NumOrd int,CONSTRAINT FK_Titular_Cliente FOREIGN KEY(IdCli)REFERENCES Cliente (IdCli),CONSTRAINT FK_Titular_Cuenta FOREIGN KEY(NumCta)REFERENCES Cuenta (NumCta))e. CREATE TABLE Cliente(IdCli int IDENTITY(1,1) PRIMARY KEY, NomCli varchar(50), DirCli varchar(50), TelCli varchar(50))f. CREATE TABLE Operacion (NumCta int, CodCaj int, FecOpe datetime, HorOpe datetime, TipOpe varchar(50), DesOpe varchar(50), ImpOpe money, CONSTRAINT FK_Cuenta_Operacion FOREIGN KEY(NumCta) REFERENCES Cuenta(NumCta), CONSTRAINT FK_Operacion_Cajero FOREIGN KEY(CodCaj)REFERENCES Cajero(CodCaj))

4. a. INSERT INTO Cliente(NomCli, DirCli, TelCli)VALUES(Pedro del Balle, calle Pedro Blanco No. 2, 4123456)b. UPDATE Cliente SET NomCli = Pedro del ValleWHERE NomCli = Pedro del Ballec. DELETE FROM Sucursal WHERE CodSuc != 3

5. SELECT NumCta FROM Cuenta WHERE CodSuc = 2 ORDER BY FecApe

6. SELECT NumCta, NumOrd FROM titular WHERE IdCli = 44444444

7. SELECT a.NumCta, a.NumOrd FROM titular a, Cliente b WHERE a.IdCli = b.IdCli AND b.NomCli = 'Pedro del Valle'

8. SELECT a.IdCli, a.NomCli FROM Cliente a INNER JOIN Titular b ON a.IdCli = b.IdCli INNER JOIN Cuenta c ON b.NumCta = c.NumCta WHERE c.CodSuc = 4 ORDER BY a.NomCli

9. SELECT SUM(ImpOpe) FROM Operacion WHERE NumCta = 6

10. SELECT a.NumCta, SUM(b.ImpOpe) FROM Cuenta a INNER JOIN Operacion b ON a.NumCta = b.NumCta WHERE a.Codsuc = 4 GROUP BY NumCta

11. SELECT a.IdCli, a.NomCli, SUM(d.ImpOpe) FROM Cliente a INNER JOIN Titular b ON a.IdCli = b.IdCli INNER JOIN CUENTA c ON b.NumCta = c.NumCta INNER JOIN Operacion d ON c.NumCta = d.NumCta GROUP BY a.IdCli, a.NomCli ORDER BY a.NomCli

12. SELECT * FROM Empleado Where Fecnac like '__/11/____'

13. SELECT IdCli, COUNT(NumCta) FROM TITULAR GROUP BY IdCli

14. SELECT MIN(FecNac), AVG(FecNac), MAX(FecNac) FROM Empleado

15. SELECT COUNT(*) FROM EMPLEADO WHERE FecNac like '__/__/1960'

16. SELECT * FROM EMPLEADO WHERE FecAlt