Обозначения для условий комбинированного поиска на панели критериев (визуальные инструменты для баз данных)

Обозначения для условий комбинированного поиска на панели критериев (визуальные инструменты для баз данных)

Предусмотрена возможность создания запросов, включающих любое количество условий поиска, соединенных любым количеством операторов AND и OR. Запрос с сочетанием предложений AND и OR может стать сложным, поэтому важно знать, как такой запрос интерпретируется при выполнении и представляется на панели критериев и панели SQL.

Ниже содержатся сведения о следующем:

Приоритет AND и OR в запросах, содержащих их оба.

Как условия в предложениях AND и OR логически связаны друг с другом.

Как конструктор запросов и представлений отображает на панели критериев запросы, содержащие AND и OR.

Для простоты понимания нижеследующего представьте, что работаете с таблицей employee , содержащей столбцы hire_date , job_lvl и status . В примерах предполагается, что пользователи должны знать такие сведения, как дата найма сотрудника, какой вид работы он выполняет (его должность), а также его состояние (например, уволенный).

Приоритет AND и OR

При выполнении запроса сначала проверяются предложения, соединенные AND, а затем — соединенные OR.

Оператор NOT имеет приоритет над AND и над OR.

Например, чтобы найти либо сотрудников, которые проработали в компании более пяти лет на младших должностях, либо сотрудников среднего звена безотносительно к дате найма, можно сконструировать следующее предложение WHERE:

Для переопределения приоритета AND над OR, используемого по умолчанию, можно поместить определенные условия на панели SQL в круглые скобки. Условия в круглых скобках всегда вычисляются первыми. Например, чтобы найти всех сотрудников, которые проработали в компании на младших или средних должностях более пяти лет, можно сконструировать следующее предложение WHERE:

Рекомендуется для ясности всегда задавать круглые скобки при сочетании предложений AND и OR вместо использования приоритета по умолчанию.

Работа AND с несколькими предложениями OR

Понимание того, как работают предложения AND и OR при объединении, поможет при составлении и изучении сложных запросов в конструкторе запросов и представлений.

При соединении нескольких условий с помощью AND первый набор условий, соединенных AND, применяется ко всем условиям из второго набора. Другими словами, условие, соединенное AND с другим условием, распространяется на все условия второго набора. Например, следующее схематичное представление иллюстрирует условие AND, соединенное с набором условий OR:

Вышеприведенное представление логически идентично следующему схематичному представлению, иллюстрирующему распространение условия AND на второй набор условий:

Этот принцип распространения влияет на использование конструктора запросов и представлений. Например, пользователь ищет всех сотрудников, работающих в компании более пяти лет на младших или средних должностях. Следующее предложение WHERE добавляется в инструкцию на панели SQL:

Предложение, соединенное AND, применяется к обоим предложениям, соединенным OR. Явно это можно выразить посредством повторения условия AND по одному разу для каждого условия в предложении OR. Следующая инструкция более точная (и длинная), чем предыдущая, но логически идентична ей:

Принцип распространения предложений AND на соединенные предложения OR применяется вне зависимости от количества отдельных учитываемых условий. Например, пусть требуется найти сотрудников высокого или среднего звена, проработавших в компании более пяти лет либо уволенных. Предложение WHERE может выглядеть так:

После распространения условий, соединенных AND, предложение WHERE выглядит так:

Как несколько предложений AND и OR представляются на панели критериев

Конструктор запросов и представлений выводит условия поиска на панель критериев. Однако в некоторых случаях при использовании нескольких предложений, соединенных AND и OR, представление на панели критериев может отличаться от ожидаемого. Кроме того, при редактировании запроса на панели критериев или панели диаграммыможно обнаружить, что инструкция SQL изменилась по сравнению с ранее заданной.

Эти правила определяют то, как предложения AND и OR отображаются на панели критериев:

Все условия, соединенные AND, выводятся в столбце сетки Фильтр или в одном столбце Или. .

Все условия, соединенные OR, выводятся в отдельных столбцах Или. .

Если логический результат объединения предложений AND и OR заключается в том, что AND распространяется на несколько предложений OR, панель критериев представляет это в явной форме, повторяя предложение AND столько раз, сколько требуется.

Например, на панели SQL можно создать нижеприведенное условие поиска, в котором два предложения, соединенные AND, имеют приоритет над третьим, соединенным OR:

Конструктор запросов и представлений отображает данное предложение WHERE на панели критериев следующим образом:

Однако если связанные предложения OR имеют приоритет над предложением AND, последнее повторяется для каждого предложения OR. В результате предложение AND распространяется на каждое предложение OR. Например, на панели SQL было создано предложение WHERE, подобное следующему:

Конструктор запросов и представлений отображает данное предложение WHERE на панели критериев следующим образом:

Если соединенные предложения OR включают только один столбец данных, конструктор запросов и представлений может поместить все предложение OR в одну ячейку сетки, устраняя необходимость повторения предложения AND. Например, на панели SQL было создано предложение WHERE, подобное следующему:

Конструктор запросов и представлений отображает данное предложение WHERE на панели критериев следующим образом:

При внесении изменений в запрос (например при редактировании одного из значений на панели критериев), конструктор запросов и представлений повторно создает инструкцию SQL на панели SQL. Воссозданная инструкция SQL аналогична представлению панели критериев, а не исходной инструкции. Например, если панель критериев содержит распределенные предложения AND, результирующая инструкция на панели SQL создается повторно с явно распределенными предложениями AND. Дополнительные сведения см. в разделе «Работа AND с несколькими предложениями OR» ранее в этом подразделе.

📎📎📎📎📎📎📎📎📎📎