Выбор информации из базы данных
При работе с базой данных пользователя, как правило, интересует не все ее содержимое, а некоторая конкретная информация. Найти нужные сведения можно последовательным просмотром записей. Однако такой способ поиска неудобен и малоэффективен.
Большинство систем управления базами данных позволяют произвести выборку нужной информации путем выполнения запросов. Пользователь в соответствии с определенными правилами формулирует запрос, указывая, каким критериям должна удовлетворять интересующая его информация, а система выводит записи, удовлетворяющие запросу.
Для выборки из базы данных записей, удовлетворяющих некоторому критерию, предназначен компонент Query (рис. 17.17).
Рис. 17.17. Значок компонента Query
Компонент Query похож на компонент Table, но, в отличие от последнего, он представляет не всю базу данных (все записи), а только ее часть – записи, удовлетворяющие критерию запроса.
В табл. 17.18 перечислены некоторые свойства компонента Query.
Таблица 17.18. Свойства компонента Query.
Свойство | Определяет |
---|---|
Name | Имя компонента. Используется компонентом Datasource для связи результата выполнения запроса (набора записей) с компонентом, обеспечивающим просмотр записей, например DBGrid |
SQL | Записанный на языке SQL запрос к базе данных (к таблице) |
Active | При присвоении свойству значения True активизирует выполнение запроса |
Для того чтобы во время разработки программы задать, какая информация будет выделена из базы данных в результате выполнения запроса, свойство SQL должно содержать представленный на языке SQL запрос на выборку данных.
В общем виде запрос на выборку из таблицы данных выглядит так:
SELECT Список-Полей FROM Таблица WHERE (Критерий) ORDER BY СписокПолей
Где:
- SELECT – команда выбора записей из таблицы и вывода содержимого полей, имена которых указаны в списке;
- FROM – параметр команды, который определяет имя таблицы, из которой нужно сделать выборку;
- WHERE – параметр, который задает критерий выбора. В простейшем случае критерий – это инструкция проверки содержимого поля;
- ORDER BY – параметр, который задает условие, в соответствии с которым будут упорядочены записи, удовлетворяющие критерию запроса.
Например, запрос:
SELECT Fam, Name FROM ':Школа:school.db' WHERE (Class = '10a') ORDER BY Name, Fam
Обеспечивает выборку из базы данных "Школа" (из таблицы School.db) записей, у которых в поле class находится текст 10а, т. е. формирует упорядоченный по алфавиту список учеников 10-а класса.
Другой пример. Запрос:
<strong>SELECT</strong> Fam, Name FROM ":Школа:school.db" <strong>WHERE</strong> (Fam > 'K') <strong>and</strong> (Fam < 'Л') ORDER BY Name, Fam
Обеспечивает выбор информации об учениках, фамилии которых начинаются на букву К.