Act 6 Base de Datos

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 6

CREATE database banco ;

USE banco ;

-- -----------------------------------------------------
-- Table banco
-- -----------------------------------------------------
CREATE TABLE banco (
codigo SMALLINT NOT NULL,
nombre VARCHAR(45) NOT NULL,
direccionMatriz VARCHAR(50) NOT NULL,
PRIMARY KEY (codigo));

-- -----------------------------------------------------
-- Table sucursal
-- -----------------------------------------------------
CREATE TABLE sucursal (
numSucursal INT NOT NULL,
banco_codigo SMALLINT NOT NULL,
direccion VARCHAR(45) NOT NULL,
estado VARCHAR(45) NOT NULL,
PRIMARY KEY (numSucursal, banco_codigo),
FOREIGN KEY (banco_codigo)
REFERENCES banco (codigo));

-- -----------------------------------------------------
-- Table cuenta
-- -----------------------------------------------------
CREATE TABLE cuenta (
numCuenta BIGINT NOT NULL,
tipo CHAR(10) NOT NULL,
saldo DECIMAL NOT NULL,
sucursal_numSucursal INT NOT NULL,
sucursal_banco_codigo SMALLINT NOT NULL,
PRIMARY KEY (numCuenta),
FOREIGN KEY (sucursal_numSucursal , sucursal_banco_codigo)
REFERENCES sucursal (numSucursal , banco_codigo));

-- -----------------------------------------------------
-- Table prestamo
-- -----------------------------------------------------
CREATE TABLE prestamo (
numPrest BIGINT NOT NULL,
tipo CHAR(10) NOT NULL,
importe DECIMAL NOT NULL,
sucursal_numSucursal INT NOT NULL,
sucursal_banco_codigo SMALLINT NOT NULL,
PRIMARY KEY (numPrest),
FOREIGN KEY (sucursal_numSucursal , sucursal_banco_codigo)
REFERENCES sucursal (numSucursal , banco_codigo));

-- -----------------------------------------------------
-- Table cliente
-- -----------------------------------------------------
CREATE TABLE cliente (
nss BIGINT NOT NULL,
nombre VARCHAR(45) NOT NULL,
apellidos VARCHAR(45) NOT NULL,
direccion VARCHAR(45) NOT NULL,
telefono CHAR(11),
PRIMARY KEY (nss));

-- -----------------------------------------------------
-- Table cliente_has_cuenta
-- -----------------------------------------------------
CREATE TABLE cliente_has_cuenta (
cliente_nss BIGINT NOT NULL,
cuenta_numCuenta BIGINT NOT NULL,
PRIMARY KEY (cliente_nss, cuenta_numCuenta),
FOREIGN KEY (cliente_nss)
REFERENCES cliente (nss),
FOREIGN KEY (cuenta_numCuenta)
REFERENCES cuenta (numCuenta));

-- -----------------------------------------------------
-- Table cliente_has_prestamo
-- -----------------------------------------------------
CREATE TABLE cliente_has_prestamo (
cliente_nss BIGINT NOT NULL,
prestamo_numPrest BIGINT NOT NULL,
PRIMARY KEY (cliente_nss, prestamo_numPrest),
FOREIGN KEY (cliente_nss)
REFERENCES cliente (nss),
FOREIGN KEY (prestamo_numPrest)
REFERENCES prestamo (numPrest));

insert into banco values


(1, 'BANAMEX', 'ROBLE 1250 FRACC. DEL VERDE MEXICO, D.F.'),
(2, 'BANCOMER','AV. LA PAZ 546 CENTRO GUADALAJARA, JAL.'),
(3, 'SERFIN', 'OLMO 2356 COL. ORIZABA MONTERREY, N.L.');

insert into sucursal values


(1, 2, 'CHAPULTEPEC 2100 COL. MODERNA', 'JALISCO'),
(2, 2, 'ALCALDE 215 COL. CENTRO','JALISCO'),
(8, 1, 'AV. MÉXICO 5400 COL. MONRAZ', 'JALISCO'),
(6, 3, 'MATEOS 2060 COL. LA CALMA', 'JALISCO'),
(3, 2, 'ARTEAGA 5422 COL. EL CHARRO', 'NUEVO LEON'),
(5, 1, 'VALLARTA 250 COL. ESTANZUELA', 'NUEVO LEON'),
(1, 3, 'PINO 330 COL.EL BOSQUE', 'NUEVO LEON'),
(2, 3, 'JUAREZ 400 COL. AZTECA', 'NUEVO LEON');

insert into cuenta values


(6405284, 'INVERSION', 30500, 2, 2),
(6407459, 'CHEQUES', 12780.00, 1, 2),
(6485240, 'CHEQUES', 17600.00, 2, 2),
(7958240, 'INVERSION', 25300.00, 8, 1),
(8525820, 'CHEQUES', 5450.00, 6, 3),
(6490521, 'INVERSION', 13990.00, 1, 2),
(7982506, 'CHEQUES', 7800.00, 8, 1),
(6470825, 'INVERSION', 6000.00, 2, 2),
(7895462, 'INVERSION', 21780.00, 5, 1),
(9586421, 'CHEQUES', 22500.00, 3, 2),
(9568246, 'CHEQUES', 9620.00, 3, 2),
(6582547, 'INVERSION', 60000.00, 2, 3),
(6598251, 'CHEQUES', 11900.00, 1, 3),
(7895423, 'INVERSION', 33980.00, 5, 1),
(6589920, 'CHEQUES', 6800.00, 1, 3);

insert into prestamo values


(1253658 , 'TASA 2', 15000.00, 2, 2),
(1258864 , 'TASA 2', 25000.00, 8, 1),
(1258941 , 'TASA 4', 120000.00, 1, 2),
(2136854 , 'TASA 3', 30000.00, 8, 1),
(1609852 , 'TASA 1', 600000.00, 6, 3),
(2138546 , 'TASA 4', 12500.00, 2, 2),
(3698524 , 'TASA 4', 750000.00, 3, 2),
(2585213 , 'TASA 2', 10000.00, 1, 3),
(2589625 , 'TASA 2', 17000.00, 1, 3),
(3687421 , 'TASA 3', 30000.00, 3, 2),
(7894329 , 'TASA 1', 11500.00, 5, 1),
(2695014 , 'TASA 3', 120000.00, 2, 3);

insert into cliente values


(4937106, 'JORGE', 'LOMELI SANCHEZ' , 'OLMEDO 500 COL. ATLAS', 31352926),
(4950230, 'VALENTE', 'GOMEZ AVILA' , 'ROBLE 250 COL EL FRESNO', 38112954),
(4987525, 'HIMELDA', 'FLORES CARREON' , 'COZUMEL 2650 JARDINES DEL SUR', 32162892),
(4952012, 'EDUARDO', 'GONZALEZ REYES' , 'CORELLI 5403 PRADOS GUADALUPE',null),
(4987528, 'JOSEFINA', 'GOMEZ SANCHEZ' , 'ANTILLAS 400 COL. SAN JOSE', 31598245),
(4965854, 'FERNANDO', 'SALAZAR VAZQUEZ' , 'NARANJO 500 COL. EL PISTACHE',null),
(4982501, 'JOSE LUIS', 'ARELLANO REYES' , 'MAESTROS 2156 COL. LA NORMAL',
36374412),
(5023698, 'RAUL', 'TREVIÑO ALVAREZ' , 'PICASSO 5465 COL. PINTORES', 83963052),
(5014785, 'MARIA', 'GARZA GARZA' , 'MONTEALBAN 5466 COL. CAPORALES',83982515),
(5039864, 'HOMERO', 'FLORES GONZALEZ' , 'SANDIA 500 COL. EL VERGEL',null),
(5078953, 'JUAN', 'TORRES GOMEZ' , 'ATEMAJAC 4502 COL. ATEMAJAC', 83229360),
(5048793, 'ARTURO', 'DAVILA CRUZ' , 'SALINAS 690 FRACC. COLON',null),
(5023008, 'RIGOBERTO', 'PLASCENCIA ORTEGA', 'ALEMANIA 9625 COL. EUROPA',null),
(5096542, 'GLORIA', 'MENDEZ CAMPOY', 'AHUEHUTES 1250 COL. EL OLVIDO', 83442549);

insert into cliente_has_cuenta(cuenta_numCuenta,cliente_nss) values


(6405284, 4950230),
(6407459, 4937106),
(6485240, 4987525),
(7958240, 4952012),
(8525820, 4987528),
(6490521, 4965854),
(7982506, 4952012),
(6470825, 4987525),
(7895462, 5039864),
(9586421, 5039864),
(9568246, 5048793),
(6582547, 5096542),
(6598251, 5023008),
(6582547, 5023698),
(6589920, 5023698);

insert into cliente_has_prestamo(prestamo_numPrest,cliente_nss) values


(1253658, 4982501),
(1258864, 4987525),
(1258941, 4937106),
(2136854, 4952012),
(2136854, 4965854),
(2138546, 4950230),
(3698524, 5014785),
(2585213, 5096542),
(2589625, 5078953),
(3687421, 5023008),
(7894329, 5014785),
(2695014, 5039864);

-- ---------------------------------------------------------------------------
--1. Listar los datos de las sucursales de los bancos ubicados en Nuevo León.
-- ---------------------------------------------------------------------------
select * from sucursal;
select * from sucursal where estado = 'nuevo leon';

-- ---------------------------------------------------------------------------
--2.Listar los datos de las sucursales del banco Serfin.
-- ---------------------------------------------------------------------------
select * from sucursal where banco_codigo=3;
select s.*, b.nombre from sucursal s
join banco b on s.banco_codigo = b.codigo
where b.nombre = 'serfin';

-- ---------------------------------------------------------------------------
--3. Listar los datos de las cuentas que pertenecen a bancos de Jalisco.
-- ---------------------------------------------------------------------------

select * from cuenta;


select * from sucursal;
select cu.*, s.estado from cuenta cu
join sucursal s on cu.sucursal_numSucursal = s.numSucursal and
cu.sucursal_banco_codigo = s.banco_codigo
where s.estado = 'Jalisco';

-- ---------------------------------------------------------------------------
--4. Listar los datos de los préstamos otorgados por bancos ubicados en Nuevo León.
-- ---------------------------------------------------------------------------

select * from prestamo;


select * from sucursal;
select pr.*, s.estado from prestamo pr
join sucursal s on pr.sucursal_banco_codigo = s.banco_codigo and
pr.sucursal_numSucursal = s.numSucursal
where s.estado = 'nuevo leon'

-- ---------------------------------------------------------------------------
--5. Listar los datos de los clientes que tienen cuentas en el banco Banamex.
-- ---------------------------------------------------------------------------

select * from cliente;


select * from cliente_has_cuenta;
select * from cuenta;
select * from banco;

select cl.*, b.nombre from cliente cl


join cliente_has_cuenta mc on cl.nss = mc.cliente_nss
join cuenta c on mc.cuenta_numCuenta = c.numCuenta
join banco b on c.sucursal_banco_codigo = b.codigo
where b.nombre = 'banamex';
-- ---------------------------------------------------------------------------
--6. Listar los datos de los clientes que tienen préstamos en bancos de Jalisco.
-- ---------------------------------------------------------------------------

select * from cliente;


select * from cliente_has_prestamo;
select * from prestamo;
select * from sucursal;

select cl.*,s.estado from cliente cl


join cliente_has_prestamo mp on cl.nss = mp.cliente_nss
join prestamo p on p.numPrest =mp.prestamo_numPrest
join sucursal s on s.banco_codigo = p.sucursal_banco_codigo and s.numSucursal =
p.sucursal_numSucursal
where s.estado = 'jalisco';

-- ---------------------------------------------------------------------------
--7. Obtener la cantidad de dinero que ha prestado el banco Banamex.
-- ---------------------------------------------------------------------------
select * from banco;
select * from prestamo;

select b.nombre,sum(p.importe) suma from prestamo p


join banco b on p.sucursal_banco_codigo = b.codigo
where b.nombre = 'banamex'
group by b.nombre;

-- ---------------------------------------------------------------------------
--8. Obtener la cantidad de dinero que tiene ahorrado Fernando Salazar Vázquez.
-- ---------------------------------------------------------------------------
select * from cuenta;
select * from cliente;

select c.saldo,cl.nombre,cl.apellidos from cuenta c


join cliente_has_cuenta mc on mc.cuenta_numCuenta = c.numCuenta
join cliente cl on cl.nss = mc.cliente_nss
where cl.nombre = 'fernando' and cl.apellidos='salazar Vazquez';
-- ---------------------------------------------------------------------------
--9. Listar nombre del banco y número de sucursal en las que tiene la cuenta
Josefina Gómez Sánchez.
-- ---------------------------------------------------------------------------
select * from banco;
select * from sucursal;
select * from cuenta;
select * from cliente;

select b.nombre,s.numsucursal,c.numCuenta,cl.nombre,cl.apellidos from banco b


join sucursal s on s.banco_codigo = b.codigo
join cuenta c on c.sucursal_banco_codigo = s.banco_codigo and
c.sucursal_numSucursal = s.numSucursal
join cliente_has_cuenta mc on mc.cuenta_numCuenta = c.numCuenta
join cliente cl on cl.nss = mc.cliente_nss
where cl.nombre = 'josefina' and cl.apellidos = 'gomez sanchez';
-- ---------------------------------------------------------------------------
--10. Obtener la cantidad de cuentas que tiene cada uno de los bancos.
-- ---------------------------------------------------------------------------
select * from cuenta;
select * from banco;
select b.nombre,count(c.sucursal_numSucursal) numero_cuentas from cuenta c
join banco b on b.codigo = c.sucursal_banco_codigo
group by b.nombre;

También podría gustarte