· 6 years ago · Mar 29, 2019, 06:30 PM
1-- Queries
2-- SELECT mar.nome AS marca, mod.nome as modelo FROM Modelo mod JOIN Marca mar ON mod.idMarca = mar.idMarca;
3
4--Limpeza das tabelas
5DROP TABLE IF EXISTS Reparacao;
6DROP TABLE IF EXISTS Carro;
7DROP TABLE IF EXISTS Modelo;
8DROP TABLE IF EXISTS Marca;
9DROP TABLE IF EXISTS Cliente;
10DROP TABLE IF EXISTS CodPostal;
11
12
13--Criação das tabelas
14
15CREATE TABLE Marca(
16idMarca INTEGER PRIMARY KEY AUTOINCREMENT,
17nome NVARCHAR(50) NOT NULL
18);
19
20CREATE TABLE Modelo(
21idModelo INTEGER PRIMARY KEY AUTOINCREMENT,
22nome NVARCHAR(50) NOT NULL,
23idMarca NUMBER REFERENCES Marca(idMarca)
24);
25
26CREATE TABLE CodPostal(
27codPostal1 CHAR(4) PRIMARY KEY,
28localidade NVARCAHR2(30)
29);
30
31CREATE TABLE Cliente (
32 idCliente INTEGER PRIMARY KEY AUTOINCREMENT,
33 nome VARCHAR (50) NOT NULL,
34 morada VARCHAR (50),
35 codPostal1 CHAR (4) REFERENCES CodPostal (codPostal1),
36 codPostal2 CHAR (3),
37 telefone CHAR (9)
38);
39
40CREATE TABLE Carro (
41idCarro INTEGER PRIMARY KEY AUTOINCREMENT,
42Matricula CHAR(6) UNIQUE,
43idModelo NUMBER REFERENCES Modelo(idModelo),
44idCliente NUMBER REFERENCES Cliente(idCliente)
45);
46
47CREATE TABLE Reparacao(
48idReparacao INTEGER PRIMARY KEY AUTOINCREMENT,
49dataInicio DATE,
50dataFim DATE,
51idCliente NUMBER REFERENCES Cliente(idCliente),
52idCarro NUMBER REFERENCES Carro(idCarro),
53CONSTRAINT ch_df_di CHECK (dataFim>=dataInicio)
54);
55
56-- Insercao de valores
57
58INSERT INTO Marca (nome)
59VALUES ('Mercedes-Benz');
60
61INSERT INTO Modelo (nome,idMarca)
62VALUES ('E400',1);
63
64INSERT INTO Cliente(nome, morada, codPostal1, codPostal2, telefone)
65VALUES('Manuel Pinho', 'EDP Piso 1', NULL, NULL, '91111111');
66
67INSERT INTO Carro (Matricula,idModelo, idCliente)
68VALUES('00-ZZ-00',1,1);
69
70INSERT INTO Reparacao (dataInicio, dataFim, idCliente, idCarro)
71VALUES ('01-01-2001', '02-01-2001', 1, 1);