domingo, 14 de mayo de 2023

Implementación y manipulación de bases de datos

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

No hay comentarios:

Publicar un comentario

Mapa mental-informe final de auditoría