LINK DEL VIDEO https://drive.google.com/file/d/1hLxwSSMsjyBy01JRh8LgXzPqM20LpvVs/view?usp=share_link
DROP DATABASE TIA_UNIDAD_2
CREATE DATABASE TIA_UNIDAD_2
-- Creación de la tabla AgenciaArrendamientos
CREATE TABLE AgenciaArrendamientos (
idAgenciaArrendamiento INT PRIMARY KEY,
Nombre VARCHAR(255),
Telefono VARCHAR(20),
Direccion VARCHAR(255)
);
-- Creación de la tabla Sedes
CREATE TABLE Sedes (
idSede INT PRIMARY KEY,
Nombre VARCHAR(255),
Telefono VARCHAR(20),
Direccion VARCHAR(255),
AgenciaArrendamiento_idAgenciaAarendamiento INT,
FOREIGN KEY (AgenciaArrendamiento_idAgenciaAarendamiento) REFERENCES AgenciaArrendamientos(idAgenciaArrendamiento)
);
-- Creación de la tabla Administradores
CREATE TABLE Administradores (
idAdministrador INT PRIMARY KEY,
Nombre VARCHAR(255),
Telefono VARCHAR(20),
Email VARCHAR(255),
Sedes_idSede INT,
FOREIGN KEY (Sedes_idSede) REFERENCES Sedes(idSede)
);
-- Creación de la tabla Propiedades
CREATE TABLE Propiedades (
idPropiedades INT PRIMARY KEY,
Descripcion VARCHAR(255),
Precio DECIMAL(10,2),
Habitaciones INT,
Area DECIMAL(10,2),
Propietario VARCHAR(255),
Sedes_idSede INT,
Dueños_idDueños INT,
TipoInmueble_idTipoInmueble INT,
servicios_idServicios INT,
Ubicacion_idUbicacion INT
FOREIGN KEY (Sedes_idSede) REFERENCES Sedes(idSede),
FOREIGN KEY (Dueños_idDueños) REFERENCES Dueños(IdDueños),
FOREIGN KEY (TipoInmueble_idTipoInmueble) REFERENCES TipoInmueble(idTipoInmueble),
FOREIGN KEY (servicios_idServicios) REFERENCES Servicios(IdServicios),
FOREIGN KEY (Ubicacion_idUbicacion) REFERENCES Ubicación(idUbicacion)
);
-- Creación de la tabla TipoInmueble
CREATE TABLE TipoInmueble (
idTipoInmueble INT PRIMARY KEY,
Nombre VARCHAR(255)
);
-- Creación de la tabla Servicios
CREATE TABLE Servicios (
IdServicios INT PRIMARY KEY,
TipoServicio VARCHAR(255)
);
-- Creación de la tabla Dueños
CREATE TABLE Dueños (
IdDueños INT PRIMARY KEY,
Nombre VARCHAR(255),
Cedula VARCHAR(20),
Email VARCHAR(255)
);
-- Creación de la tabla Ubicación
CREATE TABLE Ubicación (
idUbicacion INT PRIMARY KEY,
Pais VARCHAR(255),
Ciudad VARCHAR(255),
Barrio VARCHAR(255),
Direccion VARCHAR(255)
);
-- Creación de la tabla Arriendos
CREATE TABLE Arriendos (
IdArriendo INT PRIMARY KEY,
Fecha DATE,
FormaPago VARCHAR(255),
ValorPago DECIMAL(10,2),
Clientes_idClientes INT,
Propiedades_idPropiedades INT,
FOREIGN KEY (Clientes_idClientes) REFERENCES Clientes(IdClientes),
FOREIGN KEY (Propiedades_idPropiedades) REFERENCES Propiedades(idPropiedades)
);
-- Creación de la tabla Clientes
CREATE TABLE Clientes (
IdClientes INT PRIMARY KEY,
Nombre VARCHAR(255),
Apellido VARCHAR(255),
Direccion VARCHAR(255),
Telefono VARCHAR(20)
);
-- Creación de la tabla Fiador
CREATE TABLE Fiador (
IdFiador INT PRIMARY KEY,
Nombre VARCHAR(255),
Direccion VARCHAR(255),
Telefono VARCHAR(20),
Clientes_idClientes INT,
FOREIGN KEY (Clientes_idClientes) REFERENCES Clientes(IdClientes)
);
-- Creación de la tabla Bienes
CREATE TABLE Bienes (
IdBienes INT PRIMARY KEY,
Nombre VARCHAR(255),
Direccion VARCHAR(255),
Valor DECIMAL(10,2),
Fiador_idFiador INT,
FOREIGN KEY (Fiador_idFiador) REFERENCES Fiador(IdFiador)
);
-- Creación de la tabla CertificadosLaboral
CREATE TABLE CertificadosLaboral (
IdCertificadosLaboral INT PRIMARY KEY,
Descripcion VARCHAR(255),
Fecha DATE,
Clientes_idClientes INT,
FOREIGN KEY (Clientes_idClientes) REFERENCES Clientes(IdClientes)
);
-- Creación de la tabla Pagos
CREATE TABLE Pagos (
idPago INT PRIMARY KEY,
Fecha DATE,
Monto DECIMAL(10,2),
Propiedades_idPropiedades INT,
FOREIGN KEY (Propiedades_idPropiedades) REFERENCES Propiedades(idPropiedades)
);
-- Inserción de registros en la tabla AgenciaArrendamientos
INSERT INTO AgenciaArrendamientos (idAgenciaArrendamiento, Nombre, Telefono, Direccion)
VALUES (1, 'Agencia 1', '1234567', 'Calle 1 # 1-1');
INSERT INTO AgenciaArrendamientos (idAgenciaArrendamiento, Nombre, Telefono, Direccion)
VALUES (2, 'Agencia 2', '2345678', 'Calle 2 # 2-2');
INSERT INTO AgenciaArrendamientos (idAgenciaArrendamiento, Nombre, Telefono, Direccion)
VALUES (3, 'Agencia 3', '3456789', 'Calle 3 # 3-3');
-- Inserción de datos en la tabla Sedes
INSERT INTO Sedes (idSede, Nombre, Telefono, Direccion, AgenciaArrendamiento_idAgenciaAarendamiento)
VALUES (1, 'Sede 1', '1111111', 'Calle 1 # 1-1', 1);
INSERT INTO Sedes (idSede, Nombre, Telefono, Direccion, AgenciaArrendamiento_idAgenciaAarendamiento)
VALUES (2, 'Sede 2', '2222222', 'Calle 2 # 2-2', 2);
INSERT INTO Sedes (idSede, Nombre, Telefono, Direccion, AgenciaArrendamiento_idAgenciaAarendamiento)
VALUES (3, 'Sede 3', '3333333', 'Calle 3 # 3-3', 2);
-- Inserción de datos en la tabla Administradores
INSERT INTO Administradores (idAdministrador, Nombre, Telefono, Email, Sedes_idSede)
VALUES (1, 'Admin 1', '1111111', 'admin1@sedes.com', 1);
INSERT INTO Administradores (idAdministrador, Nombre, Telefono, Email, Sedes_idSede)
VALUES (2, 'Admin 2', '2222222', 'admin2@sedes.com', 2);
INSERT INTO Administradores (idAdministrador, Nombre, Telefono, Email, Sedes_idSede)
VALUES (3, 'Admin 3', '3333333', 'admin3@sedes.com', 3);
-- Inserción de datos en la tabla Propiedades
INSERT INTO Propiedades (idPropiedades, Descripcion, Precio, Habitaciones, Area, Propietario, Sedes_idSede, Dueños_idDueños, TipoInmueble_idTipoInmueble, servicios_idServicios, Ubicacion_idUbicacion)
VALUES (1, 'Apartamento 1', 1000000.00, 4, 75.50, 'Propietario 1', 1, 1, 1, 1, 1);
INSERT INTO Propiedades (idPropiedades, Descripcion, Precio, Habitaciones, Area, Propietario, Sedes_idSede, Dueños_idDueños, TipoInmueble_idTipoInmueble, servicios_idServicios, Ubicacion_idUbicacion)
VALUES (2, 'Casa 1', 2000000.00, 4, 120.00, 'Propietario 2', 2, 2, 2, 2, 2);
INSERT INTO Propiedades (idPropiedades, Descripcion, Precio, Habitaciones, Area, Propietario, Sedes_idSede, Dueños_idDueños, TipoInmueble_idTipoInmueble, servicios_idServicios, Ubicacion_idUbicacion)
VALUES (3, 'Oficina 1', 1000000.00, 2, 60.00, 'Propietario 3', 2, 3, 3, 3, 3);
-- Inserción de datos en la tabla TipoInmueble
INSERT INTO TipoInmueble (idTipoInmueble, Nombre) VALUES
(1, 'Apartamento'),
(2, 'Casa'),
(3, 'Oficina');
-- Inserción de datos en la tabla Servicios
INSERT INTO Servicios (IdServicios, TipoServicio) VALUES
(1, 'Agua'),
(2, 'Luz'),
(3, 'Gas');
-- Inserción de datos en la tabla Dueños
INSERT INTO Dueños (IdDueños, Nombre, Cedula, Email) VALUES
(1, 'Carlos González', '1234567890', 'carlos.gonzalez@example.com'),
(2, 'Ana López', '0987654321', 'ana.lopez@example.com'),
(3, 'Jorge Pérez', '5678901234', 'mario.perez@example.com');
-- Inserción de datos en la tabla Ubicaccion
INSERT INTO Ubicación (idUbicacion, Pais, Ciudad, Barrio, Direccion) VALUES
(1, 'Colombia', 'Bogotá', 'Chapinero', 'Calle 57 # 13 - 23'),
(2, 'Colombia', 'Medellín', 'Envigado', 'Carrera 43 A # 5 A Sur - 20'),
(3, 'Colombia', 'Cali', 'Poblado', 'calle 25 #12-12');
-- Inserción de datos en la tabla Arriendos
INSERT INTO Arriendos (IdArriendo, Fecha, FormaPago, ValorPago, Clientes_idClientes, Propiedades_idPropiedades) VALUES
(1, '2022-01-01', 'Transferencia bancaria', 1500000.00, 1, 1),
(2, '2022-02-01', 'Efectivo', 1000000.00, 2, 2),
(3, '2015-01-01', 'Cheque', 1200000.00, 3, 3);
-- Inserción de datos en la tabla Clientes
INSERT INTO Clientes (IdClientes, Nombre, Apellido, Direccion, Telefono)
VALUES (1, 'Juan', 'Perez', 'Calle 123 #45-67', '3001234567');
INSERT INTO Clientes (IdClientes, Nombre, Apellido, Direccion, Telefono)
VALUES (2, 'Maria', 'Gonzalez', 'Carrera 78 #90-12', '3109876543');
INSERT INTO Clientes (IdClientes, Nombre, Apellido, Direccion, Telefono)
VALUES (3, 'Pedro', 'Rodriguez', 'Avenida 56 #23-45', '3204567890');
-- Inserción de datos en la tabla Fiador
INSERT INTO Fiador (IdFiador, Nombre, Direccion, Telefono, Clientes_idClientes)
VALUES (1, 'Luisa', 'Calle 98 #65-43', '3108765432', 1);
INSERT INTO Fiador (IdFiador, Nombre, Direccion, Telefono, Clientes_idClientes)
VALUES (2, 'Jose', 'Avenida 34 #12-56', '3207890123', 2);
INSERT INTO Fiador (IdFiador, Nombre, Direccion, Telefono, Clientes_idClientes)
VALUES (3, 'Ana', 'Carrera 67 #89-01', '3002345678', 3);
-- Inserción de datos en la tabla Bienes
INSERT INTO Bienes (IdBienes, Nombre, Direccion, Valor, Fiador_idFiador)
VALUES (1, 'Apartamento en El Poblado', 'Carrera 12 #10-32', 400000, 1);
INSERT INTO Bienes (IdBienes, Nombre, Direccion, Valor, Fiador_idFiador)
VALUES (2, 'Casa en Envigado', 'Calle 15 #20-18', 700000, 2);
INSERT INTO Bienes (IdBienes, Nombre, Direccion, Valor, Fiador_idFiador)
VALUES (3, 'Apartamento en Belén', 'Carrera 34 #45-67', 500000, 3);
-- Inserción de datos en la tabla CertificadosLaboral
INSERT INTO CertificadosLaboral (IdCertificadosLaboral, Descripcion, Fecha, Clientes_idClientes)
VALUES (1, 'Certificado laboral para crédito bancario', '2022-04-15', 1);
INSERT INTO CertificadosLaboral (IdCertificadosLaboral, Descripcion, Fecha, Clientes_idClientes)
VALUES (2, 'Certificado laboral para arriendo de inmueble', '2022-05-02', 2);
INSERT INTO CertificadosLaboral (IdCertificadosLaboral, Descripcion, Fecha, Clientes_idClientes)
VALUES (3, 'Certificado laboral para solicitud de visa', '2022-06-22', 3);
-- Inserción de registros en la tabla Pagos
INSERT INTO Pagos (idPago, Fecha, Monto, Propiedades_idPropiedades)
VALUES (1, '2023-05-01', 1000.00, 1);
INSERT INTO Pagos (idPago, Fecha, Monto, Propiedades_idPropiedades)
VALUES (2, '2023-05-05', 1500.00, 2);
INSERT INTO Pagos (idPago, Fecha, Monto, Propiedades_idPropiedades)
VALUES (3, '2023-05-10', 1200.00, 3);
--Mostrar los datos de las propiedades con número de habitaciones mayor que 3 y tiene un área mayor que 68 mts2 o son tipo casa.
SELECT * FROM Propiedades
WHERE (Habitaciones > 3 AND Area > 68) OR TipoInmueble_idTipoInmueble = (SELECT idTipoInmueble FROM TipoInmueble WHERE Nombre = 'Casa')
--Mostrar los datos de los pagos generados por la propiedad con dirección calle 25 #12-12.
SELECT p.idPago, p.Fecha, p.Monto
FROM Pagos p
JOIN Propiedades pr ON p.Propiedades_idPropiedades = pr.idPropiedades
JOIN Ubicación u ON pr.Ubicacion_idUbicacion = u.idUbicacion
WHERE u.Direccion = 'calle 25 #12-12';
--Mostrar los datos de las propiedades arrendadas en fechas menores a 01/01/2016
SELECT *
FROM Arriendos
INNER JOIN Propiedades ON Arriendos.Propiedades_idPropiedades = Propiedades.idPropiedades
WHERE Arriendos.Fecha < '2016-01-01';
--Mostrar los datos de clientes que han arrendado casas en el poblado y sus dueños son Jorge Pérez o Aníbal Ruiz
SELECT c.Nombre AS Cliente, c.Apellido, p.Descripcion AS Propiedad, d.Nombre AS Dueño
FROM Clientes c
JOIN Arriendos a ON c.IdClientes = a.Clientes_idClientes
JOIN Propiedades p ON a.Propiedades_idPropiedades = p.idPropiedades
JOIN Dueños d ON p.Dueños_idDueños = d.IdDueños
JOIN Ubicación u ON p.Ubicacion_idUbicacion = u.idUbicacion
WHERE u.Barrio = 'Poblado'
AND (d.Nombre = 'Jorge Pérez' OR d.Nombre = 'Aníbal Ruiz');