Está en la página 1de 3

EJERCICIOS DE SQL

Considerar las siguientes tablas:

EMPLEADO: ( DniEmp, NomEmp, SexEmp, FecNac, FecAlt, SalEmp, CodSuc, Dir )


SUCURSAL: ( CodSuc, DirSuc, TelSuc )
CUENTA: ( NumCta, FecApe, CodSuc )
CLIENTE: ( DniCli, NomCli, DirCli, TelCli )
TITULAR: ( NumCta, DniCli, NumOrd )
CAJERO: ( CodCaj, TipCaj, CodSuc )
OPERACIÓN: ( CodCaj, FecOpe, HorOpe, TipOpe, DesOpe, ImpOpe, NumCta )

Realizar las siguientes consultas:

1. Número de todas las cuentas corrientes ( NumCta ) de la sucursal número 2


ordenadas por fecha de apertura ( FecApe ).
select numcta
from cuenta where (tipcta='corriente') and (codsuc='2') order by fecape ;

2. El número de todas las cuentas corrientes del cliente con DNI 44444444 y el orden
de titularidad.
select numord, numcta from titular where numcta in (select cuenta.numcta from cuenta
where cuenta.tipcta='corriente' and cuenta.numcta in (select titular.numcta from titular
where titular.dnicli='44444444' )) ;

3. El número de todas las cuentas corrientes del cliente que se llama Pedro del Valle
y el orden de titularidad.
select distinct numcta from titular where numcta in (select cuenta.numcta from cuenta where
cuenta.tipcta='corriente' and cuenta.numcta in (select titular.numcta from titular where
titular.dnicli = (select dnicli from cliente where nomcli='Pedro del Valle' ) )) ;

4. El DNI y nombre de todos los clientes que tienen cuenta en la sucursal número 4,
ordenado por nombre.
select distinct numcta from titular where numcta in (select cuenta.numcta from cuenta where
cuenta.tipcta='corriente' and cuenta.numcta in (select titular.numcta from titular where
titular.dnicli = (select dnicli from cliente where nomcli='Pedro del Valle' ) )) ;

5. El saldo de la cuenta número 6.


select saldo
from cuenta
where numcta='6' ;

6. El número y saldo de todas las cuentas de la sucursal número 4.


select numcta, saldo from cuenta where codsuc='4'
CREATE VIEW `banco`.`consulta7` AS select numcta, saldo from cuenta where
codsuc='4' ;
SELECT * FROM `banco`.`consulta7`;
7. Listado de clientes ( DNI y nombre ) con el saldo total ( suma de saldos ) de todas
sus cuentas select titular.dnicli, cliente.nomcli, titular.numcta, cuenta.saldo, sum(saldo) from
titular, cliente, cuenta where titular.numcta in (select numcta from cuenta where
tipcta='corriente') and ( titular.dnicli=cliente.dnicli ) and ( titular.numcta=cuenta.numcta )
group by dnicli order by nomcli
CREATE VIEW `banco`.`consulta8` as select titular.dnicli, cliente.nomcli,
titular.numcta, cuenta.saldo, sum(saldo) from titular, cliente, cuenta where titular.numcta in
(select numcta from cuenta where tipcta='corriente') and ( titular.dnicli=cliente.dnicli ) and (
titular.numcta=cuenta.numcta ) group by dnicli order by nomcli;
SELECT * FROM `banco`.`consulta8`;
8. Todas las sucursales ( número ) y su saldo total ( suma de los saldo de todas sus
cuentas ) ordenado descendentemente por el saldo.
select codsuc, sum(saldo) from cuenta group by codsuc order by sum(saldo)
desc ;
select codsuc, sum(saldo) from cuenta group by codsuc order by sum(saldo)
desc ;
CREATE VIEW `banco`.`consulta9` AS select codsuc, sum(saldo) from cuenta
group by codsuc order by sum(saldo) desc;
SELECT * FROM `banco`.`consulta9`;
9. Todas las fechas que hay operaciones junto con el saldo global del banco
acumulado hasta esa fecha
select fecope,sum(impope) from operacion group by fecope order by fecope ;
.

11. Todos los clientes (DNI) junto con el número de cuentas corrientes que tienen; pero
sólo aquellos clientes que tienen más de una cuenta corriente.
select * from ( select cliente.dnicli,count(*) as co from cliente,titular,cuenta
where cliente.dnicli=titular.dnicli and cuenta.numcta=titular.numcta and
cuenta.tipcta='corriente' group by cliente.dnicli) as cc where cc.co > '1' ;

13. Estraer las cuentas en las que no han hecho ninguna operación en un cajero de la
sucursal de la cuenta.
select cuenta.numcta from cuenta where numcta not in ( select cuenta.numcta from
cajero,cuenta,operacion where operacion.codcaj=cajero.codcaj and
(operacion.numcta=cuenta.numcta) and (cajero.codsuc=cuenta.codsuc)) ;

También podría gustarte