Base de Datos para Sistema de Vehículos
1. Script de Base de Datos para Oracle
-- Eliminar tablas si existen
DROP TABLE vehiculo CASCADE CONSTRAINTS;
DROP TABLE marca CASCADE CONSTRAINTS;
DROP TABLE pais CASCADE CONSTRAINTS;
-- Crear tabla PAIS
CREATE TABLE pais (
idpais NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
nombre_pais VARCHAR2(100) NOT NULL UNIQUE,
continente VARCHAR2(50),
codigo_iso VARCHAR2(3)
);
-- Crear tabla MARCA
CREATE TABLE marca (
idmarca NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
nombre_marca VARCHAR2(100) NOT NULL UNIQUE,
idpais NUMBER NOT NULL,
año_fundacion NUMBER,
sitio_web VARCHAR2(200),
CONSTRAINT fk_marca_pais FOREIGN KEY (idpais) REFERENCES
pais(idpais)
);
-- Crear tabla VEHICULO
CREATE TABLE vehiculo (
idvehiculo NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY
KEY,
placa VARCHAR2(10) UNIQUE NOT NULL,
id_marca NUMBER NOT NULL,
modelo VARCHAR2(100) NOT NULL,
color VARCHAR2(50),
anio_fabricacion NUMBER NOT NULL,
nro_puertas NUMBER,
combustible VARCHAR2(20) NOT NULL,
precio NUMBER(10,2),
fecha_registro DATE DEFAULT SYSDATE,
estado VARCHAR2(20) DEFAULT 'ACTIVO',
CONSTRAINT fk_vehiculo_marca FOREIGN KEY (id_marca)
REFERENCES marca(idmarca),
CONSTRAINT chk_anio CHECK (anio_fabricacion BETWEEN 1900
AND EXTRACT(YEAR FROM SYSDATE) + 1),
CONSTRAINT chk_puertas CHECK (nro_puertas BETWEEN 2 AND 6),
CONSTRAINT chk_combustible CHECK (combustible IN ('GASOLINA',
'DIESEL', 'ELÉCTRICO', 'HÍBRIDO', 'GAS'))
);
-- Crear índices para mejorar rendimiento
CREATE INDEX idx_vehiculo_marca ON vehiculo(id_marca);
CREATE INDEX idx_vehiculo_anio ON vehiculo(anio_fabricacion);
CREATE INDEX idx_vehiculo_combustible ON vehiculo(combustible);
CREATE INDEX idx_marca_pais ON marca(idpais);
CREATE INDEX idx_vehiculo_placa ON vehiculo(placa);
-- Crear secuencia para números de placa (opcional)
CREATE SEQUENCE seq_placa START WITH 1000 INCREMENT BY 1;
-- Vista para reportes consolidados
CREATE VIEW vista_vehiculos_completa AS
SELECT
v.idvehiculo,
v.placa,
m.nombre_marca,
p.nombre_pais as pais_origen,
v.modelo,
v.color,
v.anio_fabricacion,
v.nro_puertas,
v.combustible,
v.precio,
v.fecha_registro,
v.estado
FROM vehiculo v
JOIN marca m ON v.id_marca = m.idmarca
JOIN pais p ON m.idpais = p.idpais;
2. Inserción de Datos
-- Script para insertar 50 marcas de vehículos con datos reales
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Alemania', 'Europa', 'DEU');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Japón', 'Asia', 'JPN');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Estados Unidos', 'América', 'USA');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Francia', 'Europa', 'FRA');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Italia', 'Europa', 'ITA');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Corea del Sur', 'Asia', 'KOR');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Reino Unido', 'Europa', 'GBR');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Suecia', 'Europa', 'SWE');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('China', 'Asia', 'CHN');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('India', 'Asia', 'IND');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Brasil', 'América', 'BRA');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('República Checa', 'Europa', 'CZE');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Rumanía', 'Europa', 'ROU');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Rusia', 'Europa', 'RUS');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Malasia', 'Asia', 'MYS');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('España', 'Europa', 'ESP');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Canadá', 'América', 'CAN');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Australia', 'Oceanía', 'AUS');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Polonia', 'Europa', 'POL');
INSERT INTO pais (nombre_pais, continente, codigo_iso) VALUES
('Turquía', 'Asia', 'TUR');
-- Ahora insertar las 50 marcas
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Toyota', 2, 1937, 'www.toyota.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Volkswagen', 1, 1937, 'www.volkswagen.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Ford', 3, 1903, 'www.ford.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Mercedes-Benz', 1, 1926, 'www.mercedes-benz.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('BMW', 1, 1916, 'www.bmw.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Honda', 2, 1948, 'www.honda.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Nissan', 2, 1933, 'www.nissan.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Hyundai', 6, 1967, 'www.hyundai.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Kia', 6, 1944, 'www.kia.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Chevrolet', 3, 1911, 'www.chevrolet.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Renault', 4, 1899, 'www.renault.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Peugeot', 4, 1810, 'www.peugeot.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Fiat', 5, 1899, 'www.fiat.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Audi', 1, 1909, 'www.audi.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Volvo', 8, 1927, 'www.volvo.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Mazda', 2, 1920, 'www.mazda.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Subaru', 2, 1953, 'www.subaru.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Mitsubishi', 2, 1870, 'www.mitsubishi.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Lexus', 2, 1989, 'www.lexus.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Jeep', 3, 1941, 'www.jeep.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Dodge', 3, 1900, 'www.dodge.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Chrysler', 3, 1925, 'www.chrysler.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Cadillac', 3, 1902, 'www.cadillac.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Buick', 3, 1903, 'www.buick.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('GMC', 3, 1901, 'www.gmc.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Tesla', 3, 2003, 'www.tesla.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Porsche', 1, 1931, 'www.porsche.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Opel', 1, 1862, 'www.opel.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Mini', 7, 1959, 'www.mini.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Jaguar', 7, 1922, 'www.jaguar.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Land Rover', 7, 1948, 'www.landrover.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Bentley', 7, 1919, 'www.bentleymotors.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Rolls-Royce', 7, 1906, 'www.rolls-roycemotorcars.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Aston Martin', 7, 1913, 'www.astonmartin.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Citroën', 4, 1919, 'www.citroen.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('DS Automobiles', 4, 2009, 'www.dsautomobiles.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Alfa Romeo', 5, 1910, 'www.alfaromeo.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Maserati', 5, 1914, 'www.maserati.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Ferrari', 5, 1939, 'www.ferrari.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Lamborghini', 5, 1963, 'www.lamborghini.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Lada', 14, 1966, 'www.lada.ru');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Škoda', 12, 1895, 'www.skoda-auto.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Dacia', 13, 1966, 'www.dacia.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Seat', 16, 1950, 'www.seat.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Tata Motors', 10, 1945, 'www.tatamotors.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Mahindra', 10, 1945, 'www.mahindra.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Proton', 15, 1983, 'www.proton.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Geely', 9, 1986, 'www.geely.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('BYD', 9, 1995, 'www.byd.com');
INSERT INTO marca (nombre_marca, idpais, año_fundacion, sitio_web)
VALUES ('Great Wall', 9, 1984, 'www.gwm-global.com');
-- Verificar que se insertaron exactamente 50 marcas
SELECT COUNT(*) AS total_marcas FROM marca;
-- Ahora insertar los 50 vehículos
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('ABC-123', 1, 'Corolla', 'Blanco', 2022, 4, 'GASOLINA',
25000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('DEF-456', 2, 'Golf', 'Negro', 2021, 4, 'GASOLINA', 28000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('GHI-789', 3, 'F-150', 'Rojo', 2023, 2, 'DIESEL', 45000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('JKL-012', 4, 'Clase C', 'Gris', 2022, 4, 'GASOLINA', 42000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('MNO-345', 5, 'Serie 3', 'Azul', 2023, 4, 'HÍBRIDO', 38000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('PQR-678', 6, 'Civic', 'Plateado', 2022, 4, 'GASOLINA',
26000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('STU-901', 7, 'Sentra', 'Blanco', 2021, 4, 'GASOLINA',
22000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('VWX-234', 8, 'Tucson', 'Negro', 2023, 4, 'DIESEL', 32000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('YZA-567', 9, 'Sportage', 'Verde', 2022, 4, 'GASOLINA',
29000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('BCD-890', 10, 'Malibu', 'Rojo', 2023, 4, 'GASOLINA',
27000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('EFG-123', 11, 'Clio', 'Amarillo', 2021, 2, 'GASOLINA',
18000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('HIJ-456', 12, '208', 'Gris', 2022, 4, 'ELÉCTRICO', 35000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('KLM-789', 13, '500', 'Blanco', 2023, 2, 'GASOLINA',
21000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('NOP-012', 14, 'A4', 'Negro', 2022, 4, 'DIESEL', 41000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('QRS-345', 15, 'XC60', 'Azul', 2023, 4, 'HÍBRIDO', 48000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('TUV-678', 16, 'CX-5', 'Rojo', 2022, 4, 'GASOLINA', 31000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('WXY-901', 17, 'Outback', 'Verde', 2023, 4, 'GASOLINA',
35000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('ZAB-234', 18, 'Outlander', 'Plateado', 2021, 4, 'GASOLINA',
28000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('CDE-567', 19, 'RX 350', 'Blanco', 2023, 4, 'GASOLINA',
52000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('FGH-890', 20, 'Wrangler', 'Amarillo', 2022, 2, 'DIESEL',
38000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('IJK-123', 21, 'Charger', 'Negro', 2023, 4, 'GASOLINA',
42000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('LMN-456', 22, '300', 'Gris', 2022, 4, 'GASOLINA', 35000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('OPQ-789', 23, 'Escalade', 'Negro', 2023, 4, 'DIESEL',
85000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('RST-012', 24, 'Enclave', 'Azul', 2022, 4, 'GASOLINA',
45000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('UVW-345', 25, 'Sierra', 'Blanco', 2023, 2, 'DIESEL',
55000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('XYZ-678', 26, 'Model 3', 'Rojo', 2023, 4, 'ELÉCTRICO',
42000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('AAA-901', 27, '911', 'Amarillo', 2022, 2, 'GASOLINA',
120000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('BBB-234', 28, 'Corsa', 'Verde', 2021, 4, 'GASOLINA',
19000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('CCC-567', 29, 'Cooper', 'Azul', 2023, 2, 'GASOLINA',
32000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('DDD-890', 30, 'F-Pace', 'Plateado', 2022, 4, 'DIESEL',
58000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('EEE-123', 31, 'Discovery', 'Blanco', 2023, 4, 'HÍBRIDO',
72000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('FFF-456', 32, 'Continental', 'Negro', 2022, 4, 'GASOLINA',
220000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('GGG-789', 33, 'Ghost', 'Gris', 2023, 4, 'GASOLINA',
350000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('HHH-012', 34, 'DB11', 'Rojo', 2022, 2, 'GASOLINA',
210000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('III-345', 35, 'C4', 'Amarillo', 2021, 4, 'GASOLINA', 23000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('JJJ-678', 36, 'DS7', 'Verde', 2023, 4, 'ELÉCTRICO', 48000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('KKK-901', 37, 'Giulia', 'Azul', 2022, 4, 'GASOLINA',
45000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('LLL-234', 38, 'Ghibli', 'Plateado', 2023, 4, 'GASOLINA',
75000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('MMM-567', 39, 'Portofino', 'Rojo', 2022, 2, 'GASOLINA',
220000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('NNN-890', 40, 'Huracán', 'Naranja', 2023, 2, 'GASOLINA',
210000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('OOO-123', 41, 'Granta', 'Blanco', 2021, 4, 'GASOLINA',
12000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('PPP-456', 42, 'Octavia', 'Negro', 2022, 4, 'DIESEL',
28000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('QQQ-789', 43, 'Sandero', 'Gris', 2023, 4, 'GASOLINA',
15000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('RRR-012', 44, 'Ibiza', 'Rojo', 2022, 2, 'GASOLINA', 19000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('SSS-345', 45, 'Nexon', 'Azul', 2021, 4, 'GASOLINA',
14000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('TTT-678', 46, 'Scorpio', 'Blanco', 2023, 4, 'DIESEL',
22000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('UUU-901', 47, 'X70', 'Plateado', 2022, 4, 'GASOLINA',
25000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('VVV-234', 48, 'Coolray', 'Verde', 2023, 4, 'GASOLINA',
23000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('WWW-567', 49, 'Han', 'Negro', 2022, 4, 'ELÉCTRICO',
35000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('XXX-890', 50, 'Haval', 'Gris', 2023, 4, 'GASOLINA',
28000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('YYY-123', 1, 'RAV4', 'Azul', 2022, 4, 'HÍBRIDO', 32000.00);
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio)
VALUES ('ZZZ-456', 2, 'Tiguan', 'Blanco', 2023, 4, 'GASOLINA',
34000.00);
-- Verificar que se insertaron exactamente 50 vehículos
SELECT COUNT(*) AS total_vehiculos FROM vehiculo;
Script Alternativo con Fechas de Registro Variadas
sql
-- Versión con fechas de registro distribuidas en el tiempo
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio, fecha_registro)
VALUES ('ABC-123', 1, 'Corolla', 'Blanco', 2022, 4, 'GASOLINA',
25000.00, DATE '2023-01-15');
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio, fecha_registro)
VALUES ('DEF-456', 2, 'Golf', 'Negro', 2021, 4, 'GASOLINA', 28000.00,
DATE '2023-02-20');
INSERT INTO vehiculo (placa, id_marca, modelo, color,
anio_fabricacion, nro_puertas, combustible, precio, fecha_registro)
VALUES ('GHI-789', 3, 'F-150', 'Rojo', 2023, 2, 'DIESEL', 45000.00,
DATE '2023-03-10');
-- Continuar con fechas variadas para los demás vehículos...
Consultas de Verificación
sql
-- Consulta para verificar los vehículos insertados con información
completa
SELECT
v.placa,
m.nombre_marca,
v.modelo,
v.color,
v.anio_fabricacion,
v.nro_puertas,
v.combustible,
v.precio,
v.fecha_registro
FROM vehiculo v
JOIN marca m ON v.id_marca = m.idmarca
ORDER BY v.idvehiculo;
-- Resumen por marca
SELECT
m.nombre_marca,
COUNT(v.idvehiculo) as total_vehiculos,
AVG(v.precio) as precio_promedio,
MIN(v.precio) as precio_minimo,
MAX(v.precio) as precio_maximo
FROM marca m
LEFT JOIN vehiculo v ON m.idmarca = v.id_marca
GROUP BY m.nombre_marca
ORDER BY total_vehiculos DESC;
-- Distribución por combustible
SELECT
combustible,
COUNT(*) as total_vehiculos,
ROUND(AVG(precio), 2) as precio_promedio
FROM vehiculo
GROUP BY combustible
ORDER BY total_vehiculos DESC;
-- Distribución por año de fabricación
SELECT
anio_fabricacion,
COUNT(*) as total_vehiculos,
ROUND(AVG(precio), 2) as precio_promedio
FROM vehiculo
GROUP BY anio_fabricacion
ORDER BY anio_fabricacion DESC;
-- Vehículos por rango de precio
SELECT
CASE
WHEN precio < 20000 THEN 'Menos de 20k'
WHEN precio BETWEEN 20000 AND 40000 THEN '20k-40k'
WHEN precio BETWEEN 40000 AND 80000 THEN '40k-80k'
WHEN precio BETWEEN 80000 AND 150000 THEN '80k-150k'
ELSE 'Más de 150k'
END as rango_precio,
COUNT(*) as total_vehiculos
FROM vehiculo
GROUP BY
CASE
WHEN precio < 20000 THEN 'Menos de 20k'
WHEN precio BETWEEN 20000 AND 40000 THEN '20k-40k'
WHEN precio BETWEEN 40000 AND 80000 THEN '40k-80k'
WHEN precio BETWEEN 80000 AND 150000 THEN '80k-150k'
ELSE 'Más de 150k'
END
ORDER BY total_vehiculos DESC;