Инструментальная Система Управления Базами Данных руководство пользователя

Вид материалаРуководство пользователя

Содержание


9. Обработка информации с помощью запросов 9.1. Общие сведения о запросах в ИСУБД «CronosPlus»
Использование шаблонов для задания поискового значения
Виды сравнения
Вид сравнения
Вид сравнения
Вид сравнения
Вид сравнения
Вид сравнения
Вид сравнения
Виды сравнения
Вид сравнения
Вид сравнения «В интервале слов».
Виды сравнения
Логические связки И, ИЛИ
Виды запросов в ИСУБД «CronosPlus»
Подобный материал:
1   ...   19   20   21   22   23   24   25   26   ...   53

9. Обработка информации с помощью запросов

9.1. Общие сведения о запросах в ИСУБД «CronosPlus»

Что такое запрос?


Как уже отмечалось выше, банки данных предназначены не только для накопления информации, но и для ее обработки. В частности, одно из главных назначений банков данных – предоставление определенной выборочной информации по желанию пользователя. ИСУБД «CronosPlus» обеспечивает быстрый и эффективный доступ к данным, посредством запросов. Запрос в ИСУБД «CronosPlus» это специальный инструмент для отбора данных, в соответствии с некоторыми условиями. С помощью запросов Вы можете выбрать из всего банка данных только необходимую Вам информацию.

Например, Вы хотите получить информацию обо всех лицах по фамилии Иванов. Если искать эту информацию «вручную», т.е. посредством сплошного просмотра, потребуются большие затраты времени и сил. При этом вероятность ошибки будет достаточна велика. Если же поиск информации осуществляется посредством запроса, Вы без усилий получите все записи по Иванову(ым). Более того, тут же сможете внести необходимые коррективы в отобранные записи, как по отдельности, так и во все сразу (подробнее см. «Работа с отобранной информацией» в разделе 9.2).

Перед тем как выполнить запрос, необходимо задать условие поиска (исключением являются те случаи, когда нужно отобрать все записи). Результатом выполнения запроса будут записи, соответствующие заданному условию. В приведенном выше примере, условием поиска будет «фамилия равна Иванов». Это означает, что на значения поля «Фамилия» накладывается ограничение – «равно Иванов», которое состоит из вида сравнения – в нашем случае «равно», и поискового значения – «Иванов». Если Вы хотите найти данные, соответствующие не одному, а нескольким параметрам, например, все записи не только об Иванове, но и о Петрове, условий поиска будет, соответственно, несколько. Если в запросе несколько условий поиска, они должны быть соотнесены (связаны) между собой посредством логических связок.

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

Использование шаблонов для задания поискового значения


В ИСУБД «CronosPlus», задавая в запросе поисковое значение по полю типа Текстовое или полю типа Файл39, Вы можете использовать шаблоны. Шаблон это специальный символ – «?» или «*», который можете заменить один или несколько символов в поисковом значении.

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

Или что делать, если Вы просто не уверены в написании какого-то слова (например, не помните, как пишется нужная фамилия – Снегирев или Снигирев). Указывать в запросе несколько условий поиска?

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

Этот оператор следует использовать для поисковых значений фиксированной длины, т.е. когда варьируется написание определенного количества символов. Например, Вы можете ввести поисковое значение «И??ов». В этом случае будут отобраны все записи, у которых поле «Фамилия» содержит значение, начинающееся на «И», заканчивающееся на «ов» и состоящее из пяти, четырех или трех символов. Например, Инков или Инов.
  • Оператор шаблона «*» обозначает (заменяет) последовательность любых символов неопределенной длины (в том числе и нулевой) в рамках одного слова. Поэтому такой оператор называют групповым оператором шаблона.

Этот оператор используется для задания шаблонов произвольной длины. Например, если Вы введете поисковое значение «И*ов», будут отобраны все записи, у которых поле «Фамилия» содержит значение начинающееся на «И», заканчивающееся на «ов» и состоящее из любого числа символов. Например, Иванов и Инков (шаблон заменен на три символа), Ивняков и Индюков (шаблон заменен на четыре символа) или даже Иов (шаблон не был заменен ни одним символом) и т.д.

Задавая поисковое значение, Вы можете использовать различные комбинации этих шаблонов. Например, ввести поисковое значение «И?н*ов» или «И*н*ов» и т.п. Следует отметить, что чем больше шаблонов будет использовано в поисковом значении, тем больше времени займет поиск. Поэтому, несмотря на то, что использовать шаблон «*» удобнее, старайтесь задавать наиболее эффективные (точные) поисковые значения.

Виды сравнения


Как Вы уже знаете, вид сравнения это то условие, в соответствии с которым, сравниваются значения полей записей базы данных и поискового значения. Ниже приведено описание всех видов сравнения, которые Вы можете использовать при работе с запросами в ИСУБД «CronosPlus»40.
  • Вид сравнения «Равно». Данный вид сравнения используется при поиске значений простых полей. Вы можете задать в качестве поискового значения одно или несколько слов (через пробел). Если выбран вид сравнения «Равно», система отберет все записи, в которых значение (или хотя бы одно из значений, если поле кратное) соответствующего поля содержит все слова, указанные в поисковом значении. Причем, эти слова могут встречаться в любой последовательности и через любое количество иных слов. Такие служебные символы как точка, запятая и тире игнорируются. Вы можете взять поисковое значение в кавычки, тогда будут найдены те записи, у которых в значении соответствующего поля встречается указанная комбинация слов, в той же последовательности, что и в кавычках (служебные символы, заглавные буквы, количество пробелов по-прежнему игнорируются). Работая с данным видом сравнения, Вы можете использовать шаблоны, в поисковом значении.

Например, задайте, в качестве поискового значения для поля «Учебное заведение», два слова через пробел: Московский и Университет. Система отберет записи, в которых в этом поле встречаются эти слова в любой последовательности: Московский Государственный Университет, Киевский Университет Гуманитарных Наук, Московский Экономико-Статистический Институт и т.д.
  • Вид сравнения «Не равно (несовпадение)». Этот вид сравнения является противоположным предыдущему по действию. Система ищет записи, в которых значение соответствующего поля не содержит хотя бы одно из слов, указанных в поисковом значении.

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

Например, в качестве поискового значения для поля «Учебное заведение», заданы два слова через пробел: Московский и Университет. Система отберет только те записи, в которых данное поле содержит значение «Московский Университет». Причем если в значении поля записи, между этими двумя словами, будет два пробела, такая запись не попадет в результаты запроса.
  • Вид сравнения «Точное несовпадение». Противоположен по своим действиям виду сравнения «Точное совпадение. Т.е. при выполнении запроса, из банка будут отобраны записи, у которых значение поля (или все значения, если поле кратное) точно не равно заданному поисковому значению (посимвольное неравенство).
  • Вид сравнения «Равно пустому значению». Если Вы хотите отобрать все записи банка, в которых значение определенного поля не заполнено, то, при задании условия поиска, следует использовать данный вид сравнения. В результате будут отобраны записи, у которых значение данного поля отсутствует.

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

Например, Вы хотите узнать, кто из лиц, данные о которых есть в банке, получил высшее образование. В этом случае следует отобрать только те записи, в которых поле «Дата окончания образования» имеет значение. Таким образом, поиск будет производиться по этому полю, с использованием вида сравнения «Не равно пустому значению».
  • Виды сравнения «Больше или равно» и «Меньше или равно». Эти виды сравнения, в первую очередь, предназначены для работы с полями таких типов, как Числовое, Дата и Время. Т.е. имеющих числовое значение, которое можно сравнить с другими значениями, используя понятия «больше» и «меньше». Тем не менее, эти виды сравнения могут использоваться и для полей типа Текстовое. В таком случае требуемые значения определяются в соответствии с правилами представления алфавита в числовом машинном коде (ASCII). Причем коды символов латинского алфавита всегда «меньше» кодов символов русского алфавита.

При выполнении запроса, из банка будут отобраны записи, в которых значение заданного поля больше/меньше или равно поисковому значению. Например, Вы хотите получить список всех лиц, зарплата которых превышает 300$. Для этого, по значениям поля «Заработная плата» будут осуществлен поиск соответствующих значений. При этом будет использован вид сравнения «Больше или равно» и поисковое значение «300».

Если Вы хотите отобрать всех лиц, которые родились 20 января 1961 года или раньше. Для этого необходимо отобрать записи, в которых поле «Дата рождения» меньше или равна 21.01.1961. В таком запросе потребуется установить вид сравнения «Меньше или равно».
  • Виды сравнения «Внутри интервала» и «Вне интервала». Как и два предыдущих, эти виды сравнения, в первую очередь, предназначены для работы с полями «числовых» типов (Числовое, Дата и т.д.). Если такой вид сравнения используется для работы с полями типа Текстовое, требуемые значения определяются в соответствии с правилами представления алфавита в числовом машинном коде (ASCII).

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

Например, Вы хотите составить список лиц, дата рождения которых приходится на период (интервал) с 20.01.1961 по 30.04.1961. В таком случае, задав этот интервал в качестве поискового значения, необходимо использовать вид сравнения «Внутри интервала».

Если же Вас наоборот интересуют лица, родившиеся в любой иной период, кроме вышеназванного, используйте то же поисковое значение. А вид сравнения будет «Вне интервала».
  • Вид сравнения «Похожесть (совпадение с точностью до символа)». Иногда возникают ситуации, когда Вы не помните, как именно пишется слово, которое будет использоваться в поисковом значении. В этом случае, при задании поискового значения, Вы можете использовать шаблон и вид сравнения «Равно». Однако тогда поисковое значение будет сравниваться не со всем значением поля сразу, а с его составляющими (отдельными словами).

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

Например, выполняется запрос по полю «Фамилия». Если при использовании данного вида сравнения, будет введено поисковое значение «Иванов», из банка будут отобраны записи базы, в которых поле «Фамилия» содержит такие значения, как «Иванов», «Ивонов», «Иванова», «Ивнов», «Ованов» и т.д.
  • Вид сравнения «В интервале слов». Данное условие накладывает дополнительное ограничение при использовании поискового значения, состоящего из двух и более слов. Использование этого вида сравнения допустимо только для полей типа Текст или Файл. При использовании данного вида сравнения будут отобраны те записи, которые содержат все указанные слова, причем расстояние между ними не будет превышать заданного (под расстоянием понимается количество слов). Поисковое значение для вида сравнения «В интервале слов» задается в следующем формате:

”<Слово1> <Слово2> … <СловоN> :<Расстояние>”

То есть все искомые значения вводятся через пробел, после последнего значения через «:» указано целое число, указывающее на расстояние между значениями. Все поисковое значение целиком берется в кавычки.
  • Виды сравнения «Кратность вида равно», «Кратность вида не равно», «Кратность вида больше или равно» и », «Кратность вида меньше или равно», «Все связанные». Для простых и сложных множественных (кратных) полей могут задаваться условия на количество (кратность) непустых значений. Для задания таких условий, используются данные виды сравнения. Где значение кратности – поисковое значение, которое является целым неотрицательным числом в диапазоне от 0 до 99999. Если выбран вид сравнения «Кратность вида равно», будут отобраны те записи, в которых количество значений у заданного множественного (кратного) поля равно поисковому значению, т.е. значению кратности. Если это вид сравнения «Кратность вида не равно» – записи, в которых количество значений соответствующего поля не равно значению кратности и т.д. Например, Вы хотите отобрать всех лиц, имеющих два гражданства и более. Т.е. нужно отобрать все записи, в которых множественное поле «Гражданство» имеет два и более не пустых значения. Задавая условие поиска, следует выбрать вид сравнения «Кратность вида больше или равно» и поисковое значение «2». Вид сравнения «Все связанные» используется только при работе со сложными полями и позволяет игнорировать кратность сложного поля.

Логические связки И, ИЛИ


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

Если условия поиска в запросе связаны логическим «И», будут отобраны только те записи, для которых выполняются все эти условия одновременно. Например, требуется найти всех лиц по фамилии Иванов и по имени Сергей. Т.е. в запросе будет два условия поиска, связанные между собой логическим «И». При выполнении данного запроса, будут отобраны только записи об Иванове Сергее.

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

Виды запросов в ИСУБД «CronosPlus»


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

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

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