Перед началом изучения нового материала вспомним что мы знаем о работе с БД в Делфи.(слайды 2-5).
Рассмотрим структуру запроса
Перед вами некоторый запрос. Скажите, что определяет данный запрос?
(слайд 6)
А если необходимо выбрать не все записи, а только те которые удовлетворяют некоторым условиям. Например фамилии начинающиеся на определенную букву.
Поэтому цель нашего занятия научиться строить запросы на выбор данных по некоторым критериям. (7)
Рассмотрим форму представления условий отбора, задаваемого после ключевого слова WHERE. Это условие определяет критерий, по которому отбираются записи.
Оператор SELECT отбирает только те записи, в которых заданное условие истинно. Условие может включать имена полей, константы, логические выражения, содержащие арифметические операции, логические операции and, or, not и операции отношения:
= |
Равно |
> |
Больше |
>= |
Больше или равно |
< |
Меньше |
<= |
Меньше или равно |
<> |
Не равно |
Like |
Наличие заданной последовательности символов |
Первые 6 операций очевидны.
Операция Like имеет синтаксис:
<поле> Like ‘<последовательность символов>’
Эта операция применима к полям типа строк и возвращает true, если в строке встречается фрагмент, заданный в операции как <последовательность символов>. Заданным символам может предшествовать и их может завершать символ процента (%), который означает – любое количество символов. Если символ процента не указан, то заданная последовательность символов должна соответствовать только целому слову.
Например, условие
Fam Like ‘A%’
Означает, что будут отобраны все записи, в которых фамилия начинается с заглавной буквы А (операция Like различает строчные и прописные символы).
Условию
Fam Like ‘Иванов%’
Будут удовлетворять фамилии «Иванов» и «Иванова», а условию
Fam Like ‘%ван%’
Кроме этих фамилий будут удовлетворять, например «Иванников»
Для компонента Edit можно сделать обработчик события OnEditChange. В этом случае при вводе любых букв начинается автоматический выбор записей из таблицы.
WHERE (FAM LIKE "%'+ EDIT1.TEXT + '%")
Практическое задание
На основе созданное БД сформировать два запроса:
1. запрос на выбору учащихся конкретного класса;
2. запрос на выборку учащихся , имеющих в фамилии определённый набор букв (компонент EDIT).