Skip to content

Instantly share code, notes, and snippets.

@andersonbosa
Created February 7, 2025 18:40
Show Gist options
  • Save andersonbosa/8788ca2cf4671903451845e98ab5dd39 to your computer and use it in GitHub Desktop.
Save andersonbosa/8788ca2cf4671903451845e98ab5dd39 to your computer and use it in GitHub Desktop.
CREATE TABLE cliente (
id INT NOT NULL,
nome VARCHAR(45) NOT NULL,
sobrenome VARCHAR(45) NOT NULL,
idade INT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE carro (
id INT NOT NULL,
marca VARCHAR(45) NOT NULL,
modelo VARCHAR(45) NOT NULL,
ano INT NOT NULL,
kilometragem VARCHAR(45) NOT NULL,
placa VARCHAR(45) NOT NULL,
PRIMARY KEY (id),
UNIQUE INDEX placa_UNIQUE (placa ASC)
);
CREATE TABLE ordem_servico (
id INT NOT NULL,
tipo VARCHAR(45) NOT NULL,
custo VARCHAR(45) NOT NULL,
observacao TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE avaliacao (
id INT NOT NULL,
nota INT NOT NULL,
comentario VARCHAR(255) NULL,
ordem_servico_id INT NOT NULL,
PRIMARY KEY (id),
INDEX fk_avaliacao_ordem_servico1_idx (ordem_servico_id ASC),
CONSTRAINT fk_avaliacao_ordem_servico1
FOREIGN KEY (ordem_servico_id)
REFERENCES ordem_servico (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE cliente_has_carro (
cliente_id INT NOT NULL,
carro_id INT NOT NULL,
PRIMARY KEY (cliente_id, carro_id),
INDEX fk_cliente_has_carro_carro1_idx (carro_id ASC),
INDEX fk_cliente_has_carro_cliente_idx (cliente_id ASC),
CONSTRAINT fk_cliente_has_carro_cliente
FOREIGN KEY (cliente_id)
REFERENCES cliente (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_cliente_has_carro_carro1
FOREIGN KEY (carro_id)
REFERENCES carro (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE carro_has_ordem_servico (
carro_id INT NOT NULL,
ordem_servico_id INT NOT NULL,
PRIMARY KEY (carro_id, ordem_servico_id),
INDEX fk_carro_has_ordem_servico_ordem_servico1_idx (ordem_servico_id ASC),
INDEX fk_carro_has_ordem_servico_carro1_idx (carro_id ASC),
CONSTRAINT fk_carro_has_ordem_servico_carro1
FOREIGN KEY (carro_id)
REFERENCES carro (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT fk_carro_has_ordem_servico_ordem_servico1
FOREIGN KEY (ordem_servico_id)
REFERENCES ordem_servico (id)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
-- Inserindo dados na tabela cliente
INSERT INTO cliente (id, nome, sobrenome, idade) VALUES
(1, 'João', 'Silva', 30),
(2, 'Maria', 'Santos', 25),
(3, 'Pedro', 'Almeida', 40),
(4, 'Ana', 'Oliveira', 35),
(5, 'Lucas', 'Ferreira', 28);
-- Inserindo dados na tabela carro
INSERT INTO carro (id, marca, modelo, ano, kilometragem, placa) VALUES
(1, 'Volkswagen', 'Gol', 2020, '50000', 'ABC1234'),
(2, 'Fiat', 'Uno', 2018, '75000', 'DEF5678'),
(3, 'Chevrolet', 'Onix', 2022, '25000', 'GHI9012'),
(4, 'Hyundai', 'HB20', 2021, '40000', 'JKL3456'),
(5, 'Toyota', 'Corolla', 2019, '60000', 'MNO7890');
-- Inserindo dados na tabela ordem_servico
INSERT INTO ordem_servico (id, tipo, custo, observacao) VALUES
(1, 'Revisão', '500', 'Troca de óleo e filtros'),
(2, 'Manutenção', '800', 'Troca de pneus'),
(3, 'Reparo', '1200', 'Conserto do motor'),
(4, 'Revisão', '600', 'Troca de óleo, filtros e freios'),
(5, 'Manutenção', '900', 'Alinhamento e balanceamento');
-- Inserindo dados na tabela avaliacao
INSERT INTO avaliacao (id, nota, comentario, ordem_servico_id) VALUES
(1, 5, 'Excelente serviço!', 1),
(2, 4, 'Bom atendimento.', 2),
(3, 3, 'Poderia ser melhor.', 3),
(4, 5, 'Ótimo serviço e preço justo.', 4),
(5, 4, 'Recomendo.', 5);
INSERT INTO cliente_has_carro (cliente_id, carro_id) VALUES
(1, 1),
(1, 2),
(2, 3),
(3, 4),
(4, 5),
(5, 1);
INSERT INTO carro_has_ordem_servico (carro_id, ordem_servico_id) VALUES
(1, 1),
(2, 2),
(3, 3),
(4, 4),
(5, 5),
(1, 4);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment