Создание базы данных "Киностудии", страница 5

10. Найти всех актеров, каждый из которых либо мужчина, либо живет в Москве.

SELECT  people.фамилия, people.пол, city.название_города;

FROM city inner join people on city.id_city = people.id_city;

WHERE people.актерство = "да";

      AND (people.пол = "М";

OR city.название_города = thisform.combo1.value)

Рис. 49.Результат работы запроса №10

11. Найти имена и адреса всех актрис, которые одновременно являются президентами киностудий или продюсерами, обладающими совокупным годовым доходом в размере свыше 10000 (ввод любого значения).

SELECT  people.фамилия, people.адрес_проживания, people.годовой_доход;

FROM people;

WHERE people.пол = "Ж";

      AND people.актерство = "да";

      AND people.руководительство = "да";

      AND people.годовой_доход > thisform.text1.value;

Рис. 50.Результат работы запроса №11

12. Кто из актеров-мужчин участвовал в съемках фильма «Терминатор» (или ввод наименования любого другого фильма).

SELECT  people.фамилия, people.пол, films.название;

FROM people,actors,films;

WHERE people.пол = "М";

      AND people.актерство = "да";

      AND films.название = thisform.combo1.value;

      AND people.id_ppl = actors.id_ppl;

      AND films.id_film = actors.id_film;

      AND NOT(thisform.combo1.value == "");

Рис. 51.Результат работы запроса №12

13. Какие актеры снимались в фильмах, выпущенных киностудией «Мосфильм» (ввод киностудии любой, на выбор) в 1995 году (ввод заданного года, любого).

SELECT  people.фамилия, films.название as Фильм, films.дата_выпуска, studies.название as Киностудия;

FROM  films, people, actors, studies;

WHERE people.id_ppl = actors.id_ppl;

      AND films.id_film = actors.id_film;

      AND studies.id_study = films.id_study;

      AND   studies.название = thisform.combo2.value;

      AND year(films.дата_выпуска) = thisform.text1.value

Рис. 52.Результат работы запроса №13

14. Кто занимает пост президента заданной киностудии.

SELECT studies.название, people.фамилия as Президент;

FROM  Kino_base!people INNER JOIN Kino_base!studies ON  people.id_ppl = studies.id_presid;

WHERE studies.название = thisform.combo1.value;

      AND NOT(thisform.combo1.value == "");

Рис. 53.Результат работы запроса №14

15. Кто из руководителей индустрии кино обладает большим состоянием, чем актер Иванов (выбор, ввод).

SELECT people.фамилия, people.состояние;

FROM  people;

WHERE NOT(thisform.combo1.value == "");

      AND people.руководительство = "да";

      AND people.состояние > (SELECT people.состояние FROM people;

WHERE people.фамилия = thisform.combo1.value AND people.актерство = "да");

Рис. 54.Результат работы запроса №15

16. Найти имена тех президентов киностудий, одновременно являющихся актерами.

SELECT people.фамилия, people.актерство as Является_актером;

FROM  people,studies;

WHERE people.руководительство = "да";

      AND people.актерство = "да";

AND studies.id_presid = people.id_ppl;

Рис. 55.Результат работы запроса №16

Теперь приведем тексты запросов, использующиеся для добавления записей в таблицы

Запрос добавления новой записи в таблицу городов (форма приведена на рис. 32).

public tmp(2)

if reccount("city") > 0

      SELECT MAX(id_city) FROM city INTO ARRAY tmp

else

      tmp[1] = -1

endif

INSERT INTO city (название_города,id_city);

VALUES (thisform.text1.value,tmp[1]+1)

thisform.text1.value = ""

messagebox("Новый город добавлен в базу!")