Está en la página 1de 7

Crear una base datos

CREATE DATABASE BaseDeDatosCarros;

Crear 4 tablas

CREATE TABLE Marcas (


MarcaID INT PRIMARY KEY,
NombreMarca VARCHAR(50)

CREATE TABLE Modelos (


ModeloID INT PRIMARY KEY,
NombreModelo VARCHAR(50),
MarcaID INT,
FOREIGN KEY (MarcaID) REFERENCES Marcas(MarcaID)

CREATE TABLE Carros (


CarroID INT PRIMARY KEY,
Placa VARCHAR(10),
ModeloID INT,
AnioFabricacion INT,
FOREIGN KEY (ModeloID) REFERENCES Modelos(ModeloID)

CREATE TABLE Propietarios (


PropietarioID INT PRIMARY KEY,
NombrePropietario VARCHAR(100),
CarroID INT,
FOREIGN KEY (CarroID) REFERENCES Carros(CarroID)

Davis Acevedo Batista ID:A00057710


Insertar no menos de 20 registros en cada tabla

INSERT INTO Marcas (MarcaID, NombreMarca) VALUES


(1, 'Toyota'),
(2, 'Honda'),
(3, 'Ford'),
(4, 'Chevrolet'),
(5, 'Alfa Romeo'),
(6, 'Audi'),
(7, 'citroen');
(8, Fiat);
(9, Volskswagen);
(10, Mercedes-Benz);

INSERT INTO Modelos (ModeloID, NombreModelo, MarcaID) VALUES


(101, 'Corolla', 1),
(102, 'Civic', 2),
(103, 'F-150', 3),
(104, 'Silverado', 4),
(105, 'Giulietta', 5),
(106, 'A3', 6),
(107, 'C4', 7);
(108, '500X', 8);
(109, 'Golf', 9);
(1010, 'Clase_C', 10);

INSERT INTO Carros (CarroID, Placa, ModeloID, AnioFabricacion) VALUES


(1001, 'ABC123', 101, 2020),
(1002, 'XYZ456', 102, 2019),
(1003, '123DEF', 103, 2022),
(1004, '456GHI', 104, 2021),
(1005, 'JKL789', 105, 2020),
(1006, '2KL78F', 106, 2022),
(1007, 'WEZ486', 107, 2020),
(1008, 'CBJ1S3', 108, 2019),
(1009, '2GA7EF', 109, 2018);
(1010, 'CAJ1F3', 110, 2023);

Davis Acevedo Batista ID:A00057710


INSERT INTO Propietarios (PropietarioID, NombrePropietario, CarroID)
VALUES
(10001, 'Juan Pérez', 1001),
(10002, 'María Gómez', 1002),
(10003, 'Carlos Rodríguez', 1003),
(10004, 'Ana Martínez', 1004),
(10005, 'Ramon Castro', 1005),
(10006, 'Favio Ramirez', 1006),
(10007, 'Carmen Soto', 1007);
(10008, 'Rocio Valdez', 1008);
(10009, 'Ana Valdez', 1009);
(10008, 'Juan Martínez', 1008);

Realizar 50 consultas a estas tablas

CONSULTA 1

SELECT * FROM Carros;

CONSULTA 2

SELECT Carros.*, Propietarios.NombrePropietario


FROM Carros
JOIN Propietarios ON Carros.CarroID = Propietarios.CarroID;

CONSULTA 3

SELECT AnioFabricacion, COUNT(*) as CantidadCarros


FROM Carros
GROUP BY AnioFabricacion;

CONSULTA 4

SELECT Carros.*, Modelos.NombreModelo, Marcas.NombreMarca


FROM Carros
JOIN Modelos ON Carros.ModeloID = Modelos.ModeloID
JOIN Marcas ON Modelos.MarcaID = Marcas.MarcaID
WHERE Marcas.NombreMarca = 'Toyota';

Davis Acevedo Batista ID:A00057710


CONSULTA 5

SELECT MIN(AnioFabricacion) as AnioMinimo, MAX(AnioFabricacion) as


AnioMaximo
FROM Carros;

CONSULTA 6

DELETE FROM Carros


WHERE CarroID = 1002;

CONSULTA 7

SELECT Carros.*, Modelos.NombreModelo, Marcas.NombreMarca


FROM Carros
JOIN Modelos ON Carros.ModeloID = Modelos.ModeloID
JOIN Marcas ON Modelos.MarcaID = Marcas.MarcaID
ORDER BY Carros.AnioFabricacion DESC;

CONSULTA 8

SELECT Modelos.NombreModelo, COUNT(*) as CantidadCarros


FROM Carros
JOIN Modelos ON Carros.ModeloID = Modelos.ModeloID
GROUP BY Modelos.NombreModelo;

CONSULTA 9

SELECT Modelos.NombreModelo, COUNT(*) as CantidadCarros


FROM Carros
JOIN Modelos ON Carros.ModeloID = Modelos.ModeloID
GROUP BY Modelos.NombreModelo
ORDER BY CantidadCarros DESC
LIMIT 1;

CONSULTA 10

SELECT AVG(YEAR(CURRENT_DATE) - AnioFabricacion) as EdadPromedio


FROM Carros;

CONSULTA 11

SELECT * FROM Carros


WHERE AnioFabricacion = 2021;

CONSULTA 12

SELECT Modelos.NombreModelo, Marcas.NombreMarca


FROM Modelos
JOIN Marcas ON Modelos.MarcaID = Marcas.MarcaID;

Davis Acevedo Batista ID:A00057710


CONSULTA 13

SELECT Propietarios.NombrePropietario, COUNT(*) as CantidadCarros


FROM Propietarios
GROUP BY Propietarios.NombrePropietario
ORDER BY CantidadCarros DESC
LIMIT 1;

CONSULTA 14

SELECT Carros.*, Modelos.NombreModelo, Marcas.NombreMarca


FROM Carros
JOIN Modelos ON Carros.ModeloID = Modelos.ModeloID
JOIN Marcas ON Modelos.MarcaID = Marcas.MarcaID
ORDER BY Marcas.NombreMarca, Modelos.NombreModelo;

CONSULTA 15

SELECT COUNT(*) as TotalCarros


FROM Carros;

CONSULTA 16

SELECT * FROM Carros


WHERE AnioFabricacion < 2020;

CONSULTA 17

SELECT Carros.*, Modelos.NombreModelo, Marcas.NombreMarca


FROM Carros
JOIN Modelos ON Carros.ModeloID = Modelos.ModeloID
JOIN Marcas ON Modelos.MarcaID = Marcas.MarcaID
WHERE Carros.AnioFabricacion > 2018;

CONSULTA 18

SELECT Marcas.NombreMarca, COUNT(*) as CantidadCarros


FROM Carros
JOIN Modelos ON Carros.ModeloID = Modelos.ModeloID
JOIN Marcas ON Modelos.MarcaID = Marcas.MarcaID
GROUP BY Marcas.NombreMarca
ORDER BY CantidadCarros DESC
LIMIT 1;

CONSULTA 19

SELECT Marcas.NombreMarca, COUNT(*) as CantidadCarros


FROM Carros
JOIN Modelos ON Carros.ModeloID = Modelos.ModeloID
JOIN Marcas ON Modelos.MarcaID = Marcas.MarcaID
GROUP BY Marcas.NombreMarca;

Davis Acevedo Batista ID:A00057710


CONSULTA 20

DELETE FROM Modelos


WHERE ModeloID = 107;

Actualizar 10 registros

DELIMITER //

CREATE PROCEDURE ActualizarAnioFabricacionParaVarios(


IN NumRegistros INT,
IN NuevoAnio INT
)
BEGIN
UPDATE Carros
SET AnioFabricacion = NuevoAnio
ORDER BY CarroID
LIMIT NumRegistros;
END //

DELIMITER ;

Borrar 5 registros

DELETE FROM Modelos


WHERE ModeloID = 107;

DELETE FROM Carros


WHERE CarroID = 1002;

DELETE FROM Propietarios


WHERE NombrePropietario = 'Juan Pérez';

DELETE FROM Carros


WHERE Placa = '123DEF';

DELETE FROM Marcas


WHERE NombreModelo = 'Toyota';

Davis Acevedo Batista ID:A00057710


Crear 2 vistas

CREATE VIEW CarrosConPropietarios AS


SELECT Carros.*, Propietarios.NombrePropietario
FROM Carros
JOIN Propietarios ON Carros.CarroID = Propietarios.CarroID;

CREATE VIEW CarrosPorMarca AS


SELECT Marcas.NombreMarca, COUNT(*) as CantidadCarros
FROM Carros
JOIN Modelos ON Carros.ModeloID = Modelos.ModeloID
JOIN Marcas ON Modelos.MarcaID = Marcas.MarcaID
GROUP BY Marcas.NombreMarca;

Crear un procedimiento almacenado

CALL ActualizarAnioFabricacionParaVarios(10, 2023);

Davis Acevedo Batista ID:A00057710

También podría gustarte