Загрузка данных


import sqlite3
import csv

conn = sqlite3.connect('basa.db')
cursor = conn.cursor()

cursor.execute('''
CREATE TABLE IF NOT EXISTS passazhir (
    id_passazhira INTEGER PRIMARY KEY AUTOINCREMENT,
    fio TEXT NOT NULL,
    pasport TEXT NOT NULL,
    data_rozhdeniya TEXT NOT NULL
)
''')

cursor.execute('''
CREATE TABLE IF NOT EXISTS samolet (
    id_samolyota INTEGER PRIMARY KEY AUTOINCREMENT,
    model TEXT NOT NULL,
    mest_vsego INTEGER NOT NULL
)
''')

cursor.execute('''
CREATE TABLE IF NOT EXISTS reys (
    id_reysa INTEGER PRIMARY KEY AUTOINCREMENT,
    nomer TEXT NOT NULL,
    naznachenie TEXT NOT NULL,
    data TEXT NOT NULL,
    aviakompaniya TEXT NOT NULL,
    id_samolyota INTEGER NOT NULL,
    FOREIGN KEY (id_samolyota) REFERENCES samolet (id_samolyota)
)
''')

cursor.execute('''
CREATE TABLE IF NOT EXISTS bilet (
    id_bileta INTEGER PRIMARY KEY AUTOINCREMENT,
    mesto TEXT NOT NULL,
    klass TEXT NOT NULL,
    tsena INTEGER NOT NULL,
    id_passazhira INTEGER NOT NULL,
    id_reysa INTEGER NOT NULL,
    FOREIGN KEY (id_passazhira) REFERENCES passazhir (id_passazhira),
    FOREIGN KEY (id_reysa) REFERENCES reys (id_reysa)
)
''')

cursor.execute('''
CREATE TABLE IF NOT EXISTS registratsiya (
    id_registratsii INTEGER PRIMARY KEY AUTOINCREMENT,
    fakt INTEGER NOT NULL,
    bagazh TEXT NOT NULL,
    id_bileta INTEGER NOT NULL UNIQUE,
    FOREIGN KEY (id_bileta) REFERENCES bilet (id_bileta)
)
''')

with open('registratsiya.csv', 'r', encoding='utf-8') as file:
    csv_reader = csv.DictReader(file)
    for row in csv_reader:
        cursor.execute('''INSERT INTO registratsiya (fakt, bagazh, id_bileta, id_registratsii) VALUES (?, ?, ?, ?)''',
                       (row['fakt'], row['bagazh'], row['id_bileta'], row['id_registratsii'])

print('Регистрация:')
for registratsiya in cursor.fetchall():
    print(registratsiya)



cursor.execute('DELETE FROM registratsiya')
cursor.execute('DELETE FROM bilet')
cursor.execute('DELETE FROM reys')
cursor.execute('DELETE FROM samolet')
cursor.execute('DELETE FROM passazhir')

cursor.execute('DELETE FROM sqlite_sequence')

cursor.execute('''
INSERT INTO passazhir (fio, pasport, data_rozhdeniya)
VALUES (?, ?, ?)
''', ('Иванов Иван Иванович', '4510 123456', '1990-03-15'))
id_passazhira = cursor.lastrowid

cursor.execute('''
INSERT INTO samolet (model, mest_vsego)
VALUES (?, ?)
''', ('Boeing 737-800', 180))
id_samolyota = cursor.lastrowid

cursor.execute('''
INSERT INTO reys (nomer, naznachenie, data, aviakompaniya, id_samolyota)
VALUES (?, ?, ?, ?, ?)
''', ('SU1234', 'Сочи', '2026-04-20', 'Аэрофлот', id_samolyota))
id_reysa = cursor.lastrowid

cursor.execute('''
INSERT INTO bilet (mesto, klass, tsena, id_passazhira, id_reysa)
VALUES (?, ?, ?, ?, ?)
''', ('12A', 'Эконом', 5500, id_passazhira, id_reysa))
id_bileta = cursor.lastrowid

cursor.execute('''
INSERT INTO registratsiya (fakt, bagazh, id_bileta)
VALUES (?, ?, ?)
''', (1, '1 место (23 кг)', id_bileta))

conn.commit()


print("\n=== ПАССАЖИР ===")
cursor.execute('SELECT * FROM passazhir')
for row in cursor.fetchall():
    print(row)

print("\n=== САМОЛЁТ ===")
cursor.execute('SELECT * FROM samolet')
for row in cursor.fetchall():
    print(row)

print("\n=== РЕЙС ===")
cursor.execute('SELECT * FROM reys')
for row in cursor.fetchall():
    print(row)

print("\n=== БИЛЕТ ===")
cursor.execute('SELECT * FROM bilet')
for row in cursor.fetchall():
    print(row)

print("\n=== РЕГИСТРАЦИЯ ===")
cursor.execute('SELECT * FROM registratsiya')
for row in cursor.fetchall():
    print(row)

conn.close()