Implementación y manipulación de bases de datos

 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');

Comentarios

Entradas populares