Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Оператор                             Значение

Поиск

1.1. Критерий отбора данных

Для фильтрации данных, содержащихся в запросе, а также для определения условий связи каждой пары таблиц при включении более одной таблицы в запрос используются следующие опции:

WHERE <условие связи со второй таблицей>

[AND <условие связи с третьей таблицей>...]

[AND|OR <условие отбopa>[AND <условие отбора>...]]

Каждое <условие связи> имеет формат:

<имя первой таблицы>.<поле первой таблицы> Оператор <имя второй таблицы>.<поле второй таблицы>

 

-                                            Равно

==                                         Точно равно

>                                           Больше чем

<                                           Меньше чем

>-                                          Больше или равно

<=                                         Меньше или равно

<>, !=, #                                Не равно

LIKE                                    Сравнение по шаблону

 

Кроме того, несколько условий связи соединяются оператором AND.

Если в запрос включены две таблицы, а условие связи не указано, то каждая запись из одной таблицы связывается с каждой записью из другой.

Пустые поля (.NULL.) в связанных таблицах обрабатываются так же, как и остальные.

При использовании в опции WHERE функций DELETED(). RECNO(), RECCOUNT(). FOUND(). EOF() нужно иметь в виду, что они поддерживают имя рабочей области, что может привести к непредсказуемым результатам.

В выражении <условие отбора> используются такие же операторы, определяющие отношения, как описано выше и, кроме того, операторы AND и OR - для соединения условий отбора, NOT — для инверсии логических значений, LIKE - для сравнения по шаблону, BETWEEN - для проверки, находится ли значение в указанном диапазоне, IN -для проверки находится ли значение поля, указанного слева от IN, среди перечисленных справа от него значений.

Пример вывода всех записей таблицы stud в рабочей области а, у которых содержимое поля country не начинается с символа "У":

SELECT * FROM Stud a WHERE a.country NOT LIKE "%У%"

Для отбора по подстроке в данном примере используется оператор LIKE "% под­строка %".

Следующая команда выводит имена всех студентов, получающих стипендию (spay) в размере от 30 до 50 гривен.

SELECT name FROM scholar WHERE spay BETWEEN 30 AND 50

Если отобранные данные должны соответствовать определенным значениям, следует использовать оператор IN<cпиcoк значений>.

Например, если нужен список студентов, которые вносили оплату первого числа каждого месяца, выполнить такую команду:

SELECT stud.name FROM stud, payment;

WHERE stud.name=payment.name;

AND payment.dpay IN ({^2004-03-01),{^2004-04-01),{^2004-05-01})

 

Оператор IN также используют для организации вложенных подзапросов. Подзапрос - это запрос в запросе. Внутренний запрос выполняется первым и обычно используется с опцией WHERE для фильтрации записей.

SELECT fch FROM TabNamel a WHERE fcode;

IN (SELECT * FROM TahName2 b WHERE a.fn=b.fn)

 

Чтобы определить, является ли результат подзапроса непустым множеством, используется оператор EXISTS <результат подзапроса>, который выполняет то же, что и опция IN.

Например, имена всех студентов, которые выполнили оплату до 01.05.04, помещаюта в курсор temp.

SELECT name FROM stud a;

WHERE EXISTS (SELECT * FROM payment b; WHERE dpay<(^2004-05-01) );

INTO CURSOR temp

Кроме того, для обработки ситуации отрицания существования может использоватш оператор NOT EXISTS.

Например, для вывода имен всех студентов из таблицы stud,которых нет среди отчис­ленных в таблице otch,используются строки:

SELECT name FROM stud a WHERE;

NOT EXISTS (SELECT * FROM Otch b WHEREa.name=b.name)

Условие отбора данных может содержать и неопределенные значения полей. Например чтобы вывести на экран имена студентов, для которых определена сумма оплаты за с% чеиие(поле sum), выполните команду

SELECT name PROM stud a WHERE sumIS NOT NULL

 



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 5; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.198.143 (0.007 с.)