Act 6 Base de Datos
Act 6 Base de Datos
Act 6 Base de Datos
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));
-- ---------------------------------------------------------------------------
--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.
-- ---------------------------------------------------------------------------
-- ---------------------------------------------------------------------------
--4. Listar los datos de los préstamos otorgados por bancos ubicados en Nuevo León.
-- ---------------------------------------------------------------------------
-- ---------------------------------------------------------------------------
--5. Listar los datos de los clientes que tienen cuentas en el banco Banamex.
-- ---------------------------------------------------------------------------
-- ---------------------------------------------------------------------------
--7. Obtener la cantidad de dinero que ha prestado el banco Banamex.
-- ---------------------------------------------------------------------------
select * from banco;
select * from prestamo;
-- ---------------------------------------------------------------------------
--8. Obtener la cantidad de dinero que tiene ahorrado Fernando Salazar Vázquez.
-- ---------------------------------------------------------------------------
select * from cuenta;
select * from cliente;