· 9 years ago · Nov 20, 2016, 04:02 PM
1import sqlite3
2import re
3con = sqlite3.connect('test1.db')
4con.row_factory = sqlite3.Row
5cur = con.cursor()
6cur.execute("DROP TABLE IF EXISTS firma;")
7cur.execute("""
8 CREATE TABLE IF NOT EXISTS firma (
9 id INTEGER PRIMARY KEY ASC,
10 nazwaf varchar(20) NOT NULL,
11 wlasciciel varchar(30) NOT NULL,
12 nip INTEGER NOT NULL
13 )""")
14cur.executescript("""
15 DROP TABLE IF EXISTS danef;
16 CREATE TABLE IF NOT EXISTS danef (
17 id INTEGER PRIMARY KEY ASC,
18 nipf INTEGER NOT NULL,
19 dane varchar(250) NOT NULL,
20 FOREIGN KEY(nipf) REFERENCES firma(nip)
21 )""")
22
23def nipp(x, f):
24 while re.match('^\d{3}-\d{2}-\d{2}-\d{3}$', f )==None:
25 f = input("Wprowadź nip firmy"+str(x)+": ")
26 return f
27
28def wpiszdf(x):
29 f3 = ''
30 f1 = input("Wprowadź nazwe firmy"+str(x)+": ")
31 f2 = input("Wprowadź wlasciciela firmy"+str(x)+": ")
32 f3 = nipp(x, f3)
33 cur.execute('INSERT INTO firma VALUES(NULL, ?, ?, ?);', (f1, f2, f3))
34def wpiszdd(x):
35 d1 = ''
36 d1 = nipp(x, d1)
37 d2 = input("Wprowadź dane firmy"+str(x)+": ")
38 cur.execute('INSERT INTO danef VALUES(NULL, ?, ?);', (d1, d2))
39def wypiszdf():
40 cur.execute(
41 'SELECT firma.nip,nazwaf,wlasciciel,dane FROM firma,danef WHERE firma.nip=danef.nipf')
42 danecf = cur.fetchall()
43 for row in danecf:
44 print(row['nip'], row['nazwaf'], row['wlasciciel'], row['dane'])
45def usundf():
46 f1 = ''
47 f1 = nipp('', f1)
48 cur.execute('DELETE FROM firma WHERE nip=?', (f1,))
49 cur.execute('DELETE FROM danef WHERE nipf=?', (f1,))
50def upinfo():
51 n1 = ''
52 n1 = nipp('', n1)
53 d1 = input("Wpisz dane: ")
54 cur.execute('UPDATE danef SET dane=? WHERE nipf=?', (d1, n1,))
55
56l1 = int(input("Wprowadź liczbę rekordów które chcesz wprowadzić do tabeli 'firma': "))
57for x in range(l1):
58 wpiszdf(x+1)
59
60l2 = int(input("Wprowadź liczbę rekordów które chcesz wprowadzić do tabeli 'dane firmy': "))
61for x in range(l2):
62 wpiszdd(x+1)
63wypiszdf()
64l3 = 'A'
65while (l3 != 'T') & (l3 != 'N'):
66 l3 = input("Chcesz usunąć firmę? T/N : ")
67 if l3 == 'T':
68 usundf()
69 l3 = 'T'
70 elif l3 == 'N':
71 l3 = 'N'
72wypiszdf()
73l3 = 'A'
74while (l3 != 'T') & (l3 != 'N'):
75 l3 = input("Chcesz zaktualizować dane firmy? T/N : ")
76 if l3 == 'T':
77 upinfo()
78 l3 = 'T'
79 elif l3 == 'N':
80 l3 = 'N'
81wypiszdf()
82con.commit()
83con.close()