Система управления базами данных Visual FoxPro5.0 - от начальных навыков к профессиональной работе. Крушель Е.Г - 27 стр.

UptoLike

Составители: 

73
При выполнении следующих заданий старайтесь предугадать, какие записи будут
«видимыми» при использовании фильтра; обязательно проанализируйте состав записей,
выведенных командой BROWSE после фильтрации, и сравните с Вашими
предположениями. Мысленно поставьте себе оценку.
Установите фильтр для отбора записей, в которых баллы за сессии 01 и 02 больше
4.0:
SET FILTER TO Балл
_сес01>4.0.AND. Балл_сес02>4.0
BROWSE
Обратите внимание
: «сложное» условие фильтрации, содержащее операции над
несколькими полями, может содержать операции АЛГЕБРЫ ЛОГИКИи», «или», «не» -
AND, OR, NOT), окруженные точками (можно - пробелами).
Установите фильтр для отбора записей, в которых средний балл за сес 01 и 02 выше
4.5:
SET FILTER TO (Балл_сес01+ Балл_сес02)/2 > 4.5
BROWSE
Установите фильтр, содержащий разнотипные поля в условиях отбора - например,
отберите записи, относящиеся к студентам с фамилиями, начинающимися с букв «Я»
или «Т», и имеющим оценки не ниже 4.5 за сессию 01:
SET FILTER TO LEFT(ФИО,1)=«Я».OR.LEFT(ФИО,1) =«Т»).
AND. Балл_сес01>=4.5 (набирайте в одной строке или
разделяйте строки
символом « ; » !)
BROWSE
В последнем фильтре использована команда выделения нескольких символов в
поле (начиная с левого) :функция
LEFT(<имя_поля_симв._типа, число_символов>)
возвращает заданное число_символов (в примере 1), читаемых слева в имени поля
символьного типа. Имеется аналогичная функция, возвращающая заданное
число_символов, читаемых справа
RIGHT(<имя_
поля_симв._типа, число_символов>)
Имеется также функция, возвращающая заданное число_символов из «середины»
символьной строки, начиная (и включая!) символ_с_ заданным_номером:
SUBSTR(<имя_поля_симв._типа, симв._с_задан._номером,_
_число_символов_начиная_с_него>)
(например: функция SUBSTR(Группа,5,1) возвратит значение одного символа в 5-й
позиции
поля Группа - в файле students.dbf в этой позиции записан символ (не цифра) «5»
или «6»).
Логические условия, по которым осуществляется фильтрация записей, могут содержать:
имена полей;
знаки действий, допустимых для полей данного типа
(^,*,/,+,- для числовых полей;
+,- для полей типа ДАТА;
+ (слияние, в СУБД вместо этого принят термин конкатенация) для символьных полей);
знаки алгебры логики (.AND. .OR. .NOT.), которые могут соединять выражения
над данными
различных типов (см. вышеприведенный пример);
знаки скобок;
знаки сравнения >,<,>=,<=,#(не равно).
Решите следующие задачи:
выполните выше описанные примеры в диалоге Work Area Properties;
установите фильтр для отбора записей, в которых в наименовании группы
имеется цифра 5 на 5-й позиции, и в которых средний балл за сессию 01 ниже 4.5.
установите фильтр для отбора записей, которые относятся к студентам-
отличникам (наборов как 1997, так
и 1993 г.).
Новые команды и функции:
                                             73

        При выполнении следующих заданий старайтесь предугадать, какие записи будут
«видимыми» при использовании фильтра; обязательно проанализируйте состав записей,
выведенных командой BROWSE после фильтрации, и сравните с Вашими
предположениями. Мысленно поставьте себе оценку.
• Установите фильтр для отбора записей, в которых баллы за сессии 01 и 02 больше
   4.0:
        SET FILTER TO Балл_сес01>4.0.AND. Балл_сес02>4.0
        BROWSE
        Обратите внимание: «сложное» условие фильтрации, содержащее операции над
несколькими полями, может содержать операции АЛГЕБРЫ ЛОГИКИ («и», «или», «не» -
AND, OR, NOT), окруженные точками (можно - пробелами).
• Установите фильтр для отбора записей, в которых средний балл за сес 01 и 02 выше
   4.5:
        SET FILTER TO (Балл_сес01+ Балл_сес02)/2 > 4.5
        BROWSE
• Установите фильтр, содержащий разнотипные поля в условиях отбора - например,
   отберите записи, относящиеся к студентам с фамилиями, начинающимися с букв «Я»
   или «Т», и имеющим оценки не ниже 4.5 за сессию 01:
        SET FILTER TO LEFT(ФИО,1)=«Я».OR.LEFT(ФИО,1) =«Т»).
            AND. Балл_сес01>=4.5 (набирайте в одной строке или разделяйте строки
символом « ; » !)
        BROWSE
        В последнем фильтре использована команда выделения нескольких символов в
поле (начиная с левого) :функция
                    LEFT(<имя_поля_симв._типа, число_символов>)
возвращает заданное число_символов (в примере 1), читаемых слева в имени поля
символьного типа. Имеется аналогичная функция, возвращающая заданное
число_символов, читаемых справа
                   RIGHT(<имя_поля_симв._типа, число_символов>)
        Имеется также функция, возвращающая заданное число_символов из «середины»
символьной строки, начиная (и включая!) символ_с_ заданным_номером:
               SUBSTR(<имя_поля_симв._типа, симв._с_задан._номером,_
                           _число_символов_начиная_с_него>)
(например: функция SUBSTR(Группа,5,1) возвратит значение одного символа в 5-й
позиции поля Группа - в файле students.dbf в этой позиции записан символ (не цифра) «5»
или «6»).
         Логические условия, по которым осуществляется фильтрация записей, могут содержать:
• имена полей;
• знаки действий, допустимых для полей данного типа
(^,*,/,+,- для числовых полей;
 +,-      для полей типа ДАТА;
 + (слияние, в СУБД вместо этого принят термин конкатенация) для символьных полей);
• знаки алгебры логики (.AND. .OR. .NOT.), которые могут соединять выражения над данными
     различных типов (см. вышеприведенный пример);
• знаки скобок;
• знаки сравнения >,<,>=,<=,#(не равно).
Решите следующие задачи:
          выполните выше описанные примеры в диалоге Work Area Properties;
          установите фильтр для отбора записей, в которых в наименовании группы
имеется цифра 5 на 5-й позиции, и в которых средний балл за сессию 01 ниже 4.5.
          установите фильтр для отбора записей, которые относятся к студентам-
          отличникам (наборов как 1997, так и 1993 г.).
                                Новые команды и функции: