-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDBproject.py
More file actions
100 lines (92 loc) · 3.19 KB
/
DBproject.py
File metadata and controls
100 lines (92 loc) · 3.19 KB
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
#Projekt na przedmiot Bazy Danych, semestr letni 2022/2023
#Wykonał: Mateusz Gałęziewski 319433
#Prosta baza danych sprzedaży nieruchomości
import sqlite3
#Let's connect to the database
db = sqlite3.connect('galeziewski_mateusz_projekt.db')
#Creating a cursor
cursor = db.cursor()
#Creating tables
sql_statements = [
'''CREATE TABLE Building(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
adress VARCHAR NOT NULL,
postal_code VARCHAR (6) NOT NULL,
city VARCHAR (50) NOT NULL,
built_year INTEGER (4),
lift_inside BOOLEAN NOT NULL,
total_floors INTEGER DEFAULT 1 NOT NULL
)''',
'''CREATE TABLE Owner(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name VARCHAR (40) NOT NULL,
surname VARCHAR (40) NOT NULL,
owner_adress VARCHAR NOT NULL,
phone INTEGER (9) NOT NULL,
mail VARCHAR (60) NOT NULL
)''',
'''CREATE TABLE Client(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name VARCHAR (40) NOT NULL,
surname VARCHAR (40) NOT NULL,
client_adress VARCHAR NOT NULL,
phone INTEGER (9) NOT NULL,
mail VARCHAR (60) NOT NULL
)''',
'''CREATE TABLE Agent(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name VARCHAR (40) NOT NULL,
surname VARCHAR (40) NOT NULL,
agent_adress VARCHAR NOT NULL,
phone INTEGER (9) NOT NULL,
mail VARCHAR (60) NOT NULL
)''',
'''CREATE TABLE prop_category(
id INTEGER PRIMARY KEY,
category TEXT (20)
)''',
'''CREATE TABLE Property(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
price REAL NOT NULL,
surface REAL NOT NULL,
local VARCHAR (6) NOT NULL,
floor_nr INTEGER NOT NULL,
rooms INTEGER NOT NULL,
building_id INTEGER NOT NULL REFERENCES Building(id),
prop_category_id INTEGER NOT NULL REFERENCES prop_category(id)
)''',
'''CREATE TABLE Deal(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
date DATE NOT NULL,
total_price REAL NOT NULL,
property_id INTEGER NOT NULL REFERENCES Property(id),
owner_id INTEGER NOT NULL REFERENCES Owner(id),
client_id INTEGER NOT NULL REFERENCES Client(id),
agent_id INTEGER NOT NULL REFERENCES Agent(id)
)''',
'''CREATE TABLE Service(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
serivce_name VARCHAR (40) NOT NULL,
service_price REAL NOT NULL,
service_description VARCHAR (100) NOT NULL
)''',
'''CREATE TABLE INT_Deal_Service(
int_deal_service_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
deal_id INTEGER NOT NULL REFERENCES Deal(id),
service_id INTEGER NOT NULL REFERENCES Service(id)
)''',
'''INSERT INTO prop_category (id, category)
VALUES
(1, 'low standard'),
(2, 'standard'),
(3, 'high standard'),
(4, 'luxury')'''
]
#Executing the queries
cursor.execute('BEGIN')
for sql in sql_statements:
cursor.execute(sql)
cursor.execute('COMMIT')
#save changes to the database
cursor.close()
db.close()