На странице представлен фрагмент
Реши любую задачу с помощью нейросети.
Задача состоит в написании функции filling_out_tables, которая подключается к базе данных PostgreSQL, создает две таблицы transport и orders и заполняет их данными.
Шаги решения:
1. Подключение к базе данных:
– Используя модуль psycopg2, подключаемся к базе данных с помощью функции connect(), которая принимает параметры dbname, user и password.
– Создаем переменную conn и присваиваем ей значение подключения к базе данных.
2. Создание таблицы transport:
– Получаем курсор базы данных из переменной conn с помощью функции cursor().
– Используя созданный курсор, выполняем SQL-запрос для создания таблицы transport.
– SQL-запрос состоит из команды CREATE TABLE, имени таблицы, список столбцов и их типы данных.
– Столбцы таблицы transport включают id_car (тип SERIAL, автоматически генерирующийся уникальный идентификатор), car_brand (тип VARCHAR(30), марка автомобиля) и price_of_rent_for_1_km (тип INT, стоимость аренды за 1 км).
3. Создание таблицы orders:
– Используя тот же курсор, выполняем SQL-запрос для создания таблицы orders.
– SQL-запрос аналогичен созданию таблицы transport, но с другими именами столбцов.
– Столбцы таблицы orders включают id_order (тип SERIAL, автоматически генерирующийся уникальный идентификатор), car_id (тип INT, идентификатор автомобиля), customer_name (тип VARCHAR(30), имя клиента) и order_date (тип DATE, дата заказа).
4. Заполнение таблиц данными:
– Создаем новый курсор с помощью функции cursor().
– Используя курсор, выполняем SQL-запросы для вставки данных в таблицы.
– SQL-запросы состоят из команды INSERT INTO, имени таблицы и значения для каждого столбца.
– Вставляем данные в таблицу transport с помощью INSERT INTO и VALUES.
– Вставляем данные в таблицу orders с помощью INSERT INTO и SELECT, где SELECT выбирает значения столбцов из таблицы transport.
– Выполняем команду commit() для сохранения изменений.
5. Закрытие подключения:
– Выполняем команду close() для закрытия подключения к базе данных.
Функция filling_out_tables возвращает None.
Пример решения:
“`
import psycopg2
def connect():
conn = psycopg2.connect(dbname=’exam’, user=’postgres’, password=’postgres’)
return conn
def filling_out_tables():
conn = connect()
cur = conn.cursor()
cur.execute(“CREATE TABLE transport(”
“id_car SERIAL PRIMARY KEY,”
“car_brand VARCHAR(30),”
“price_of_rent_for_1_km INT);”)
cur.execute(“CREATE TABLE orders(”
“id_order SERIAL PRIMARY KEY,”
“car_id INT,”
“customer_name VARCHAR(30),”
“order_date DATE);”)
cur.execute(“INSERT INTO transport (car_brand, price_of_rent_for_1_km) VALUES (‘Toyota’, 10), (‘BMW’, 15)”)
cur.execute(“INSERT INTO orders (car_id, customer_name, order_date) SELECT id_car, ‘John Doe’, ‘2021-01-01’ FROM transport WHERE car_brand = ‘Toyota'”)
conn.commit()
cur.close()
conn.close()
filling_out_tables()
“`