Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009, страница 98
Описание файла
PDF-файл из архива "Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009", который расположен в категории "". Всё это находится в предмете "информационное обеспечение разработок" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 98 страницы из PDF
Для этого достаточно выполнить команду File | Save(Файл | сохранить) и в открывшемся окне указать полное имя файла, в которомбудет сохранено окно с описанием запроса. В результате будет созда! i файл, хранящий запрос, с расширением QPR. Теперь для повторного выполнения запроса достаточно открыть этот файл командой File | Open (Файл | открыть) и запуститьна выполнение командой Query | Run Query (Запрос | выполнить запрос).Выбор полей результирующейтаблицыВыбор полей результирующей таблицы выполняется с помощью вкладкиFields (Поля) диалогового окна Конструктора запросов.
Рассмотрим эту процедуру на примере организации запроса 1.Часть 3. Современные СУБД и их применение464Запрос 1. Составить список всех преподавателей, сведения о которых содержатся в таблице T P R E P . D B F , с указанием их стажа и должности.Вся необходимая информация содержится в одной таблице. Выводимыезаписи должны быть упорядочены по полю Fio.Поля результирующей таблицы формируются из полей исходной таблицы и вычисляемых полей.
Для выбора полей исходной таблицы необходимоотобразить их в списке Selected Output (выбранные поля) вкладки выбораполей Fields (поля) (рис. 12.7). Один из способов формирования полей в результирующей таблице состоит в следующем. В окне Конструктора запросоввыберем вкладку Fields (поля) и откроем при этом два списка: Available Fields(доступные поля) и Selected Output (выбранные поля) (рис.
12.7). Нашазадача перенести в список Selected Output поля, используемые в запросе.При выделении в списке Available Fields (доступные поля) с помощью мышинужного поля активизируется кнопка Add (добавить), при нажатии которойи осуществляется перенос этого поля. Для переноса всех полей в список выбранных достаточно нажать кнопку Add All (добавить все). Если часть полейоказалась лишней, их можно удалить из списка Selected Output (выбранныеполя) с помощью кнопки Remove (удалить).Место, которое иоле занимает в списке Selected Output (выбранные поля),соответствует и его месту в результирующей таблице.
Для изменения расположения некоторого поля достаточно выбрать мышью маркер перемещения(слева от поля) и переместить его в нужное место.Результаты выполнения запроса представлены на рис. 12.8.Ш\ QueryStagFioПетров П.П.Сидоров С. С.Егоров Е.Е.Баглюк С. И.iDolgn5| преп7 треп10i доценг12; профессор12;сг, препИИЕЗ:Kaf25125!25!25! .24dРис. 12.8. Результат выборки полей таблицы Т ргерРассмотрим процедуру упорядочения данных в таблице на примере следующего запроса.Запрос 2.
Составить список всех преподавателей из таблицы T PREP.DBFс указанием их стажа и должности. Фамилии в списке упорядочить по алфавиту.Для упорядочения данных используется вкладка Order By (упорядочение). В ней содержится два списка Selected Fields (выбранные поля) и12.
СУБД Visual FoxPro 8.0465Ordering Criteria (критерий упорядочения). Для задания критерия упорядочивания необходимо перенести в Ordering Criteria (критерий упорядочения) поля, которые будут определять порядок расположения выводимых взапросе данных. Процедура переноса аналогична рассмотренной при определении полей результирующей таблицы. Для реализации нашего первого запроса во вкладке Order By (упорядочение) выделим курсором поле T_prep.fio(поле fio таблицы Т р г е р ) и, нажав кнопку Add (добавить), перенесем его всписок Ordering Criteria (критерий упорядочения).С помощью переключателя Order Options (параметры упорядочения)для каждого выбранного поля можно установить критерий упорядочивания по возрастанию (Ascending) или по убыванию (Descending).
Выберемкритерий Ascending (возрастающий). Результат выполнения подготовленного описанным образом запроса будет аналогичен представленномуна рисунке 12.8, но фамилии преподавателей будут следовать в алфавитном порядке.ФильтрациязаписейДо сих пор в качестве результата запроса мы получали все записи исходной таблицы. Чаще возникает необходимость в просмотре части записей таблицы, удовлетворяющих определенным условиям. Процедуру отбора записей, отвечающих определенному условию, называют процедурой фильтрациизаписей.
Для ее выполнения используется вкладка Filter (фильтр) Конструктора запроса. Рассмотрим эту процедуру на примере следующего запроса.Запрос 3. Выполнить запрос, аналогичный запросу 2, но сформировать список сведений только о преподавателях 25 кафедры.Поля, входящие в условия отбора записей, не обязательно должны бытьвключены в запрос.Д л я задания условия ф и л ь т р а ц и и записей выберем вкладку Filter(фильтр). Из раскрывающегося списка полей исходной таблицы в столбцеField Name (имя поля) выберем поле T prep.kaf для отбора.
В списке Criteria(критерий) выберем оператор точного сравнения (= =). Далее зададим значение поля kaf, по которому осуществляется сравнение. Для этого в полеExample (пример) введем 25. Рассматриваемый в примере запрос готов квыполнению.В раскрывающемся списке Criteria (критерий) содержатся следующие операторы сравнения:= — равенство,Like — вхождение,= = — фактическое равенство,> — больше чем,< — меньше чем,466Часть 3.
Современные СУБД и их применение>= — не меньше чем,<= — не больше чем,Is NULL — совпадение с NULL,Between — в диапазоне значений,In — среди заданных значений.Оператор = (Equal) позволяет осуществлять поиск при условии знаниячасти первых символов в значениях поля, по которому осуществляется поиск. Эта часть символов вводится в поле столбца Example (пример) и сравнивается со значением поля, указанного в столбце Field Name (имя поля).Оператор Like (подобие) выполняет посимвольное сравнение строки, стоящей слева, со строкой, находящейся справа, пока она не закончится.Операторы >, >=, <, <= и Between (между) можно использовать с текстовыми, цифровыми полями и полями дат.
Например, для выборки преподавателей со стажем более 10 лет, достаточно в качестве условий отбора выбратьполе Stag, в списке вариантов сравнения выбрать оператор >=, а в полеExample (пример) ввести 10.При использовании оператора Between (между) начальное и конечное значение вводится через запятую. При задании диапазона для значений текстовых полей сравниваются коды символьных величин. Так, условие выбора «А,Д», помещенное в поле Example (пример) применительно к полю Fio позволит выбрать из таблицы Т Ргер всех тех преподавателей, фамилии которыхначинаются с букв в данном диапазоне.При необходимости выбора сведений о конкретных преподавателях следует использовать оператор In.
В этом случае в поле столбца Example (пример) через запятую перечисляются фамилии преподавателей.Для реализации запроса с отрицанием условий сортировки, выбранных всписке Criteria, используется размещенный перед списком флажок Not.Возможно формирование критерия отбора записей, состоящего из нескольких условий, соединяемыми операторами AND (И) или OR (ИЛИ) из спискаLogical.Кнопки Insert (вставить) и Remove (удалить) соответственно добавляюти удаляют условия из списка условий отбора записей.
Чтобы вставить новоеусловие между существующими условиями, необходимо выделить нижнее изних и нажать кнопку Insert (вставить). В этом случае будет добавлена пустаястрока перед помеченной.В качестве критерия отбора может выступать сложное выражение, включающее не только поля таблиц, но также переменные и выражения. Для формирования подобных выражений может использоваться построитель выражений Expression Builder, который вызывается при выборе элемента<Expression...> (<выражение...>) в списке Field Name (имя поля).12. СУБД Visual FoxPro8.0Организация467многотабличныхзапросовДля формирования многотабличного запроса необходимо разместить вокне Конструктора запросов все участвующие в запросе таблицы и определить условия их связи.
Вместе с таблицами в окне Конструктора запросовотображаются и их постоянные связи. Если необходимые постоянные связиотсутствуют, то с помощью вкладки Join (связь) организуются временныемежтабличные связи.Рассмотрим создание многотабличного запроса на следующем примере.Запрос 4. Необходимо получить на экране информацию о преподавателяхкафедры 25 их должностях и окладах, преподавательском стаже и надбавкеза стаж.Требуемая информация содержится в следующих трех таблицах: Т р г е р ,T dolgn, T stag. В окне Конструктора запросов уже имеется таблица Т ргер.Остальные можно добавить, например, с помощью команды Query | Add Table(запрос | добавить таблицу).
При этом в появившемся диалоговом окне AddTable or View (добавить таблицу или запрос) выбирается требуемая таблица. В результате образ таблицы появляется в окне Конструктора запросов.Если при создании БД между выбранными таблицами были установленыпостоянные связи, то они будут также представлены, во-первых, в виде линий, соединяющих соответствующие поля в образах этих таблиц (верхняячасть рис. 12.9), а во-вторых — во вкладке Join добавятся соответствующиестроки с условиями объединения таблиц.dolgnokladi£2FieldsJoin | Filter | Older By | Group By | Miscellaneous jTypeField NameNot CriteriaLogicalValueT_prep.stag|| T_prep.dolgnT_dolgn.
dolgninsertRemoveРис. 12.9. Окно многотабличного запроса с выбранной вкладкой JoinЧасть 3. Современные СУБД и их применение468Если ранее постоянных связей между выбранными таблицами установлено не было, то открывается диалоговое окно Join Condition (условие связи),служащее для установления или модификации связи (рис.
12.10). В связи стем, что в рассматриваемом примере имеются постоянные связи между выбранными таблицами, то окно Join Condition (условие связи) было вызванодвойным щелчком мыши на выбранной линии, связывающей таблицы по полюdolgn. Этот прием используется также при модификации типа связи.,,' Join ConditionT_prep. dolgn- Type of joinT_dolgn.