Расширенный поиск и язык запросов. Язык запросов поисковой системы. Ключевые запросы (слова) Как совершается поиск информации

Запросы, которые изучались нами ранее, называются запросами-выборками . При их сохранении в памяти машины сохраняются только заданные условия поиска. Каждый раз при запуске запроса на выполнение возникает так называемый динамический набор данных. Он не существует реально.

Запрос на изменение - это запрос, который за одну операцию вносит изменения в несколько записей. Существует четыре типа запросов на изменение: на удаление, на обновление, добавление записей, на создание таблицы.

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

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

Последовательность действий:

1. В режиме конструктора запросов войти в меню «Запрос» и выбрать команду «Удаление». Появится дополнительная строка «Удаление».

2. В строке «Условие отбора» указать, какие записи должны удаляться.

Ни рис 4.22 показано окно конструктора, в котором из состава студентов, получающих стипендию, будут исключены те, кто сдал экзамены на два. Обратите внимание, в той версии, которая реализована у нас, стипендии лишаются студенты, получившие двойки по трем экзаменам, если бы условия сдачи на два по английскому языку мы перенесли на одну строку ниже (строка «или»), а двойка по математике была бы записана еще ниже, то это означало бы поиск студентов, получивших двойку хотя бы по одному экзамену.

Запрос на обновление записей. Вносит общие изменения в группу записей, которые отбираются с помощью условий, в одну или несколько таблиц. Запрос этого типа позволяет изменять данные в существующих таблицах.

Допустим, первоначально студентам была назначена стипендия в размере 34 р. (рис. 4.23). Затем стипендию решили увеличить на 50р. Это можно сделать с помощью запроса на обновление. Чтобы создать запрос на обновление, в режиме Конструктора запросов следует выбрать команду меню «Запрос»/ «Обновление». В нижней части бланка появится новая строка «Обновление», в которую следует ввести выражение для расчета (рис. 4.24).

Рис. 4.22. Окно конструктора запроса на удаление

Рис. 4.23. Исходная таблица данных

Рис. 4.24. Окно конструктора запроса на обновление

При запуске запроса на выполнение появится сообщение, которое следует подтвердить. После того, как Вы подтвердите обновление записей, внешний вид экрана не изменится, все изменения происходят только с таблицей. Чтобы просмотреть их, откройте таблицу. Значения величин в поле «Стипендия» должны увеличиться.

Запросы на обновление позволяют внести изменения не только во все записи таблицы, но и в отдельные записи, которые находят по определенным условиям. В этом случае в строке «Условие отбора» вводят условия, определяющие какие записи выбрать для изменения, а в строке «Обновление» указывают, как их следует изменить.

После сдачи экзамена в деканате постановили лишить стипендии всех студентов, которые получили хотя бы одну двойку в сессии. Был составлен запрос и…. Следует обратить внимание на то, что напечатанный 0 в строке «Обновление» означает, что стипендия будет равна 0, но не во всех записях, а в тех, которые удовлетворяют приведенным в соседнем столбце условиям (рис. 4.25).

Рис. 4.25. Окно конструктора запроса на обновление

Условия объединяются словом ИЛИ (или ВТ=2, или Математика=2, или английский язык=2).

Добавим в таблицу новое поле «Общежитие», однако не будем его заполнять вручную, оставив пустым. Определим, кому требуется общежитие, считая, что, если студент проживает в Донецке, общежитие не требуется, а при проживании в других городах - требуется (рис. 4.26).

Запустим запрос на выполнение, щелкнув мышкой по кнопке, а затем откроем таблицу. В целях наглядности скрыты все столбцы, кроме столбца «Фамилия» и «Общежитие» (рис. 4.27).

Как видите, запрос на обновление очень удобен, позволяя автоматически изменять устаревшую информацию на новую, менять содержимое таблиц по определенным условиям.

Рис. 4.26. Окно конструктора запроса на обновление

Рис. 4.27. Результат выполнения запроса на обновление

С помощью запроса на добавление таблицы имеется возможность добавить записи из одной таблицы в конец указанной Вами таблицы или нескольких таблиц. создает новую таблицу на основе всех или части данных из одной или нескольких таблиц.

Допустим, требуется создать две таблицы на основании уже существующей, но в первую таблицу перенести информацию о студентах, которым требуется общежитие, а во вторую - проживающих в Донецке. Такая операция выполняется с помощью запроса на создание таблицы (рис. 4.28).

Для этого:

~ перенести в запрос те поля, которые должны быть в таблице;

~ указать условия отбора;

~ войти в меню «Запрос» / «Создание таблицы», в появившемся окне ввести имя создаваемой таблицы, в нашем случае она называется «Иногородние»;

~ Запустить запрос на выполнение. Дать согласие на создание новой таблицы;

Таблица появится в списке существующих таблиц .


Рис. 4.28. Окно конструктора запроса на создание таблицы



Другие новости

Говорят, что в Интернете есть все. На самом деле – это не так. Материалы для размещения в сети готовят живые люди, и потому там можно найти лишь то, что они сочли нужным опубликовать. Впрочем, река питается ручьями, и, благодаря их творчеству сегодня в Интернете уже образовалось около двух миллиардов Web-страниц. В результате каталогизация имеющихся в сети ресурсов стала серьезной проблемой. Несмотря на то, что проблемой занимаются тысячи организаций, она не только не приближается к разрешению, но и становится острее. Процент каталогизированных ресурсов неуклонно падает. В последние годы это падение стало катастрофическим. Так, если в 1999 году процент каталогизированных ресурсов приближался к 40%, то всего лишь за один следующий год он опустился до 25 %.

Вывод простой: пространство Web быстрее наполняется, чем систематизируется.

К сожалению, у нас нет оснований предполагать, что в ближайшее время что-нибудь может измениться к лучшему. В итоге поиск информации в Интернет можно считать одной из самых трудных задач.

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

Адреса Web-страниц приводятся в специальных справочниках, печатных изданиях, звучат в эфире популярных радиостанций и с экранов телевизора.

Если вы не знаете адреса, то для поиска информации в сети Интернет существуют поисковые системы, которые содержат информацию о ресурсах Интернета.

Каждая поисковая система – это большая база ключевых слов, связанных с Web-страницами, на которых они встретились. Для поиска адреса сервера с интересующей вас информацией надо ввести в поле поисковой системы ключевое слово, несколько слов или фразу. Тем самым вы посылаете поисковой системе запрос. Результаты поиска выдаются в виде списка адресов Web-страниц, на которых встретились эти слова.

Как правило, поисковые системы состоят из трех частей: робота, индекса и программы обработки запроса.

Робот (Spider, Robot или Bot) - это программа, которая посещает веб-страницы и считывает (полностью или частично) их содержимое.

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

Индекс - это хранилище данных, в котором сосредоточены копии всех посещенных роботами страниц.

Индексы в каждой поисковой системе различаются по объему и способу организации хранимой информации. Базы данных ведущих поисковых машин хранят сведения о десятках миллионов документов, а объемы их индекса составляют сотни гигабайт. Индексы периодически обновляются и дополняются, поэтому результаты работы одной поисковой машины с одним и тем же запросом могут различаться, если поиск производился в разное время.

Программа обработки запроса - это программа, которая в соответствии с запросом пользователя «просматривает» индекс на предмет наличия нужной информации и возвращает ссылки на найденные документы.

Множество ссылок на выходе системы распределяется программой в порядке убывания от наибольшей степени соответствия ссылки запросу к наименьшей.

В России наиболее распространенными поисковыми системами являются:

  • Рамблер (www.rambler.ru);
  • Яндекс (www.yandex.ru);
  • Мэйл (www.mail.ru).

За рубежом поисковых систем гораздо больше. Самыми популярными являются:

  • Alta Vista (www.altavista.com);
  • Fast Search (www.alltheweb.com);
  • Northern Light (www.northernlight.com).

Яндекс является пожалуй наилучшей поисковой системой в российском Интернете. Эта база данных содержит около 200 000 серверов и до 30 миллионов документов, которые система просматривает в течение нескольких секунд. На примере этой системы покажем как осуществляется поиск информации.

Поиск информации задается введением ключевого слова в специальную рамку и нажатием кнопки «Найти», справа от рамки.

Результаты поиска появляются в течение нескольких секунд, причем ранжированные по значимости – наиболее важные документы размещаются в начале списка. При этом ранг найденного документа определяется тем, в каком месте документа находится ключевое слово (в заглавии документа важнее, чем в любом другом месте) и числом упоминаний ключевого слова (чем больше упоминаний, тем ранг выше).

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

Содержательную часть сайта можно косвенно оценить по краткому его описанию, размещаемому Поисковой системой под адресом Сайта. Некоторые недобросовестные авторы сайтов, для того, чтобы повысить вероятность появления своей Web-страницы на первых местах Поисковой системы, умышленно включают в документ бессмысленные повторы ключевого слова. Но как только поисковая система обнаруживает такой «замусоренный» документ, она автоматически исключает его из своей базы данных.

Даже ранжированный список документов, предлагаемый поисковой системой в ответ на ключевую фразу или слово, может оказаться практически необозримым. В связи с этим в Яндекс (как и других мощных Поисковых Машинах) предоставлена возможность в рамках первого списка, выбрать документы, которые точнее отражают цель поиска, то есть уточнить или улучшить результаты поиска. Например, на ключевое слово список из 34 899 Веб-страниц. После ввода в команду «Искать в найденном» уточняющего ключевого слова список сокращается до 750 страниц, а после ввода в эту команду еще одного уточняющего слова этот список сокращается до 130 Веб-страниц.

Поисковые каталоги представляют собой систематизированную коллекцию (подборку) ссылок на другие ресурсы Интернета. Ссылки организованы в виде тематического рубрикатора, npeдставляющего собой иерархическую структуру, перемещаясь по которой, можно найти нужную информацию.

Приведем в качестве примера структуру поискового интернет-каталога Яндекс.

Это каталог общего назначения, так как в нем представлены ссылки на ресурсы Интернета практически по всем возможным направлениям. В этом каталоге выделены следующие темы:

  • Бизнес и экономика;
  • Общество и политика;
  • Наука и образование;
  • Компьютеры и связь;
  • Справочники и ссылки;
  • Дом и семья;
  • Развлечения и отдых;
  • Культура и искусство.

Каждая тема включает множество подразделов , а они, в свою очередь, содержат рубрики и т. д.

Предположим, вы готовите мероприятие ко Дню победы и хотите найти в Интернете слова известной военной песни Булата Окуджавы «Вы слышите, грохочут сапоги». Поиск можно организовать следующим образом:

Яндекс > Каталог > Культура и искусство > Музыка > Авторская песня

Такой способ поиска является достаточно быстрым и эффективным. В конце вам предлагается всего несколько ссылок, среди которых есть ссылки на сайты с песнями известных бардов. Остается только найти на сайте архив с текстами песен Б. Окуджавы и выбрать в нем нужный текст.

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

Яндекс > Каталог > Компьютеры и связь > Мобильная связь > Мобильные телефоны

Получив ограниченное количество ссылок, можно достаточно оперативно их просмотреть и выбрать телефон, исследовав характеристики по фирмам и модификациям аппаратов.

Большинство поисковых машин имеют возможность поиска по ключевым словам. Это один из самых распространенных видов поиска.

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

Поисковая система найдет в своей базе и покажет документы, содержащие эти слова. Таких документов может оказаться множество, но много в данном случае не обязательно означает хорошо.

Проведем несколько экспериментов с любой из поисковых систем. Предположим, что мы решили завести аквариум и нас интересует любая информация по данной теме. На первый взгляд самое простое - это поиск по слову «аквариум». Проверим это, например, в поисковой системе Яндекс. Результатом поиска будет огромное количество страниц - огромное количество ссылок. Причем, если посмотреть внимательнее, среди них окажутся сайты, упоминающие группу Б. Гребенщикова «Аквариум», торговые центры и неформальные объединения с таким же названием, и многое другое, не имеющее отношения к аквариумным рыбкам.

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

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

Имея определенный набор наиболее употребительных терминов в нужной области, можно использовать расширенный поиск. На рис. показано окно расширенного поиска в поисковой системе Яндекс. В этом режиме возможности языка запросов реализованы в виде формы. Подобный сервис, включающий словарные фильтры, предлагается почти всеми поисковыми системами.

Попробуем уточнить условия поиска и введем словосочетание «аквариумные рыбки». Количество ссылок уменьшится более чем в 20 раз. Этот результат нас устраивает больше, но все равно среди предложенных ссылок могут встретиться, например, русские сувенирные наборы спичечных этикеток с изображениями рыбок, и коллекции заставок для Рабочего стола компьютера, и каталоги аквариумных рыбок с фотографиями, и магазины аквариумных аксессуаров. Очевидно, что следует продолжить движение в направлении уточнения условий поиска.

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

Приведем несколько простых правил формирования запроса в поисковой системе Яндекс.

Ключевые слова в запросе следует писать строчными (маленькими) буквами.

Это обеспечит поиск всех ключевых слов, а не только тех, которые начинаются с прописной буквы.

При поиске учитываются все формы слова по правилам русского языка, независимо от формы слова в запросе.

Например, если в запросе было указано слово «знаю», то условию поиска будут удовлетворять и слова «знаем», «знаете» и т. п.

Для поиска устойчивого словосочетания следует заключить слова в кавычки.

Например, «фарфоровая посуда».

Для поиска по точной словоформе перед словом надо поставить восклицательный знак.

Например, для поиска слова «сентябрь» в родительном падеже следует написать «!сентября».

Для поиска внутри одного предложения слова в запросе разделяют пробелом или знаком &

Например, «приключенческий роман» или «приключенческий&роман». Несколько набранных в запросе слов, разделенных пробелами, означают, что все они должны входить в одно предложение искомого документа.

Если вы хотите, чтобы были отобраны только те документы, в которых встретилось каждое слово, указанное в запросе, поставьте перед каждым из них знак плюс «+». Если вы, наоборот, хотите исключить какие-либо слова из результата поиска, поставьте перед этим словом минус «-». Знаки « + » и «-» надо писать через пробел от предыдущего и слитно со следующим словом.

Например, по запросу «Волга -автомобиль» будут найдены документы, в которых есть слово «Волга» и нет слова «автомобиль».

При поиске синонимов или близких по значению слов между словами можно поставить вертикальную черту «|».

Например, по запросу «ребенок | малыш | младенец» будут найдены документы с любым из этих слов.

Вместо одного слова в запросе можно подставить целое выражение. Для этого его надо взять в скобки

Например, «(ребенок | малыш | дети | младенец) +(уход | воспитание)».

Знак «~» (тильда) позволяет найти документы с предложением, содержащим первое слово, но не содержащим второе.

Например, по запросу «книги ~ магазин» будут найдены все документы, содержащие слово «книги», рядом с которым (в пределах предложения) нет слова «магазин».

Если оператор повторяется один раз (например, & или ~), поиск производится в пределах предложения. Двойной оператор (&&,~~) задает поиск в пределах документа.

Например, по запросу «рак ~~ астрология» будут найдены документы со словом «рак», не относящиеся к астрологии.

Вернемся к примеру с аквариумными рыбками. После про¬чтения нескольких предлагаемых поисковой системой документов становится понятно, что поиск информации в Интернете следует начинать не с выбора аквариумных рыбок. Аквариум - сложная биологическая система, создание и поддержание которой требует специальных знаний, времени и серьезных капиталовложений.

На основании полученной информации человек, производящий поиск в Интернете, может кардинально изменить стратегию дальнейшего поиска, приняв решение изучить специальную литературу, относящуюся к исследуемому вопросу.

Для поиска литературы или полнотекстовых документов возможен следующий запрос:

«+(аквариум | аквариумист | аквариумистика) +начинающим +(советы | литература) +(статья | тезис | полнотекстовый) -(цена | магазин | доставка | каталог)».

После обработки запроса поисковой машиной результат оказался весьма успешным. Уже первые ссылки приводят к искомым документам.

Теперь можно подытожить результаты поиска, сделать определенные выводы и принять решение о возможных действиях:

  • Прекратить дальнейший поиск, так как в силу различных причин содержание аквариума вам не под силу.
  • Прочитать предлагаемые статьи и приступить к устройству аквариума.
  • Поискать материалы о хомячках или волнистых попугайчиках.
  1. Какой вид поиска является самым быстрым и надежным?
  2. Где пользователь может найти адреса Web-страниц?
  3. Каково основное назначение поисковой системы?
  4. Из каких частей состоит поисковая система?
  5. Какие поисковые системы вы знаете?
  6. Какова технология поиска по рубрикатору поисковой системы?
  7. Какова технология поиска по ключевым словам?
  8. Когда в критерии поиска надо задавать + или -?
  9. Какие критерии поиска в Яндексе заданы следующей фразой:

    (няня|воспитатель|гувернантка)++(уход|воспитание|присмотр) ?

  10. Что означает удвоение знака (~~ или ++) при формировании сложного запроса?

Задание.

Задание 1. Поиск по каталогам.

Пользуясь каталогом поисковой системы, найдите следующую информацию (по указанию учителя):

  1. Текст песни популярной музыкальной группы
  2. Репертуар Мариинского театра на текущую неделю
  3. Характеристики последней модели мобильного телефона известной фирмы (по вашему выбору)
  4. Рецепт приготовления украинского борща с галушками
  5. Долгосрочный прогноз погоды в вашем регионе (не менее чем на 10 дней)
  6. Фотография любимого исполнителя современной песни
  7. Примерная стоимость мультимедийного компьютера (прайс)
  8. Информация о вакансиях на должность секретаря в вашем регионе или городе
  9. Гороскоп своего знака зодиака на текущий день

По результатам поиска составьте письменный отчет в Word: представьте в документе найденный, скопированный и отформатированный материал. Предъявите отчет учителю.

Задание 2. Формирование запроса по точному названию или цитате.

Вам известно точное название документа, например «Гигиенические требования к персональным электронно-вычислительным машинам и организации работы». Сформулируйте запрос для поиска в Интернете полного текста документа.

Результат поиска сохраните в своей папке. Предъявите учителю.

Задание 3. Формирование сложных запросов.

  • В любой поисковой системе составьте запрос для поиска информации о русской бане. Исключите предложения об услугах, рекламу банных принадлежностей и прочую рекламу. Сосредоточьте поиск на влиянии русской бани на организм.
  • Составьте сложный запрос на поиск информации по уходу за домашними кошками. Исключите из поиска крупных кошек (например, львов), а также предложения о покупке, продаже, фотографии для обоев и т. п.
  • Текст запроса и результат поиска оформите в Word и представьте учителю.
Задание 4. Тематический поиск.

Всеми известными вам способами выполните поиск в Интернете информации по истории развития вычислительной техники. Поиск производите по различным направлениям: историческая обстановка, техника, личности. Результаты поиска оформите в виде презентации. Используйте в презентации многоступенчатой оглавление в виде гиперссылок.

Язык запросов - это искусственно созданный язык программирования, используемый для того, чтобы делать запросы в базах данных и информационных системах.

В целом, такие способы запросов можно классифицировать в зависимости от того, служат они для базы данных или для поиска информации. Разница в том, что запросы к подобным сервисам совершаются для получения фактических ответов на поставленные вопросы, в то время как поисковая система пытается найти документы, содержащие сведения, относящиеся к интересующей пользователя области.

Базы данных

Языки запросов по базам данных включают в себя следующие примеры:

  • QL - объектно-ориентированный, относится к преемник Datalog.
  • Контекстный (CQL) - формальный язык представления запросов для информационно-поисковых систем (таких, как веб-индексы или библиографические каталоги).
  • CQLF (CODYASYL) - для CODASYL-TYPE баз данных.
  • Концепт-ориентированный язык запросов (COQL) - используется в соответствующих моделях (com). Он основан на принципах моделирования данных construpt и использует такие операции, как проекция и де-проекция многомерного анализа, аналитические операции и выводы.
  • DMX - используется к моделям
  • Datalog - это язык запросов к дедуктивным базам данных.
  • Gellish English - это язык, который может использоваться для запросов в базы данных Gellish English и позволяет вести диалоги (запросы и ответы), а также служит для информационного моделирования знаний.
  • HTSQL - переводит http-запросы на SQL.
  • ISBL - используется для PRTV (одной из первых реляционных систем управления базами данных).
  • LDAP - это протокол для запросов и служб каталогов, работающий по протоколу TCP/IP.
  • MDX - необходим для баз данных OLAP.

Поисковые системы

Язык поисковых запросов, в свою очередь, направлен на нахождение данных в поисковых системах. Он отличается тем, что часто запросы содержат обычный текст или гипертекст с дополнительным синтаксисом (например, «и»/«или»). Он значительно отличается от стандартных подобных языков, которые регулируются строгими правилами синтаксиса команд или содержат позиционные параметры.

Как классифицируются поисковые запросы?

Существует три широких категории, которые охватывают большинство поисковых запросов: информационная, навигационная и транзакционная. Хотя эта классификация не была закреплена теоретически, эмпирически она подтверждена наличием фактических запросов в поисковых системах.

Информационные запросы - это те, которые охватывают широкие темы (например, какой-либо определенный город или модель грузовиков), в отношении которых может быть получено тысячи релевантных результатов.

Навигационные - это запросы, которые ищут один сайт или веб-страницу на определенную тему (например, YouTube).

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

Поисковые системы часто поддерживают четвертый тип запроса, который используется намного реже. Это так называемые запросы подключения, содержащие отчет о связности проиндексированного веб-графика (количество ссылок на определенный URL, или сколько страниц проиндексировано с определенного домена).

Как совершается поиск информации?

Стали известны интересные характеристики, касающиеся веб-поиска:

Средняя длина поискового запроса составляла 2,4 слов.

  • Около половины пользователей направляли один запрос, а чуть меньше трети пользователей делали три или более уникальных запросов один за одним.
  • Почти половина пользователей просматривала только первые одну-две страницы полученных результатов.
  • Менее 5% пользователей используют расширенные возможности поиска (например, выбор каких-либо определенных категорий или поиска в поиске).

Особенности пользовательских действий

Исследование также показало, что 19% запросов содержали географический термин (например, названия, почтовые индексы, географические объекты и т. д.). Еще стоит отметить, что помимо коротких запросов (то есть с несколькими условиями), часто присутствовали и предсказуемые схемы, по которым пользователи меняли свои поисковые фразы.

Также было установлено, что 33% запросов от одного пользователя повторяются, и в 87% случаев юзер будет нажимать на тот же результат. Это говорит о том, что многие пользователи используют повторные запросы, чтобы пересмотреть или заново найти информацию.

Частотные распределения запросов

Кроме того, специалистами было подтверждено, что частотные распределения запросов соответствуют степенному закону. То есть небольшая часть ключевых слов наблюдается в самом большом списке запросов (например, более 100 млн), и они наиболее часто используются. Остальные же фразы в рамках тех же тематик применяются реже и более индивидуально. Это явление получило название принципа Парето (или «правило 80-20»), и оно позволило поисковикам использовать такие методы оптимизации, как индексирование или разбиение базы данных, кэширование и упреждающую загрузку, а также дало возможность совершенствовать язык запросов поисковой системы.

В последние годы было выявлено, что средняя длина запросов неуклонно растет с течением времени. Так, среднестатистический запрос на английском языке стал длиннее. В этой связи компания Google внедрила обновление под названием «Колибри» (в августе 2013 года), которое способно обрабатывать длинные поисковые фразы с непротокольным, «разговорным» языком запроса (наподобие «где ближайшая кофейня?»).

Для более длинных запросов используется их обработка - они разбиваются на фразы, сформулированные стандартным языком, и выводятся ответы на разные части по отдельности.

Структурированные запросы

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

Что такое расширенный поиск?

Язык запросов «Яндекса» и «Гугла» способен осуществлять более узконаправленный поиск при соблюдении определенных условий. Расширенный поиск может искать по части названия страницы или префиксу заголовка, а также в определенных категориях и перечнях имен. Он также может ограничить поиск страниц, содержащих определенные слова в названии или находящихся в определенных тематических группах. При правильном использовании языка запросов он может обрабатывать параметры на порядок более сложные, чем поверхностные результаты выдачи большинства поисковых систем, в том числе по заданным пользователем словам с переменным окончанием и похожим написанием. При представлении результатов расширенного поиска будет отображена ссылка на соответствующие разделы страницы.

Также это возможность поиска всех страниц, содержащих определенную фразу, в то время как при стандартном запросе поисковые системы не могут остановиться на любой странице обсуждения. Во многих случаях язык запросов может привести на любую страницу, расположенную в тегах noindex.

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

Как читаются символы языка запросов?

Верхний и нижний регистр, а также некоторые (умляуты и акценты) не учитываются в поисках. Например, поиск по ключевому слову Citroen не найдет страницы, содержащие слово «Цитроён». Но некоторые лигатуры соответствуют отдельным буквам. Например, поиск по слову «аероскобинг» легко найдет страницы, содержащие «Эрескебинг» (АЭ = Æ).

Многие не алфавитно-цифровые символы постоянно игнорируются. Например, невозможно найти информацию по запросу, содержащему строку |L| (буква между двумя вертикальными полосами), несмотря на то что этот символ используется в некоторых шаблонах конвертирования. В результатах будут только данные с «ЛТ». Некоторые символы и фразы обрабатываются по-разному: запрос «кредит (Финансы)» отобразит статьи со словами «кредит» и «финансы», игнорируя скобки, даже если и существует статья с точным названием «кредит (Финансы)».

Существует множество функций, которые можно использовать с применением языка запросов.

Синтаксис

Язык запросов «Яндекса» и «Гугла» может использовать некоторые знаки препинания для уточнения поиска. В качестве примера можно привести фигурные скобки - {{поиск}}. Фраза, заключенная в них, будет подвергаться поиску целиком, без изменений.

Фраза в позволяет определиться с объектом поиска. Например, слово в кавычках будет распознаваться как используемое в переносном смысле или как вымышленный персонаж, без кавычек - как информация более документального характера.

Кроме того, все основные поисковые системы поддерживают символ «-» для логического «не», а также и/или. Исключение - термины, которые не могут быть разделены с помощью префикса дефисом или тире.

Неточное соответствие поисковой фразы отмечается символом ~. Например, если вы не помните точную формулировку термина или названия, вы можете указать ее в строке поиска с указанным символом, и сможете получить результаты, имеющие максимальное сходство.

Параметры специализированного поиска

Существуют и такие параметры поиска, как intitle, и incategory. Они представляют собой фильтры, отображаемые через двоеточие, в виде «фильтр: строка запроса». Строка запроса может содержать искомый термин или фразу, или же часть либо полное название страницы.

Функция «intitle: запрос» отдает приоритет в поисковой выдаче по названию, но также показывает и обычные результаты по содержанию заголовка. Несколько таких фильтров могут быть использованы одновременно. Как же использовать эту возможность?

Запрос вида «intitle: название аэропорта» выдаст все статьи, содержащие в заголовке название аэропорта. Если же сформулировать его как «парковка intitle: название аэропорта», то вы получите статьи с названием аэропорта в заголовке и с упоминанием парковки в тексте.

Поиск по фильтру «incategory: Категория» работает по принципу первоначальной выдачи статей, принадлежащих к определенной группе или списку страниц. Например, поисковой запрос по типу «Храмы incategory: История» будет выдавать результаты на тему истории храмов. Эту функцию также можно использовать как расширенную, задавая различные параметры.

Запросы написаны без экранирующих кавычек, так как у MySQL , MS SQL и PostGree они разные.

SQL запрос: получение указанных (нужных) полей из таблицы

SELECT id, country_title, count_people FROM table_name

Получаем список записей: ВСЕ страны и их население. Название нужных полей указываются через запятую.

SELECT * FROM table_name

* обозначает все поля. То есть, будут показы АБСОЛЮТНО ВСЕ поля данных.

SQL запрос: вывод записей из таблицы исключая дубликаты

SELECT DISTINCT country_title FROM table_name

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

SQL запрос: вывод записей из таблицы по заданному условию

SELECT id, country_title, city_title FROM table_name WHERE count_people>100000000

Получаем список записей: страны, где количество людей больше 100 000 000.

SQL запрос: вывод записей из таблицы с упорядочиванием

SELECT id, city_title FROM table_name ORDER BY city_title

Получаем список записей: города в алфавитном порядке. В начале А, в конце Я.

SELECT id, city_title FROM table_name ORDER BY city_title DESC

Получаем список записей: города в обратном (DESC ) порядке. В начале Я, в конце А.

SQL запрос: подсчет количества записей

SELECT COUNT(*) FROM table_name

Получаем число (количество) записей в таблице. В данном случае НЕТ списка записей.

SQL запрос: вывод нужного диапазона записей

SELECT * FROM table_name LIMIT 2, 3

Получаем 2 (вторую) и 3 (третью) запись из таблицы. Запрос полезен при создании навигации на WEB страницах.

SQL запросы с условиями

Вывод записей из таблицы по заданному условию с использованием логических операторов.

SQL запрос: конструкция AND (И)

SELECT id, city_title FROM table_name WHERE country="Россия" AND oil=1

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

SQL запрос: конструкция OR (ИЛИ)

SELECT id, city_title FROM table_name WHERE country="Россия" OR country="США"

Получаем список записей: все города из России ИЛИ США. Когда используется оператор OR , то должно совпадать ХОТЯ БЫ одно условие.

SQL запрос: конструкция AND NOT (И НЕ)

SELECT id, user_login FROM table_name WHERE country="Россия" AND NOT count_comments<7

Получаем список записей: все пользователи из России И сделавших НЕ МЕНЬШЕ 7 комментариев.

SQL запрос: конструкция IN (В)

SELECT id, user_login FROM table_name WHERE country IN ("Россия", "Болгария", "Китай")

Получаем список записей: все пользователи, которые проживают в (IN ) (России, или Болгарии, или Китая)

SQL запрос: конструкция NOT IN (НЕ В)

SELECT id, user_login FROM table_name WHERE country NOT IN ("Россия","Китай")

Получаем список записей: все пользователи, которые проживают не в (NOT IN ) (России или Китае).

SQL запрос: конструкция IS NULL (пустые или НЕ пустые значения)

SELECT id, user_login FROM table_name WHERE status IS NULL

Получаем список записей: все пользователи, где status не определен. NULL это отдельная тема и поэтому она проверяется отдельно.

SELECT id, user_login FROM table_name WHERE state IS NOT NULL

Получаем список записей: все пользователи, где status определен (НЕ НОЛЬ).

SQL запрос: конструкция LIKE

SELECT id, user_login FROM table_name WHERE surname LIKE "Иван%"

Получаем список записей: пользователи, у которых фамилия начинается с комбинации «Иван». Знак % означает ЛЮБОЕ количество ЛЮБЫХ символов. Чтобы найти знак % требуется использовать экранирование «Иван\%».

SQL запрос: конструкция BETWEEN

SELECT id, user_login FROM table_name WHERE salary BETWEEN 25000 AND 50000

Получаем список записей: пользователи, которые получает зарплату от 25000 до 50000 включительно.

Логических операторов ОЧЕНЬ много, поэтому детально изучите документацию по SQL серверу.

Сложные SQL запросы

SQL запрос: объединение нескольких запросов

(SELECT id, user_login FROM table_name1) UNION (SELECT id, user_login FROM table_name2)

Получаем список записей: пользователи, которые зарегистрированы в системе, а также те пользователи, которые зарегистрированы на форуме отдельно. Оператором UNION можно объединить несколько запросов. UNION действует как SELECT DISTINCT, то есть отбрасывает повторяющиеся значения. Чтобы получить абсолютно все записи, нужно использовать оператор UNION ALL.

SQL запрос: подсчеты значений поля MAX, MIN, SUM, AVG, COUNT

Вывод одного, максимального значения счетчика в таблице:

SELECT MAX(counter) FROM table_name

Вывод одного, минимальный значения счетчика в таблице:

SELECT MIN(counter) FROM table_name

Вывод суммы всех значений счетчиков в таблице:

SELECT SUM(counter) FROM table_name

Вывод среднего значения счетчика в таблице:

SELECT AVG(counter) FROM table_name

Вывод количества счетчиков в таблице:

SELECT COUNT(counter) FROM table_name

Вывод количества счетчиков в цехе №1, в таблице:

SELECT COUNT(counter) FROM table_name WHERE office="Цех №1"

Это самые популярные команды. Рекомендуется, где это возможно, использовать для подсчета именно SQL запросы такого рода, так как ни одна среда программирования не сравнится в скорости обработки данных, чем сам SQL сервер при обработке своих же данных.

SQL запрос: группировка записей

SELECT continent, SUM(country_area) FROM country GROUP BY continent

Получаем список записей: с названием континента и с суммой площадей всех их стран. То есть, если есть справочник стран, где у каждой страны записана ее площадь, то с помощью конструкции GROUP BY можно узнать размер каждого континента (на основе группировки по континентам).

SQL запрос: использование нескольких таблиц через алиас (alias)

SELECT o.order_no, o.amount_paid, c.company FROM orders AS o, customer AS с WHERE o.custno=c.custno AND c.city="Тюмень"

Получаем список записей: заказы от покупателей, которые проживают только в Тюмени.

На самом деле, при правильном запроектированной базе данных данного вида запрос является самым частым, поэтому в MySQL был введен специальный оператор, который работает в разы быстрее, чем выше написанный код.

SELECT o.order_no, o.amount_paid, z.company FROM orders AS o LEFT JOIN customer AS z ON (z.custno=o.custno)

Вложенные подзапросы

SELECT * FROM table_name WHERE salary=(SELECT MAX(salary) FROM employee)

Получаем одну запись: информацию о пользователе с максимальным окладом.

Внимание! Вложенные подзапросы являются одним из самых узких мест в SQL серверах. Совместно со своей гибкостью и мощностью, они также существенно увеличивают нагрузку на сервер. Что приводит к катастрофическому замедлению работы других пользователей. Очень часты случаи рекурсивных вызовов при вложенных запросах. Поэтому настоятельно рекомендую НЕ использовать вложенные запросы, а разбивать их на более мелкие. Либо использовать вышеописанную комбинацию LEFT JOIN. Помимо этого данного вида запросы являются повышенным очагом нарушения безопасности. Если решили использовать вложенные подзапросы, то проектировать их нужно очень внимательно и первоначальные запуски сделать на копиях баз (тестовые базы).

SQL запросы изменяющие данные

SQL запрос: INSERT

Инструкция INSERT позволяют вставлять записи в таблицу. Простыми словами, создать строчку с данными в таблице.

Вариант №1. Часто используется инструкция:

INSERT INTO table_name (id, user_login) VALUES (1, "ivanov"), (2, "petrov")

В таблицу «table_name » будет вставлено 2 (два) пользователя сразу.

Вариант №2. Удобнее использовать стиль:

INSERT table_name SET id=1, user_login="ivanov"; INSERT table_name SET id=2, user_login="petrov";

В этом есть свои преимущества и недостатки.

Основные недостатки:

  • Множество мелких SQL запросов выполняются чуть медленнее, чем один большой SQL запрос, но при этом другие запросы будут стоять в очереди на обслуживание. То есть, если большой SQL запрос будет выполняться 30 минут, то в все это время остальные запросы будут курить бамбук и ждать своей очереди.
  • Запрос получается массивнее, чем предыдущий вариант.

Основные преимущества:

  • Во время мелких SQL запросов, другие SQL запросы не блокируются.
  • Удобство в чтении.
  • Гибкость. В этом варианте, можно не соблюдать структуру, а добавлять только необходимые данные.
  • При формировании подобным образом архивов, можно легко скопировать одну строчку и запустить ее через командную строку (консоль), тем самым не восстанавливая АРХИВ целиком.
  • Стиль записи схож с инструкцией UPDATE, что легче запоминается.

SQL запрос: UPDATE

UPDATE table_name SET user_login="ivanov", user_surname="Иванов" WHERE id=1

В таблице «table_name » в записи с номером id=1, будет изменены значения полей user_login и user_surname на указанные значения.

SQL запрос: DELETE

DELETE FROM table_name WHERE id=3

В таблице table_name будет удалена запись с id номером 3.

  1. Все названия полей рекомендуются писать маленькими буквами и если надо, разделять их через принудительный пробел «_» для совместимости с разными языками программирования, таких как Delphi, Perl, Python и Ruby.
  2. SQL команды писать БОЛЬШИМИ буквами для удобочитаемости. Помните всегда, что после вас могут читать код и другие люди, а скорее всего вы сами через N количество времени.
  3. Называть поля с начала существительное, а потом действие. Например: city_status, user_login, user_name.
  4. Стараться избегать слов резервных в разных языках которые могут вызывать проблемы в языках SQL, PHP или Perl, типа (name, count, link). Например: link можно использовать в MS SQL, но в MySQL зарезервировано.

Данный материал является короткой справкой для повседневной работы и не претендует на супер мега авторитетный источник, коим является первоисточник SQL запросов той или иной базы данных.

Используя условия запроса, вы можете находить в базе данных Access определенные элементы. Если элемент соответствует всем введенным условиям, он отобразится в результатах запроса.

Чтобы добавить условие в запрос Access, откройте этот запрос в конструкторе. Затем определите поля (столбцы), на которые распространяется данное условие. Если нужное поле в бланке запроса отсутствует, добавьте его с помощью двойного щелчка. Затем в строке Условия введите для него условие. Дополнительные сведения см. в статье Общие сведения о запросах .

Условие запроса - это выражение, которое Access сравнивает со значениями в полях запроса, чтобы определить, следует ли включать в результат записи, содержащие то или иное значение. Например, = "Воронеж" - это выражение, которое Access сравнивает со значениями в текстовом поле запроса. Если значение этого поля в определенной записи равно "Воронеж" , Access включает ее в результаты запроса.

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

В этом разделе

Общие сведения об условиях запроса

Условие похоже на формулу - это строка, которая может включать ссылки на поля, операторы и константы. В Access условия запроса также называются выражениями.

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

Условия

Описание

>25 and <50

Это условие применяется к числовому полю, такому как "Цена" или "ЕдиницНаСкладе". Оно позволяет вывести только те записи, в которых поле "Цена" или "ЕдиницНаСкладе" содержит значение больше 25 и меньше 50 .

DateDiff ("гггг", [ДатаРождения], Date()) > 30

Это условие применяется к полю "Дата/время", такому как "ДатаРождения". В результаты запроса включаются только записи, в которых количество лет между датой рождения человека и текущей датой больше 30 .

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

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

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

Узнаем, где и как можно добавлять условия. Чтобы добавить условия в запрос, необходимо открыть его в Конструкторе. После этого следует определить поля, для которых вы хотите задать условия. Если поля еще нет на бланке запроса, добавьте его, перетащив его из окна конструктора запросов на сетку полей или дважды щелкнув поле (при этом поле автоматически добавляется в следующий пустой столбец в сетке). Наконец, введите условия в строку Условия .

Условия, заданные для разных полей в строке Условия , объединяются с помощью оператора AND. Другими словами, условия, заданные в полях "Город" и "ДатаРождения", интерпретируются следующим образом:

Город = "Воронеж" AND ДатаРождения < DateAdd (" гггг ", -40, Date())

1. Поля "Город" и "ДатаРождения" включают условия.

2. Этому условию соответствуют только записи, в которых поле "Город" имеет значение "Воронеж".

3. Этому условию соответствуют только записи людей, которым не менее 40 лет.

4. В результат будут включены только те записи, которые соответствуют обоим условиям.

Что делать, если требуется, чтобы выполнялось только одно из этих условий? Другими словами, как можно ввести альтернативные условия?

Если у вас есть альтернативные условия, то есть два набора независимых условий, из которых должен выполняться только один, используйте строки Условие отбора и Или на бланке.

1. 1. Условие "Город" указывается в строке "Условие отбора".

2. 2. Условие "ДатаРождения" указывается в строке "или".

Условия, заданные в строках Условие отбора и или , объединяются с помощью оператора OR, как показано ниже.

Город = "Чикаго" OR ДатаРождения < DateAdd("гггг", -40, Date())

Если требуется задать несколько альтернативных условий, используйте строки под строкой или .

Прежде чем приступить к изучению примеров, обратите внимание на следующее:

Условия для текстовых полей, полей Memo и полей гиперссылок

Примечание: Начиная с версии Access 2013, текстовые поля носят название Краткий текст , а поля Memo - Длинный текст .

Следующие примеры относятся к полю "СтранаРегион", основанном на таблице, в которой хранится информация о контактах. Условие задается в строке Условие отбора поля на бланке.

Условие, заданное для поля "Гиперссылка", по умолчанию применяется к отображаемому тексту, который указан в поле. Чтобы задать условия для конечного URL-адреса, используйте выражение HyperlinkPart . У него следующий синтаксис: HyperlinkPart([Таблица1].[Поле1],1) = "http://www.microsoft.com/" , где "Таблица1" - это имя таблицы, содержащей поле гиперссылки, "Поле1" - это само поле гиперссылки, а "http://www.microsoft.com" - это URL-адрес, который вы хотите найти.

Используйте это условие

Результат запроса

Точно соответствуют определенному значению, например "Китай"

Возвращает записи, в которых поле "СтранаРегион" содержит значение "Китай".

Не соответствуют определенному значению, например "Мексика"

Not "Мексика"

Возвращает записи, в которых значением поля "СтранаРегион" не является "Мексика".

Начинаются с заданной строки символов, например "С"

Возвращает записи всех стран или регионов, названия которых начинаются с буквы "С", таких как Словакия и США.

Примечание: Символ "звездочка" (* ) в выражении обозначает любую строку символов. Он также называется подстановочным знаком. Список таких знаков см. в статье Справочные сведения о подстановочных знаках в приложении Access .

Не начинаются с заданной строки символов, например "С"

Возвращает записи всех стран или регионов, названия которых не начинаются с буквы "С".

Like "*Корея*"

Возвращает записи всех стран или регионов, названия которых содержат строку "Корея".

Not Like "*Корея*"

Возвращает записи всех стран или регионов, названия которых не содержат строку "Корея".

Заканчиваются заданной строкой, например "ина"

Возвращает записи всех стран или регионов, названия которых заканчиваются на "ина", таких как "Украина" и "Аргентина".

Не заканчиваются заданной строкой, например "ина"

Not Like "*ина"

Возвращает записи всех стран или регионов, названия которых не заканчиваются на "ина", как в названиях "Украина" и "Аргентина".

Возвращает записи, в которых это поле не содержит значения.

Возвращает записи, в которых это поле содержит значение.

"" (прямые кавычки)

Возвращает записи, в которых поле имеет пустое значение (но не значение NULL). Например, записи о продажах другому отделу могут содержать пустое значение в поле "СтранаРегион".

Возвращает записи, в которых поле "СтранаРегион" имеет непустое значение.

Содержит нулевые значения или пустые строки

Возвращает записи, в которых значение в поле отсутствует или является пустым.

Ненулевые и непустые

Is Not Null And Not ""

Возвращает записи, в которых поле "СтранаРегион" имеет непустое значение, не равное NULL.

При сортировке в алфавитном порядке следуют за определенным значением, например "Мексика"

>= "Мексика"

Возвращает записи с названиями стран и регионов, начиная с Мексики и до конца алфавита.

Входят в определенный диапазон, например от А до Г

Возвращает страны и регионы, названия которых начинается с букв от "А" до "Г".

Совпадают с одним из двух значений, например "Словакия" или "США"

"Словакия" Or "США"

Возвращает записи для США и Словакии.

In("Франция", "Китай", "Германия", "Япония")

Возвращает записи всех стран или регионов, указанных в списке.

Right([СтранаРегион], 1) = "а"

Возвращает записи всех стран или регионов, названия которых заканчиваются на букву "а".

Соответствуют заданной длине

Len([СтранаРегион]) > 10

Возвращает записи стран или регионов, длина названия которых превышает 10 символов.

Соответствуют заданному шаблону

Возвращает записи стран или регионов, названия которых состоят из пяти символов и начинаются с "Лив", например Ливия и Ливан.

Примечание: Символы ? и _ в выражении обозначают один символ. Они также называются подстановочными знаками. Знак _ ? * _ % .

Условия для числовых полей, полей с денежными значениями и полей счетчиков

Следующие примеры относятся к полю "ЦенаЗаЕдиницу", основанном на таблице, в которой хранится информация о товарах. Условие задается в строке Условие отбора поля на бланке запроса.

Чтобы добавить записи, которые...

Используйте это условие

Результат запроса

Точно соответствуют определенному значению, например 1000

Возвращает записи, в которых цена за единицу товара составляет 1000 ₽.

Не соответствуют значению, например 10 000

Возвращает записи, в которых цена за единицу товара не равна 10 000 ₽.

< 1000
<= 1000

Возвращает записи, в которых цена товара меньше 1000 ₽ (<1000). Второе выражение (<=1000) отображает записи, в которых цена не больше 1000 ₽.

>999,99
>=999,99

Возвращает записи, в которых цена товара больше 999,99 ₽ (>999,99). Второе выражение отображает записи, цена в которых не меньше 999,99 ₽.

Возвращает записи, в которых цена товара равна 200 или 250 ₽.

>499,99 and <999,99
или
Between 500 and 1000

Возвращает записи товаров с ценами в диапазоне от 499,99 до 999,99 ₽ (не включая эти значения).

<500 or >1000

Возвращает записи, в которых цена товара не находится в диапазоне от 500 до 1000 ₽.

Содержит одно из заданных значений

In(200, 250, 300)

Возвращает записи, в которых цена товара равна 200, 250 или 300 ₽.

Возвращает записи товаров, цена которых заканчивается на 4,99, например 4,99 ₽, 14,99 ₽, 24,99 ₽ и т. д.

Примечание: Знаки * и % в выражении обозначают любое количество символов. Они также называются подстановочными знаками. Знак % нельзя использовать в одном выражении с символом * , а также с подстановочным знаком ? . Вы можете использовать подстановочный знак % в выражении, где есть подстановочный знак _ .

Возвращает записи, для которых не введено значение в поле "ЦенаЗаЕдиницу".

Возвращает записи, в поле "ЦенаЗаЕдиницу" которых указано значение.

Условия для полей "Дата/время"

Следующие примеры относятся к полю "ДатаЗаказа", основанном на таблице, в которой хранится информация о заказах. Условие задается в строке Условие отбора поля на бланке запроса.

Записи

Используйте этот критерий

Результат запроса

Точно соответствуют значению, например 02.02.2006

Возвращает записи транзакций, выполненных 2 февраля 2006 г. Обязательно ставьте знаки # до и после значений даты, чтобы Access мог отличить значения даты от текстовых строк.

Не соответствуют значению, такому как 02.02.2006

Not #02.02.2006#

< #02.02.2006#

Чтобы просмотреть транзакции, выполненные в определенную дату или до нее, воспользуйтесь оператором <= вместо оператора < .

> #02.02.2006#

Чтобы просмотреть транзакции, выполненные в определенную дату или после нее, воспользуйтесь оператором >= вместо оператора > .

>#02.02.2006# and <#04.02.2006#

Кроме того, для фильтрации по диапазону значений, включая конечные значения, вы можете использовать оператор Between . Например, выражение Between #02.02.2006# and #04.02.2006# идентично выражению >=#02.02.2006# and <=#04.02.2006#.

<#02.02.2006# or >#04.02.2006#

#02.02.2006# or #03.02.2006#

Содержит одно из нескольких значений

In (#01.02.2006#, #01.03.2006#, #01.04.2006#)

Возвращает записи транзакций, выполненных 1 февраля 2006 г., 1 марта 2006 г. или 1 апреля 2006 г.

DatePart("m"; [ДатаПродажи]) = 12

Возвращает записи транзакций, выполненных в декабре любого года.

DatePart("q"; [ДатаПродажи]) = 1

Возвращает записи транзакций, выполненных в первом квартале любого года.

Возвращает записи транзакций, выполненных сегодня. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи, в поле "ДатаЗаказа" которых указано 2 февраля 2006 г.

Возвращает записи транзакций, выполненных вчера. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за 1 февраля 2006 г.

Возвращает записи транзакций, которые будут выполнены завтра. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за 3 февраля 2006 г.

DatePart("ww"; [ДатаПродажи]) = DatePart("ww"; Date()) and Year([ДатаПродажи]) = Year(Date())

Возвращает записи транзакций, выполненных за текущую неделю. Неделя начинается в воскресенье и заканчивается в субботу.

Year([ДатаПродажи])* 53 + DatePart("ww"; [ДатаПродажи]) = Year(Date())* 53 + DatePart("ww"; Date()) - 1

Возвращает записи транзакций, выполненных за прошлую неделю. Неделя начинается в воскресенье и заканчивается в субботу.

Year([ДатаПродажи])* 53+DatePart("ww"; [ДатаПродажи]) = Year(Date())* 53+DatePart("ww"; Date()) + 1

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

Between Date() and Date()-6

Возвращает записи транзакций, выполненных за последние 7 дней. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за период с 24 января 2006 г. по 2 февраля 2006 г.

Year([ДатаПродажи]) = Year(Now()) And Month([ДатаПродажи]) = Month(Now())

Возвращает записи за текущий месяц. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за февраль 2006 г.

Year([ДатаПродажи])* 12 + DatePart("m"; [ДатаПродажи]) = Year(Date())* 12 + DatePart("m"; Date()) - 1

Возвращает записи за прошлый месяц. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за январь 2006 г.

Year([ДатаПродажи])* 12 + DatePart("m"; [ДатаПродажи]) = Year(Date())* 12 + DatePart("m"; Date()) + 1

Возвращает записи за следующий месяц. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за март 2006 г.

Between Date() And DateAdd("M", -1, Date())

Записи о продажах за месяц. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за период со 2 января 2006 г. по 2 февраля 2006 г.

Year([ДатаПродажи]) = Year(Now()) And DatePart("q"; Date()) = DatePart("q"; Now())

Возвращает записи за текущий квартал. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за первый квартал 2006 г.

Year([ДатаПродажи])*4+DatePart("q";[ДатаПродажи]) = Year(Date())*4+DatePart("q";Date())- 1

Возвращает записи за прошлый квартал. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за последний квартал 2005 г.

Year([ДатаПродажи])*4+DatePart("q";[ДатаПродажи]) = Year(Date())*4+DatePart("q";Date())+1

Возвращает записи за следующий квартал. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за второй квартал 2006 г.

Year([ДатаПродажи]) = Year(Date())

Возвращает записи за текущий год. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за 2006 г.

Year([ДатаПродажи]) = Year(Date()) - 1

Возвращает записи транзакций, выполненных в прошлом году. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за 2005 г.

Year([ДатаПродажи]) = Year(Date()) + 1

Возвращает записи транзакций, которые будут выполнены в следующем году. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за 2007 г.

Year([ДатаПродажи]) = Year(Date()) and Month([ДатаПродажи]) <= Month(Date()) and Day([ДатаПродажи]) <= Day (Date())

Возвращает записи транзакций, которые приходятся на период с 1 января текущего года до сегодняшней даты. Если сегодняшняя дата - 02.02.2006 г., вы увидите записи за период с 1 января 2006 г. по 2 февраля 2006 г.

Возвращает записи транзакций, выполненных до сегодняшнего дня.

Возвращает записи транзакций, которые будут выполнены после сегодняшнего дня.

Фильтр пустых (или отсутствующих) значений

Возвращает записи, в которых не указана дата транзакции.

Фильтр непустых значений

Возвращает записи, в которых указана дата транзакции.

Условия для полей "Да/Нет"

В качестве примера, в таблице "Клиенты" есть логическое поле "Активность", которое показывает текущую активность учетной записи клиента. В таблице отображается, как вычисляются значения, введенные в строке условий логического поля.

Значение поля

Результат

"Да", "Истина", 1 или -1

Проверено для значения "Да". После ввода значение 1 или -1 изменяется на "Истина" в строке условий.

"Нет", "Ложь" или 0

Проверено для значения "Нет". После ввода значение 0 изменяется на "Ложь" в строке условий.

Нет значения (null)

Не проверено

Любое число, отличное от 1, -1 или 0

Нет результатов, если это единственное значение условия в поле

Любая строка символов, отличная от "Да", "Нет", "Истина" или "Ложь"

Не удается выполнить запрос из-за ошибки несоответствия типов данных.

Условия для других полей

Вложения. В строке Условие отбора введите Is Null , чтобы включить записи, которые не содержат вложений. Введите Is Not Null , чтобы включить записи с вложениями.

Поля подстановки. Существует два типа полей подстановки: те, которые подставляют значения из существующего источника данных (с помощью внешнего ключа), и те, которые основаны на списке значений, заданном при их создании.

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

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

Если вы не знаете тип данных внешнего ключа, можно просмотреть исходную таблицу в Конструкторе, чтобы определить его. Для этого:

    Найдите исходную таблицу в области навигации .

    Откройте таблицу в Конструкторе, сделав одно из следующего:

    • Щелкните таблицу и нажмите клавиши CTRL+ВВОД .

      Щелкните таблицу правой кнопкой мыши и выберите пункт Конструктор .

    Тип данных для каждого поля указан в столбце Тип данных на бланке таблицы.

Многозначные поля. Данные в многозначных полях хранятся как строки скрытой таблицы, которые Access создает и заполняет для представления поля. В Конструкторе запроса они представлены в списке полей с помощью расширяемого поля. Чтобы задать условия для многозначного поля, необходимо указать их для одной строки скрытой таблицы. Для этого:

    Создайте запрос, содержащий многозначное поле, и откройте его в Конструкторе.

    Разверните многозначное поле, щелкнув символ плюса (+ ) рядом с ним. Если поле уже развернуто, то выводится минус (- ). Под именем поля вы увидите поле, представляющее одно значение многозначного поля. Это поле будет иметь то же имя, что и многозначное поле, но к нему будет добавлена строка .Значение .

    Перетащите многозначное поле и поле его значения в различные столбцы на бланке. Если вы хотите, чтобы в результатах выводилось только полное многозначное поле, снимите флажок Показать для поля одного значения.

    Введите в поле Условие отбора для поля с одним значением условия, подходящие для типа данных, который представляют собой значения.

    Каждое значение в многозначном поле будет оцениваться по отдельности на основе указанных условий. Например, допустим, что в многозначном поле хранится список чисел. Если указать условия >5 AND <3 , будут выведены все записи, в которых есть по крайней мере одно значение больше 5 и одно значение меньше 3.

mob_info