Запросы
Раздел: Моделирование данныхВремя от времени пользователям нужно запрашивать (query) данные из базы, чтобы отвечать на вопросы, идентифицировать проблемы или обнаруживать определенные ситуации. Представьте себе, например, что один из пользователей хочет знать, имеется ли по состоянию на начало осеннего семестра 2001 г. какой-либо инвентарь, выданный до 1 сентября 2001 г., но еще не возвращенный назад. Если да, то пользователь хочет знать вид и количество такого инвентаря, а также имена капитанов, у которых он находится.
Далее указывается, какие столбцы данных следует возвращать в запросе. В Access это делается путем перетаскивания имен столбцов из прямоугольников, символизирующих таблицы, в ячейки в нижней части формы. На рис. 2.8 в запрос помещены столбцы CaptainName, Phone, Quantity, Description, DateOut и Datein. После этого в строке Criteria (Критерии) указываются критерии запроса. Критерии сейчас заключаются в том, что данные должны датироваться числами, предшествующими (<) 1 сентября 2001 г. (9/1/2001 в американских обозначениях). Знак «#» в форме — это символ, который окружает даты в Access. Кроме того, значение Datein должно быть равно нулю (Is Null); это означает, что для Datein значение не задано. Результат этого запроса приведен на рис. 2.7. Обратите внимание, что весь показанный здесь инвентарь был выдан до 1 сентября 2001 г., что и требовалось в определении запроса.
В Access и большинстве других СУБД запросы можно хранить как часть приложения, так что впоследствии при необходимости они могут быть выполнены повторно. Кроме того, запросы могут быть параметризованными, то есть построенными так, чтобы значения параметров для них можно было задавать прямо перед выполнением. Например, можно параметризовать запрос, так, чтобы пользователь вводил значение DateOut непосредственно перед выполнением запроса. В результате будет показан весь инвентарь, выданный на руки до указанной даты, но до сих пор не возвращенный.
Третий тин запроса, более легкий для пользователей, называется запросом из формы (query by form). В этом случае пользователь вводит критерии запроса в форму для ввода данных и нажимает кнопку поиска. СУБД находит все данные, соответствующие заданным критериям.