Vous êtes sur la page 1sur 6

Base de datos de un banco 2.

- Creamos primero las tablas donde no existen claves forneas


create table cliente ( codCli char(3) primary key, NombreCli varchar(30)not null, CiudadCli varchar(30) ) create table sucursal ( NombreS varchar(30)primary key, DireccionS varchar(30), CiudadS varchar(30) )

Tablas con clave fornea, hay que hacer referencia


create table prestamo ( NroPrestamo varchar(30)primary key, Cantidad money not null, Nombres varchar(30) references sucursal(NombreS) ) create table cuenta ( NroCuenta int primary key, Saldo money not null, NombreS varchar(30) references sucursal(NombreS) ) create table debe ( codCli char(3) not null references cliente(codCli), NroPrestamo char(3)not null references prestamo(NroPrestamo), primary key(codCli, NroPrestamo) ) create table deposita ( codCli char(3)not null references cliente(CodCli), NroCuenta int not null references cuenta(NroCuenta), primary key(codCli, NroCuenta) )

3.- Ingresando informacin


insert into cliente values('c1','Ortiz','Ibarra') insert into sucursal values('Norte','Bolivar 460','Ibarra') insert into prestamo values('P2',200,'Norte') insert into cuenta values(3,300,'Amazonas') insert into debe values ('c1','P2') insert into debe values ('c2','P2') insert into deposita values('c1',1) insert into deposita values('c2',2)

3.- Para visualizar la informacin


select * from cliente select * from prestamo

select select select select

NombreCli from cliente NombreCli, CiudadCli from cliente * from sucursal where NombreS='Norte' NroCuenta, Saldo from cuenta where Saldo>100

5 de septiembre
select upper(NombreCli) from cliente select lower(NombreCli) from cliente select NombreCli from cliente select NombreS,len(NombreS) from sucursal select NombreS, 'Nro de caracteres'= len (NombreS) from sucursal select NombreS, reverse(NombreS) from sucursal select replicate(NombreS+' ', 5) from sucursal --FUNCIONES DE FECHAS USE ACADEMICA SELECT FECHANACIMIENTO, SELECT FECHANACIMIENTO, SELECT FECHANACIMIENTO, SELECT FECHANACIMIENTO,

DATEADD(yy,3,FECHANACIMIENTO) DATEADD(DD,3,FECHANACIMIENTO) DATEADD(MM,3,FECHANACIMIENTO) DATEADD(WK,3,FECHANACIMIENTO)

FROM FROM FROM FROM

ESTUDIANTE ESTUDIANTE ESTUDIANTE ESTUDIANTE

select FechaNacimiento, datediff(MM, FechaNacimiento, getdate()) from Estudiante select FechaNacimiento, datediff(YY, FechaNacimiento, getdate()) from Estudiante select getdate() --Nos da la fecha actual select day(fechaNacimiento) from Estudiante--despliegue el dia correspondiente a la fecha del estudiante select month(FechaNacimiento)from Estudiante select year(FechaNacimiento)from Estudiante select day(getdate())--dia de la fecha actual

CONSULTAS
select NroCuenta, saldo from cuenta where saldo>1000 select NroCuenta, NombreS from cuenta where NombreS!='amazonas'--Nro de cuenta que no seal de la sucursal amazonas select NroCuenta, NombreS from cuenta where NombreS='amazonas'--Solo de la sucursal amazonas --INSTRUCCION BETWEEN, instruccion que escoge rangos select NroCuenta, saldo from cuenta where saldo between 500 and 2000 select NroCuenta, saldo from cuenta where saldo>=500 and saldo<=2000-muestra lo mismo que la anterior select NroCuenta, saldo from cuenta where saldo not between 500 and 2000--negacin --INSTRUCCION IN, especificar un rago select NroCuenta, NombreS from cuenta where NombreS in('Norte','Sureste') select NroCuenta, NombreS from cuenta where NombreS not in('Norte','Sureste') --INSTRUCCION LIKE, obtiene las filas en base a una condicin select NroCuenta, NombreS from cuenta where NombreS like'N%'--sucursal que el nombre empieza con N select NroCuenta, NombreS from cuenta where NombreS like'a%' select NroCuenta, NombreS from cuenta where NombreS not like'a%'

--Determina el nombre de los clientes que viven en otavalo y cuyo nombre empieza con a select NombreCli, ciudadCli from cliente where CiudadCli in('Otavalo') and NombreCLi like'a%' --Nro de prestamos cuya cantidad sea menor que 1000 y sean de la sucursal amazonas select NroPrestamo, Cantidad, NombreS from prestamo where Cantidad<1000 and NombreS='Amazonas' select * from prestamo where NombreS ='amazonas' and cantidad<1000-con asterisco para que salgan todos los atributos --Nombre de las sucursales que no estan ubicadas en ibarra select NombreS, CiudadS from sucursal where CiudadS not in('Ibarra') select NombreS, CiudadS from sucursal where CiudadS !='Ibarra' --FUNCIONES AGREGADAS select sum(saldo) from cuenta--suma el contenido de la columna saldo select avg(saldo) from cuenta--saca el promedio de los saldos que hay en la tabla select max(saldo) from cuenta-- el valor maximo select min(saldo) from cuenta-- el valor minimo select count(saldo) from cuenta-- cuenta solo las filas que tengan saldo select count (*) from cuenta--cuenta todas las filas select * from cuenta where saldo is null select *from cuenta --AGRUPAMIENTOS select nombreS, sum(saldo) from cuenta group by NombreS--determina saldos totales por sucursal

select nombreS, avg(saldo) from cuenta group by NombreS--saldo promedio por sucursal, previo hay el agrupamiento select nombreS, min(saldo) from cuenta group by NombreS select nombreS, count(*) from cuenta group by NombreS select NombreCli, count(*)from cliente group by NombreCLi select CodCli, count (*)from deposita group by CodCLi--numero de cuentas por cliente --numero de clientes que tiene cada cuenta select NroCuenta, count (*) from deposita group by NroCuenta --codigo de los clientes que tienen cuentas select CodCli from deposita

--la solicitud anterior pero sin datos repetidos select distinct codCli from deposita

06 de septiembre DIAGRAMA RELACIONAL - Base de datos (academica, banco) - Clic derecho en database diagrams - Add las tablas que se requiera --UNION ENTRE TABLAS select * FROM CUENTA select * from sucursal select* from cuenta, sucursal --c/u de los datos de cuenta junto a la primera fila --de sucursal, el numero de filas es el producto del numero de filas de las dos tablas --los datos en columna no son coherentes porque primero habla de uina sucursal y luego de otra select NroCuenta,sucursal.nombreS, ciudadS from cuenta,sucursal where cuenta.NombreS=sucursal.NombreS --para que salgan solo datos coherentes --atributo de juntura (cuenta.NombreS=sucursal.NombreS), lo que valida --cuentas abiertas solo en sucursales de ibarra select NroCuenta,sucursal.nombreS, ciudadS from cuenta,sucursal where cuenta.NombreS=sucursal.NombreS and ciudadS='Ibarra' and cuenta.nombreS='Amazonas'--solo sucursal amazonas de la ciudad de ibarra --sisntaxis abreviada --SQL ESTANDAR select NroCuenta,s.nombreS, ciudadS from cuenta c,sucursal s where c.NombreS=s.NombreS and ciudadS='Ibarra' and c.nombreS='Amazonas' --ANSI SQL select NroCuenta, c. NombreS, ciudadS from cuenta c inner join sucursal s--join=junturas en ingles on c.NombreS=s.NombreS where ciudadS='Ibarra' and c.NombreS='Amazonas' --nombres de los clientes que tienen prestamos en la sucursal norte select NombreCli,NombreS from cliente cl, debe d, prestamo p where cl.CodCli=d.CodCli and d.NroPrestamo=p.NroPrestamo and NombreS='Norte' --lo anterior con ANSI SQL select nombreCli, nombreS from cliente cl inner join debe d on cl.CodCli=d.CodCLi inner join prestamo p on d.NroPrestamo=p.NroPrestamo where NombreS='Norte' --nombres de los clientes que tiene cuentas con saldos mayores que mil en sucursales de la ciudad de Ibarra --hacer porque no me salia

Vous aimerez peut-être aussi