Создание основной базы данных «Пресса», страница 2

Информационное наполнение базы данных осуществляется с помощью формы Edit (Редактирование) (рис.8). Просмотр данных осуществляется на главной форме (рис. 9). Для извлечения информации из БД необходимо использовать форсу Запросы, показанную на рис.10.

Выход из программы осуществляется по нажатию на кнопку Выход на главной форме приложения.

Рис.8. Форма для редактирования

Рис.9. Главная форма для просмотра

Рис.10. Форма с запросами

Вся работа с БД построена на использовании диалоговых окон, в которых используются стандартные элементы диалога ОС WINDOWS. Использование этих диалоговых окон является интуитивно понятным и не вызывает затруднений.

7. Тексты запросов и примеры работы.

·  выдать список, отсортированный:

·  В алфавитном порядке по наименованию,

Текст запроса:

select * from pressa!view order by view.name,view.vid

Рис.11. Результат сортировки по наименованию

·  выдать список, отсортированный:

·  По тиражу,

Текст запроса:

select * from pressa!view order by view.tirag

Рис.12. Результат сортировки по тиражу

  • выдать список, отсортированный:
    • по стоимости

Текст запроса:

select * from pressa!view order by view.price

Рис.13. Результат сортировки по стоимости


·  Найти самое дорогое издание, самое дешевое, среднюю стоимость для каждого вида прессы и в целом;

    

Рис.14  Форма запроса(слева) и результат(справа)

Текст запроса самое дешевое издание:

SELECT products.name, MIN(products.price);

 FROM pressa!products;

 WHERE products.price = (SELECT MIN(products.price) from products);

Текст запроса самое дорогое издание:

SELECT products.name, MAX(products.price);

 FROM pressa!products;

 WHERE products.price = (SELECT MAX(products.price) from products);

Текст запроса найти среднюю стоимость:

if thisform.check1.value = 1

SELECT AVG(Products.price);

 FROM pressa!products

endif

if thisform.check1.value = 0

SELECT AVG(View_a.price), View_a.vid;

 FROM pressa!view View_a;

  WHERE View_a.vid = thisform.Combo1.Value

endif

·  Найти прессу с ценой свыше 5 рублей (и любая другая сумма, предусмотреть ввод цены с клавиатуры) для каждого вида издания и в целом;

 

Рис.15  Форма запроса(слева) и результат(справа)

Текст запроса:

if thisform.check1.value = 1

 if thisform.check2.value = 1

 SELECT View_a.price, View_a.name, View_a.vid;

  FROM pressa!view View_a;

   WHERE View_a.price > VAL(thisform.Text1.value)

 endif

 if thisform.check2.value = 0

 SELECT View_a.price, View_a.name, View_a.vid;

  FROM pressa!view View_a;

   WHERE View_a.price > 5

 endif

endif

if thisform.check1.value = 0

 if thisform.check2.value = 1

 SELECT View_a.price, View_a.name, View_a.vid;

  FROM pressa!view View_a;

   WHERE View_a.price > VAL(thisform.Text1.value) AND View_a.vid = thisform.Combo1.Value

 endif

 if thisform.check2.value = 0

 SELECT View_a.price, View_a.name, View_a.vid;

  FROM pressa!view View_a;

   WHERE View_a.price > 5 AND View_a.vid = thisform.Combo1.Value

 endif

endif

·  Найти все издания, чей тираж попадает в заданные пределы;

 

Рис.16  Форма запроса(слева) и результат(справа)

Текст запроса:

SELECT View_a.name, View_a.vid, View_a.tirag;

  FROM pressa!view View_a;

   WHERE View_a.tirag > VAL(thisform.Text1.value) AND View_a.tirag < VAL(thisform.Text2.value)

·  Для заданного издательства (выбор) найти все виды газетной продукции;

 

Рис.17  Форма запроса(слева) и результат(справа)

Текст запроса:

SELECT View_a.vid, View_a.name;

  FROM pressa!view View_a;

   WHERE View_a.izdat = thisform.Combo1.value

·  Найти все издания, чья стоимость находится в заданных пределах (ввод интервала), для заданного издательства;

 

Рис.18  Форма запроса(слева) и результат(справа)

Текст запроса:

SELECT View_a.name, View_a.izdat, View_a.price;

  FROM pressa!view View_a;

   WHERE View_a.price > VAL(thisform.Text1.value) AND View_a.price < VAL(thisform.Text2.value);

    AND View_a.izdat = thisform.Combo1.Value

·  Найти долю дешевой прессы (меньше заданного, ввод ограничения) от общего числа изданий;

Рис.19  Форма запроса и результат

Текст запроса:

Текст запроса

SELECT SUM(View_a.price)AS txt;

 FROM pressa!view View_a;

 WHERE View_a.price <= VAL(thisform.Text2.Value);

 INTO CURSOR x

 thisform.Text1.Value = txt

 A = thisform.Text1.Value

SELECT SUM(View_a.price)AS txt2;

 FROM pressa!view View_a;

 INTO CURSOR xx

 thisform.Text1.Value = txt2

 B = thisform.Text1.Value

C = 100 * A

A = C / B

 thisform.Text1.Value = A

·  Найти долю прессы проданной за определенный период (ввод);