CREATE TABLE clientes (
    cod_clientes INTEGER AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    cpf BIGINT(11) UNIQUE NOT NULL,
    telefone BIGINT(13)
);

CREATE TABLE veiculos (
    cod_veiculos INTEGER AUTO_INCREMENT PRIMARY KEY,
    placa VARCHAR(7) UNIQUE NOT NULL,
    modelo VARCHAR(50) NOT NULL,
    marca VARCHAR(50) NOT NULL,
    cod_clientes INTEGER NOT NULL,
    FOREIGN KEY (cod_clientes)
        REFERENCES clientes(cod_clientes)
);

CREATE TABLE mecanicos (
    cod_mecanicos INTEGER AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100) NOT NULL,
    especialidade VARCHAR(50)
);

CREATE TABLE servicos (
    cod_servicos INTEGER AUTO_INCREMENT PRIMARY KEY,
    descricao VARCHAR(200) NOT NULL,
    valor DECIMAL(10,2) NOT NULL
);

CREATE TABLE ordem_servicos (
    cod_ordem INTEGER AUTO_INCREMENT PRIMARY KEY,
    data_abertura DATE NOT NULL,
    data_fechamento DATE,
    valor_total DECIMAL(10,2) DEFAULT 0.00,
    cod_veiculos INTEGER NOT NULL,
    cod_mecanicos INTEGER NOT NULL,
    FOREIGN KEY (cod_veiculos)
        REFERENCES veiculos(cod_veiculos),
    FOREIGN KEY (cod_mecanicos)
        REFERENCES mecanicos(cod_mecanicos)
);

CREATE TABLE ordem_servico_itens (
    cod_ordem INTEGER NOT NULL,
    cod_servicos INTEGER NOT NULL,
    quantidade INTEGER NOT NULL DEFAULT 1,
    valor_unitario DECIMAL(10,2) NOT NULL,
    PRIMARY KEY (cod_ordem, cod_servicos),
    FOREIGN KEY (cod_ordem)
        REFERENCES ordem_servicos(cod_ordem),
    FOREIGN KEY (cod_servicos)
        REFERENCES servicos(cod_servicos)
);

INSERT INTO clientes (nome, cpf, telefone) VALUES
('Joao Silva', 12345678901, 45991234567),
('Maria Santos', 23456789012, 45992345678),
('Pedro Oliveira', 34567890123, 45993456789),
('Ana Souza', 45678901234, 45994567890),
('Lucas Pereira', 56789012345, 45995678901),
('Juliana Costa', 67890123456, 45996789012),
('Carlos Rodrigues', 78901234567, 45997890123),
('Fernanda Alves', 89012345678, 45998901234),
('Rafael Lima', 90123456789, 45999012345),
('Camila Ferreira', 11234567890, 45991112222),
('Bruno Martins', 22345678901, 45992223333),
('Patricia Gomes', 33456789012, 45993334444),
('Gabriel Ribeiro', 44567890123, 45994445555),
('Larissa Carvalho', 55678901234, 45995556666),
('Matheus Almeida', 66789012345, 45996667777),
('Beatriz Lopes', 77890123456, 45997778888),
('Felipe Batista', 88901234567, 45998889999),
('Amanda Moreira', 99012345678, 45999990000),
('Thiago Nunes', 10123456789, 45991113333),
('Isabela Cardoso', 12123456789, 45992224444);

INSERT INTO veiculos (placa, modelo, marca, cod_clientes) VALUES
('ABC1234', 'Civic', 'Honda', 1),
('DEF5678', 'Corolla', 'Toyota', 2),
('GHI9012', 'Gol', 'Volkswagen', 3),
('JKL3456', 'Onix', 'Chevrolet', 4),
('MNO7890', 'HB20', 'Hyundai', 5),
('PQR1234', 'Ka', 'Ford', 6),
('STU5678', 'Compass', 'Jeep', 7),
('VWX9012', 'Argo', 'Fiat', 8),
('YZA3456', 'Kwid', 'Renault', 9),
('BCD7890', 'City', 'Honda', 10),
('EFG1234', 'Hilux', 'Toyota', 11),
('HIJ5678', 'Polo', 'Volkswagen', 12),
('KLM9012', 'Tracker', 'Chevrolet', 13),
('NOP3456', 'Creta', 'Hyundai', 14),
('QRS7890', 'Ranger', 'Ford', 15),
('TUV1234', 'Renegade', 'Jeep', 16),
('WXY5678', 'Mobi', 'Fiat', 17),
('ZAB9012', 'Duster', 'Renault', 18),
('CDE3456', 'HR-V', 'Honda', 19),
('FGH7890', 'Etios', 'Toyota', 20);

INSERT INTO mecanicos (nome, especialidade) VALUES
('Roberto Mendes', 'Motor'),
('Paulo Henrique', 'Freios'),
('Marcos Vinicius', 'Suspensao'),
('Andre Luiz', 'Eletrica'),
('Eduardo Ramos', 'Cambio'),
('Ricardo Teixeira', 'Injecao eletronica'),
('Fernando Dias', 'Ar-condicionado'),
('Alexandre Melo', 'Alinhamento'),
('Diego Barbosa', 'Pneus'),
('Gustavo Correia', 'Motor'),
('Leandro Castro', 'Freios'),
('Sergio Monteiro', 'Suspensao'),
('Renato Araujo', 'Eletrica'),
('Fabio Cardoso', 'Cambio'),
('Daniel Moreira', 'Injecao eletronica'),
('Vinicius Lopes', 'Ar-condicionado'),
('Marcelo Cunha', 'Alinhamento'),
('Anderson Freitas', 'Pneus'),
('Rodrigo Martins', 'Motor'),
('Wesley Nascimento', 'Diagnostico automotivo');

INSERT INTO servicos (descricao, valor) VALUES
('Troca de oleo', 150.00),
('Alinhamento', 90.00),
('Balanceamento', 70.00),
('Troca de pastilhas de freio', 220.00),
('Revisao do motor', 450.00),
('Troca de bateria', 380.00),
('Revisao da suspensao', 300.00),
('Troca de velas', 120.00),
('Limpeza de bicos injetores', 180.00),
('Recarga de ar-condicionado', 200.00),
('Troca de correia dentada', 550.00),
('Diagnostico eletronico', 130.00),
('Troca de embreagem', 900.00),
('Reparo do sistema eletrico', 250.00),
('Troca de pneus', 800.00),
('Revisao do sistema de freios', 280.00),
('Troca do filtro de ar', 60.00),
('Higienizacao do ar-condicionado', 160.00),
('Troca de amortecedores', 650.00),
('Revisao completa', 750.00);

INSERT INTO ordem_servicos
(data_abertura, data_fechamento, valor_total, cod_veiculos, cod_mecanicos) VALUES
('2026-01-05', '2026-01-05', 150.00, 1, 1),
('2026-01-06', '2026-01-07', 160.00, 2, 8),
('2026-01-08', '2026-01-08', 290.00, 3, 2),
('2026-01-10', '2026-01-11', 450.00, 4, 10),
('2026-01-12', '2026-01-12', 380.00, 5, 4),
('2026-01-14', '2026-01-15', 300.00, 6, 3),
('2026-01-16', '2026-01-16', 120.00, 7, 6),
('2026-01-18', '2026-01-19', 180.00, 8, 6),
('2026-01-20', '2026-01-20', 200.00, 9, 7),
('2026-01-22', '2026-01-23', 550.00, 10, 1),
('2026-01-24', '2026-01-24', 130.00, 11, 20),
('2026-01-26', '2026-01-28', 900.00, 12, 5),
('2026-02-01', '2026-02-02', 250.00, 13, 13),
('2026-02-03', '2026-02-03', 800.00, 14, 9),
('2026-02-05', '2026-02-06', 280.00, 15, 11),
('2026-02-07', '2026-02-07', 60.00, 16, 10),
('2026-02-09', '2026-02-10', 160.00, 17, 16),
('2026-02-11', '2026-02-12', 650.00, 18, 12),
('2026-02-13', '2026-02-14', 750.00, 19, 19),
('2026-02-15', NULL, 0.00, 20, 20);

INSERT INTO ordem_servico_itens
(cod_ordem, cod_servicos, quantidade, valor_unitario) VALUES
(1, 1, 1, 150.00),
(2, 2, 1, 90.00),
(2, 3, 1, 70.00),
(3, 4, 1, 220.00),
(3, 2, 1, 70.00),
(4, 5, 1, 450.00),
(5, 6, 1, 380.00),
(6, 7, 1, 300.00),
(7, 8, 1, 120.00),
(8, 9, 1, 180.00),
(9, 10, 1, 200.00),
(10, 11, 1, 550.00),
(11, 12, 1, 130.00),
(12, 13, 1, 900.00),
(13, 14, 1, 250.00),
(14, 15, 1, 800.00),
(15, 16, 1, 280.00),
(16, 17, 1, 60.00),
(17, 18, 1, 160.00),
(18, 19, 1, 650.00);

SELECT * FROM clientes;
SELECT 1 AS teste, cod_clientes, nome FROM clientes;
SELECT 2 AS teste, cod_clientes, nome, CASE WHEN cod_clientes < 3 THEN 'Cliente antigo' ELSE 'Cliente novo' END AS conceito_cliente FROM clientes;
SELECT 3 AS teste, cod_veiculos, modelo, marca, CASE WHEN marca = 'Honda' THEN 'Marca japonesa' ELSE 'Outra marca' END AS tipo_marca FROM veiculos;
SELECT 4 AS teste, cod_veiculos, modelo, marca, CASE WHEN UPPER(marca) = 'HONDA' THEN 'Marca japonesa' ELSE 'Outra marca' END AS tipo_marca FROM veiculos;
SELECT 5 AS teste, cod_clientes, nome FROM clientes WHERE nome LIKE '%c%'; SELECT 6 AS teste, cod_clientes, nome FROM clientes WHERE nome LIKE '%C%';
SELECT 7 AS teste, cod_clientes, nome FROM clientes WHERE nome LIKE '%c';
SELECT 8 AS teste, cod_clientes, nome FROM clientes WHERE nome = 'Carlos Rodrigues';
SELECT 9 AS teste, c.cod_clientes, c.nome, v.modelo, v.marca FROM clientes AS c INNER JOIN veiculos AS v ON c.cod_clientes = v.cod_clientes WHERE c.nome = 'Carlos Rodrigues' AND v.marca = 'Jeep';
SELECT 10 AS teste, c.cod_clientes, c.nome, v.modelo, v.marca FROM clientes AS c INNER JOIN veiculos AS v ON c.cod_clientes = v.cod_clientes WHERE (c.nome = 'Carlos Rodrigues' AND v.marca = 'Jeep') OR v.marca = 'Honda';
SELECT 17 AS teste, cod_clientes, nome FROM clientes WHERE UPPER(nome) = 'CARLOS RODRIGUES';
SELECT 12 AS teste, cod_clientes, LOWER(nome) AS nome_novo FROM clientes;
SELECT 13 AS teste, nome, LOWER(nome) AS nomenovo FROM clientes;
SELECT 14 AS teste, cli.* FROM clientes AS cli;
SELECT 15 AS teste, clientes.* FROM clientes ORDER BY nome DESC;
SELECT 16 AS teste, cod_clientes, nome FROM clientes WHERE nome LIKE 'C%';
select * from clientes ;
select * from ordem_servico_itens;
select * from servicos; 
select * from mecanicos ;
select * from veiculos ;

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: