-
Notifications
You must be signed in to change notification settings - Fork 0
/
Table Creation.sql
156 lines (107 loc) · 3.43 KB
/
Table Creation.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
--DROP DATABASE IF EXISTS AIRPORT;
--CREATE DATABASE AIRPORT;
USE AIRPORT;
--DROP TABLE IF EXISTS PLANE_TYPE;
CREATE TABLE PLANE_TYPE (
Model VARCHAR(15) NOT NULL,
Capacity SMALLINT,
Weight INT,
CONSTRAINT P_Model PRIMARY KEY (Model)
);
--DROP TABLE IF EXISTS CORPORATION;
CREATE TABLE CORPORATION (
ID CHAR(7) NOT NULL,
Name VARCHAR(30) NOT NULL,
Address VARCHAR(50),
Phone NUMERIC(11, 0),
CONSTRAINT C_ID PRIMARY KEY (ID)
);
--DROP TABLE IF EXISTS HANGAR;
CREATE TABLE HANGAR (
Number SMALLINT NOT NULL,
Capacity TINYINT,
Location VARCHAR(20),
Owner CHAR(7),
CONSTRAINT H_Number PRIMARY KEY (Number),
CONSTRAINT H_Owner FOREIGN KEY (Owner) REFERENCES CORPORATION(ID)
);
--DROP TABLE IF EXISTS AIRPLANE;
CREATE TABLE AIRPLANE (
RegNo INT NOT NULL,
Of_Type VARCHAR(15) NOT NULL,
Stored_In SMALLINT NOT NULL,
CONSTRAINT A_RegNo PRIMARY KEY (RegNo),
CONSTRAINT A_Of_Type FOREIGN KEY (Of_Type) REFERENCES PLANE_TYPE(Model),
CONSTRAINT A_Stored_In FOREIGN KEY (Stored_In) REFERENCES HANGAR(Number)
);
--DROP TABLE IF EXISTS PERSON;
CREATE TABLE PERSON (
SSN CHAR(9) NOT NULL,
FName VARCHAR(15) NOT NULL,
LName VARCHAR(15) NOT NULL,
Address VARCHAR(20),
Location VARCHAR(20),
Phone NUMERIC(11, 0),
CONSTRAINT P_SSN PRIMARY KEY (SSN)
);
--DROP TABLE IF EXISTS PILOT;
CREATE TABLE PILOT (
PSSN CHAR(9) NOT NULL,
Lic_num VARCHAR(5) NOT NULL,
Restr VARCHAR(30),
CONSTRAINT Lic_num UNIQUE (Lic_num),
CONSTRAINT SP_PSSN PRIMARY KEY (PSSN),
CONSTRAINT SP_SSN FOREIGN KEY (PSSN) REFERENCES PERSON(SSN)
);
--DROP TABLE IF EXISTS EMPLOYEE;
CREATE TABLE EMPLOYEE (
PSSN CHAR(9) NOT NULL,
Salary DECIMAL(10, 2),
EShift CHAR(5),
CONSTRAINT SE_PSSN PRIMARY KEY (PSSN),
CONSTRAINT SE_SSN FOREIGN KEY (PSSN) REFERENCES PERSON(SSN)
);
--DROP TABLE IF EXISTS SERVICE;
CREATE TABLE SERVICE (
ID INT NOT NULL,
Plane_Id INT NOT NULL,
Work_code SMALLINT,
SHours SMALLINT,
Status CHAR,
SDate DATE,
CONSTRAINT S_ID PRIMARY KEY (ID),
CONSTRAINT S_Plane_Id FOREIGN KEY (Plane_Id) REFERENCES AIRPLANE(RegNo)
);
--DROP TABLE IF EXISTS OWNED_BY;
CREATE TABLE OWNED_BY (
PlaneID INT NOT NULL,
PDate DATE,
PersonSSN CHAR(9),
CorporationID CHAR(7),
PurchasedFrom CHAR(7),
CONSTRAINT O_PlaneID FOREIGN KEY (PlaneID) REFERENCES AIRPLANE(RegNo),
CONSTRAINT O_PersonSSN FOREIGN KEY (PersonSSN) REFERENCES PERSON(SSN),
CONSTRAINT O_CorporationID FOREIGN KEY (CorporationID) REFERENCES CORPORATION(ID),
CONSTRAINT O_PurchasedFrom FOREIGN KEY (PurchasedFrom) REFERENCES CORPORATION(ID)
);
--DROP TABLE IF EXISTS MAINTAIN;
CREATE TABLE MAINTAIN (
SSN CHAR(9) NOT NULL,
Service_Id INT NOT NULL,
CONSTRAINT M_SSN FOREIGN KEY (SSN) REFERENCES EMPLOYEE(PSSN),
CONSTRAINT M_Service_Id FOREIGN KEY (Service_Id) REFERENCES SERVICE(ID)
);
--DROP TABLE IF EXISTS FLIES;
CREATE TABLE FLIES (
SSN CHAR(9) NOT NULL,
Model VARCHAR(15) NOT NULL,
CONSTRAINT F_SSN FOREIGN KEY (SSN) REFERENCES PILOT(PSSN),
CONSTRAINT F_Model FOREIGN KEY (Model) REFERENCES PLANE_TYPE(Model)
);
--DROP TABLE IF EXISTS WORKS_ON;
CREATE TABLE WORKS_ON (
SSN CHAR(9) NOT NULL,
Model VARCHAR(15) NOT NULL,
CONSTRAINT W_SSN FOREIGN KEY (SSN) REFERENCES EMPLOYEE(PSSN),
CONSTRAINT W_Model FOREIGN KEY (Model) REFERENCES PLANE_TYPE(Model)
);