SQL код скопирован в буфер обмена
Отточите свои навыки SQL с помощью наших интерактивных упражнений!
Практикуйте широкий спектр SQL-задач, от базовых запросов до сложных техник. Получайте мгновенную обратную связь на свои решения, чтобы учиться на ошибках и совершенствовать свои навыки. Увеличьте свою уверенность для собеседований и реальных приложений SQL.
Задание  3:
Напишите запрос возвращающий таблицу значений факториала для целых чисел от 0 до 10.
Таблица должна содержать две колонки n - число от 0 до 10 и f значение факториала этого числа

Напишите ваш запрос в поле ниже и нажмите кнопку "Проверить!"

Для написания ответа используйте синтаксис MySQL. Описания таблиц приведены в правой панели.

Откройте для себя более 280 уникальных заданий.

Войдите, чтобы сохранить свой прогресс.

База данных Sakila (MySQL)

ER диаграмма базы данных Sakila

Sakila - это пример базы данных, разработанный компанией MySQL, специально созданный для обучения и демонстрации возможностей систем управления базами данных (СУБД) на основе реляционной модели.

База данных Sakila содержит 15 основных таблиц, описывающих различные аспекты компании по прокату DVD-дисков.

Ниже приведен список этих таблиц:

  • actor - таблица актеров.
  • address - таблица адресов клиентов и сотрудников.
  • category - таблица категорий фильмов.
  • city - таблица городов.
  • country - таблица стран.
  • customer - таблица клиентов в базе данных Sakila.
  • film - таблица фильмов в базе данных Sakila.
  • film_actor - таблица связи актеров и фильмов.
  • film_category - таблица связи фильмов и категорий.
  • inventory - таблица товаров в базе данных Sakila.
  • language - таблица языков фильмов.
  • payment - таблица платежей клиентов.
  • rental - таблица аренды клиентов.
  • staff - таблица сотрудников компании.
  • store - таблица магазинов компании.

Таблица actor

Колонки:
  • actor_id - уникальный идентификатор для каждого актера.
  • first_name - имя актера.
  • last_name - фамилия актера.
  • last_update - временная метка создания или последнего обновления строки.
actor_id first_name last_name last_update
1 John Doe 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (actor_id)

Таблица address

Колонки:
  • address_id - уникальный идентификатор для каждого адреса.
  • address – почтовый адрес.
  • address2 – дополнительный адрес.
  • district – район или регион.
  • city_id - внешний ключ, ссылающийся на таблицу городов.
  • postal_code – почтовый индекс.
  • phone – номер телефона.
  • last_update - временная метка создания или последнего обновления строки.
address_id address address2 district city_id postal_code phone last_update
1 123 Main St [null] Downtown 1 12345 +1234567890 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (address_id)

Таблица category

Колонки:
  • category_id – уникальный идентификатор для каждой категории.
  • name - название категории.
  • last_update - временная метка создания или последнего обновления строки.
category_id name last_update
1 Action 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (category_id)

Таблица city

Колонки:
  • city_id – уникальный идентификатор для каждого города.
  • city - название города.
  • country_id - внешний ключ, ссылающийся на таблицу стран.
  • last_update - временная метка создания или последнего обновления строки.
city_id city country_id last_update
1 Metropolis 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (city_id)

Таблица country

Колонки:
  • country_id – уникальный идентификатор для каждой страны.
  • country – название страны.
  • last_update - временная метка создания или последнего обновления строки.
country_id country last_update
1 United States 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (country_id)

Таблица customer

Колонки:
  • customer_id – уникальный идентификатор для каждого клиента.
  • store_id - внешний ключ, ссылающийся на таблицу магазина.
  • first_name – имя клиента.
  • last_name – фамилия клиента.
  • email – адрес электронной почты клиента.
  • address_id - внешний ключ, ссылающийся на таблицу адресов.
  • active – указывает, активен ли клиент.
  • create_date - временная метка, указывающая, когда клиент был добавлен в базу данных.
  • last_update - временная метка создания или последнего обновления строки.
customer_id store_id first_name last_name email address_id active create_date last_update
1 1 John Doe john.doe@example.com 1 true 2023-01-01 12:00:00 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (customer_id)

Таблица film

Колонки:
  • film_id – уникальный идентификатор каждого фильма.
  • title — название фильма.
  • description – краткое описание или сюжет фильма.
  • release_year — год выхода фильма.
  • language_id — внешний ключ, ссылающийся на таблицу language - определяет язык фильма.
  • original_language_id — внешний ключ, указывающий на таблицу language - определяет язык оригинала фильма. Используется, когда фильм дублирован на новый язык.
  • rental_duration — продолжительность периода аренды в днях.
  • rental_rate — стоимость проката фильма на период, указанный в столбце rental_duration.
  • length — продолжительность фильма в минутах.
  • replacement_cost — сумма, взимаемая с покупателя, если пленка не возвращена или возвращена в поврежденном состоянии.
  • rating — рейтинг, присвоенный фильму. Может быть одним из: G, PG, PG-13, R или NC-17.
  • special_features — список общих специальных функций, включенных в DVD. Может быть ноль или более: трейлеры, комментарии, удаленные сцены, за кадром.
  • last_update — временная метка создания или последнего обновления строки.
film_id title description release_year language_id original_language_id rental_duration rental_rate length replacement_cost rating special_features last_update
1 Film Title A brief description of the film. 2000 1 2 5 4.99 120 19.99 PG-13 Trailers, Commentaries 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (film_id)

Таблица film_actor

Колонки:
  • actor_id – уникальный идентификатор актера.
  • film_id – уникальный идентификатор фильма.
  • last_update - временная метка создания или последнего обновления строки.
actor_id film_id last_update
1 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (actor_id, film_id)

Таблица film_category

Колонки:
  • film_id – уникальный идентификатор каждого фильма.
  • category_id – уникальный идентификатор для каждой категории.
  • last_update - временная метка создания или последнего обновления строки.
film_id category_id last_update
1 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (film_id, category_id)

Таблица inventory

Колонки:
  • inventory_id – уникальный идентификатор для каждого элемента.
  • film_id – уникальный идентификатор каждого фильма в таблице.
  • store_id – уникальный идентификатор магазина, в котором находится товар.
  • last_update — временная метка последнего изменения записи.
inventory_id film_id store_id last_update
1 23 2 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (inventory_id)

Таблица language

Колонки:
  • language_id - уникальный идентификатор для каждого языка.
  • name - название языка.
  • last_update - временная метка создания или последнего обновления строки.
language_id name last_update
1 English 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (language_id)

Таблица payment

Колонки:
  • payment_id – уникальный идентификатор для каждого платежа.
  • customer_id - внешний ключ, ссылающийся на таблицу клиентов.
  • staff_id - внешний ключ, ссылающийся на таблицу персонала.
  • rental_id - внешний ключ, ссылающийся на таблицу аренды.
  • amount – сумма платежа.
  • payment_date – дата платежа.
  • last_update - временная метка создания или последнего обновления строки.
payment_id customer_id staff_id rental_id amount payment_date last_update
1 1 1 1 4.99 2023-01-01 12:13:14 2023-01-01 12:14:15
Индексы:
  • PRIMARY KEY, btree (payment_id)

Таблица rental

Колонки:
  • rental_id – уникальный идентификатор для каждой аренды.
  • rental_date – дата, когда произошла аренда.
  • inventory_id - внешний ключ, ссылающийся на таблицу инвентаризации.
  • customer_id - внешний ключ, ссылающийся на таблицу клиентов.
  • return_date – дата возврата взятого напрокат имущества.
  • staff_id - внешний ключ, ссылающийся на таблицу персонала.
  • last_update - временная метка создания или последнего обновления строки.
rental_id rental_date inventory_id customer_id return_date staff_id last_update
1 2023-01-01 16:15:21 1 1 2023-01-10 09:12:36 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (rental_id)

Таблица staff

Колонки:
  • staff_id – уникальный идентификатор каждого сотрудника.
  • first_name – имя сотрудника.
  • last_name - фамилия сотрудника.
  • address_id - внешний ключ, ссылающийся на таблицу адресов.
  • picture – изображение сотрудника.
  • email - адрес электронной почты сотрудника.
  • store_id - внешний ключ, ссылающийся на таблицу магазина.
  • active – указывает, активен ли сотрудник.
  • username - имя пользователя для входа в систему.
  • password - пароль для входа.
  • last_update - временная метка создания или последнего обновления строки.
staff_id first_name last_name address_id picture email store_id active username password last_update
1 John Doe 1 [null] john.doe@example.com 1 true johndoe ******** 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (staff_id)

Таблица store

Колонки:
  • store_id – уникальный идентификатор каждого магазина.
  • manager_staff_id - внешний ключ, ссылающийся на таблицу персонала менеджера магазина.
  • address_id - внешний ключ, ссылающийся на таблицу адресов.
  • last_update - временная метка создания или последнего обновления строки.
store_id manager_staff_id address_id last_update
1 1 1 2023-01-01 12:00:00
Индексы:
  • PRIMARY KEY, btree (store_id)