forked from ElianMariano/Mecanica
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.sql
161 lines (150 loc) · 6.69 KB
/
script.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
-- Criação das tabelas
CREATE TABLE cliente(
cpf VARCHAR(14) NOT NULL,
nome VARCHAR(100) NOT NULL,
nascimento DATE NOT NULL,
cidade VARCHAR(100) NOT NULL,
uf VARCHAR(2) NOT NULL,
CONSTRAINT pk_cliente
PRIMARY KEY (cpf)
);
CREATE TABLE servico(
cod_servico INTEGER NOT NULL,
nome VARCHAR(100) NOT NULL,
descricao VARCHAR(500) NOT NULL,
preco NUMERIC(8, 2) NOT NULL,
CONSTRAINT pk_servico
PRIMARY KEY (cod_servico)
);
CREATE TABLE modelo_veiculo(
cod_modelo INTEGER NOT NULL,
moto BOOLEAN NOT NULL,
nome VARCHAR(100) NOT NULL,
descricao VARCHAR(500) NOT NULL,
CONSTRAINT pk_modelo_veiculo
PRIMARY KEY (cod_modelo)
);
CREATE TABLE veiculo(
placa VARCHAR(8) NOT NULL,
nome VARCHAR(100) NOT NULL,
marca VARCHAR(100) NOT NULL,
cod_modelo INTEGER NOT NULL,
cod_cliente VARCHAR(14) NOT NULL,
CONSTRAINT pk_placa
PRIMARY KEY (placa),
CONSTRAINT fk_veiculo_modeloveiculo
FOREIGN KEY (cod_modelo)
REFERENCES modelo_veiculo(cod_modelo),
CONSTRAINT fk_veiculo_cliente
FOREIGN KEY (cod_cliente)
REFERENCES cliente(cpf)
);
CREATE TABLE manutencao(
cod_manutencao SERIAL NOT NULL,
descricao VARCHAR(500) NOT NULL,
dia DATE NOT NULL,
inicio TIME NOT NULL,
fim TIME NOT NULL,
cod_veiculo VARCHAR(8) NOT NULL,
CONSTRAINT pk_manutencao
PRIMARY KEY (cod_manutencao),
CONSTRAINT fk_manutencao_veiculo
FOREIGN KEY (cod_veiculo)
REFERENCES veiculo(placa),
CONSTRAINT erro_horario
CHECK (inicio < fim)
);
CREATE TABLE manutencao_servico(
codigo_ms SERIAL NOT NULL,
cod_manutencao INTEGER NOT NULL,
cod_servico INTEGER NOT NULL,
CONSTRAINT pk_manutencao_veiculo
PRIMARY KEY (codigo_ms),
CONSTRAINT fk_manutencao_mv
FOREIGN KEY (cod_manutencao)
REFERENCES manutencao(cod_manutencao),
CONSTRAINT fk_servico_mv
FOREIGN KEY (cod_servico)
REFERENCES servico(cod_servico)
);
-- Inserção dos Dados
-- Clientes
INSERT INTO cliente (cpf, nome, nascimento, cidade, uf)
VALUES ('111.111.111-11', 'João da Silva', '1998-04-05', 'Cachoeiro de Itapemirim', 'ES');
INSERT INTO cliente (cpf, nome, nascimento, cidade, uf)
VALUES ('111.111.111-12', 'Claudio dos Santos', '1986-04-13', 'Vila Velha', 'ES');
INSERT INTO cliente (cpf, nome, nascimento, cidade, uf)
VALUES ('111.111.111-22', 'Maria Sousa', '1987-09-29', 'Vitória', 'ES');
INSERT INTO cliente (cpf, nome, nascimento, cidade, uf)
VALUES ('111.111.111-33', 'Paulo Ferreira', '1994-02-25', 'Marataízes', 'ES');
-- Servicos
INSERT INTO servico (cod_servico, nome, descricao, preco)
VALUES (1, 'Troca de PNEU', 'Realização da troca de um PNEU antigo para um novo', 20.0);
INSERT INTO servico (cod_servico, nome, descricao, preco)
VALUES (2, 'Troca do vidro', 'Troca de um vidro quebrado por um novo', 150.0);
INSERT INTO servico (cod_servico, nome, descricao, preco)
VALUES (3, 'Revisão Elétrica', 'Revisão da parte elétrica do veículo', 50.0);
INSERT INTO servico (cod_servico, nome, descricao, preco)
VALUES (4, 'Troca de Bateria', 'Troca da bateria do veículo', 200.0);
INSERT INTO servico (cod_servico, nome, descricao, preco)
VALUES (5, 'Conserto do Câmbio', 'Conserto do Câmbio do veículo', 265.0);
INSERT INTO servico (cod_servico, nome, descricao, preco)
VALUES (6, 'Troca da Vela da moto', 'Troca de uma vela que apresenta falhas por uma nova', 328.0);
-- Modelos veículo
INSERT INTO modelo_veiculo (cod_modelo, moto, nome, descricao)
VALUES (1, 'false', 'SUV', 'Estilo esportivo e com muitas utilidades');
INSERT INTO modelo_veiculo (cod_modelo, moto, nome, descricao)
VALUES (2, 'false', 'Esportivo', 'Carro pequeno, veloz e ágil');
INSERT INTO modelo_veiculo (cod_modelo, moto, nome, descricao)
VALUES (3, 'false', 'Conversivel', 'Carros com teto removível');
INSERT INTO modelo_veiculo (cod_modelo, moto, nome, descricao)
VALUES (4, 'true', 'Custom', 'Motos para o público que gosta de viajar em estradas');
INSERT INTO modelo_veiculo (cod_modelo, moto, nome, descricao)
VALUES (5, 'true', 'Street', 'Motos para as tarefas do dia a dia');
INSERT INTO modelo_veiculo (cod_modelo, moto, nome, descricao)
VALUES (6, 'true', 'Big Trail', 'Moto de trilha');
INSERT INTO modelo_veiculo (cod_modelo, moto, nome, descricao)
VALUES (7, 'true', 'Naked', 'Média ou alta cilindrada e sem carenagem');
-- Veiculos
INSERT INTO veiculo (placa, nome, marca, cod_modelo, cod_cliente)
VALUES ('AAAAA-AA', 'Chevrolet Tracker', 'Chevrolet', 1, '111.111.111-11');
INSERT INTO veiculo (placa, nome, marca, cod_modelo, cod_cliente)
VALUES ('AAAAA-AB', 'Ford Territory', 'Ford', 1, '111.111.111-12');
INSERT INTO veiculo (placa, nome, marca, cod_modelo, cod_cliente)
VALUES ('AAAAA-AC', 'CG 160 Start', 'Honda', 5, '111.111.111-33');
INSERT INTO veiculo (placa, nome, marca, cod_modelo, cod_cliente)
VALUES ('AAAAA-DD', 'Chery Tiggo 2', 'Chery', 1, '111.111.111-12');
INSERT INTO veiculo (placa, nome, marca, cod_modelo, cod_cliente)
VALUES ('GGGGG-DD', 'BMW Série 4', 'BMW', 3, '111.111.111-22');
INSERT INTO veiculo (placa, nome, marca, cod_modelo, cod_cliente)
VALUES ('LLLLL-DD', 'Honda CB Twister', 'Honda', 7, '111.111.111-33');
INSERT INTO veiculo (placa, nome, marca, cod_modelo, cod_cliente)
VALUES ('PPPPP-DD', 'Dafra Kansas 250', 'Honda', 5, '111.111.111-33');
-- Manutençoes
INSERT INTO manutencao(descricao, dia, inicio, fim, cod_veiculo)
VALUES ('Troca de PNEU e vidro', '2020-06-15', '9:00', '10:30', 'AAAAA-AB');
INSERT INTO manutencao(descricao, dia, inicio, fim, cod_veiculo)
VALUES ('Revisão Elétrica', '2020-07-04', '14:30', '15:15', 'LLLLL-DD');
INSERT INTO manutencao(descricao, dia, inicio, fim, cod_veiculo)
VALUES ('Troca da vela e revisão elétrica', '2020-06-01', '16:00', '16:40', 'AAAAA-DD');
INSERT INTO manutencao(descricao, dia, inicio, fim, cod_veiculo)
VALUES ('Troca da Bateria', '2020-08-29', '11:30', '14:15', 'GGGGG-DD');
INSERT INTO manutencao(descricao, dia, inicio, fim, cod_veiculo)
VALUES ('Troca do PNEU e Vela', '2020-09-14', '14:30', '15:00', 'PPPPP-DD');
-- Dados que ligam as tabelas manutencoes e servico
INSERT INTO manutencao_servico(cod_manutencao, cod_servico)
VALUES (1, 1);
INSERT INTO manutencao_servico(cod_manutencao, cod_servico)
VALUES (1, 2);
INSERT INTO manutencao_servico(cod_manutencao, cod_servico)
VALUES (2, 3);
INSERT INTO manutencao_servico(cod_manutencao, cod_servico)
VALUES (3, 6);
INSERT INTO manutencao_servico(cod_manutencao, cod_servico)
VALUES (3, 3);
INSERT INTO manutencao_servico(cod_manutencao, cod_servico)
VALUES (4, 4);
INSERT INTO manutencao_servico(cod_manutencao, cod_servico)
VALUES (5, 6);
INSERT INTO manutencao_servico(cod_manutencao, cod_servico)
VALUES (5, 1);