Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
I. Правила ТБ
II. Теоретические сведения.
Операции в SQL.
Операции представляются зарезервированными словами или символами.
В SQL операции используются в основном в выражениях ключевого слова WHERE, где они
задают операции сравнения и арифметические операции. Знаки операций в операторах SQL
используются для задания условий и скрепления нескольких условий между собой.
Рассмотрим следующие типы операций.
• Операции сравнения
• Логические операции
• Операция отрицания
• Арифметические операции
Операции сравнения
Операции сравнения используются в операторах SQL для сравнения отдельных значений и
представляются знаками =, <> <и>. Эти операции предназначены соответственно для проверки
значений равенства и неравенства, проверки выполнения отношений "меньше" и "больше"
между ними.
Равенство
Операция проверки равенства в операторе SQL выясняет равенство одного значения другому.
Для этого используется знак равенства (=). При выяснении равенства сравниваемые значения
должны совпадать в точности, иначе запрос к базе данных не вернет никаких данных. Если
сравниваемые значения равны, соответствующее выражение приобретает значение TRUE
(Истина), иначе - FALSE (Ложь). Это логическое значение (TRUE / FALSE) используется
системой для того, чтобы выяснить, должны соответствующие данные включаться в ответ
запроса.
пример 1
WHERE STIP = 50 стипендии равна 50
Неравенство
В противоположность равенству существует неравенство. В SQL для представления проверки
неравенства используется знак <> (комбинация знаков "меньше" и "больше"). В этом случае
условие возвращает TRUE, если оказывается неравенство значений, и FALSE - если равенство.
WHERE STIP <> 50 стипендии не ровен 50
"Меньше" и "больше"
Знаки <( "меньше") и> ( "больше") можно использовать отдельно, и в комбинации с другими
операциями.
WHERE STIP <20000 стипендии менее 50
WHERE STIP> 20000 стипендии более 50
Логические операции
Логические операции в SQL задаются ключевым словам, а не символами.
• IS NULL, EXISTS
• BETWEEN
• UNIQUE
• IN
• ALL и ANY
• LIKE
IS NULL
Ключевое слово IS NULL используется для проверки равенства данного значения значению
NULL.
Пример проверки равенства значение значению NULL.
WHERE STIP IS NULL Для стипендии не задано значение Пример, в котором значение NULL
не найдется.
WHERE STIP = NULL стипендии имеет значение, равное строке символов "NULL"
Строка "NULL" отличается от значения NULL.
BETWEEN
Ключевое слово BETWEEN используется для поиска значений, попадающих в диапазон,
заданный некоторыми минимальным и максимальным значениями. Эти минимальное и
максимальное значение включаются в соответствующее условие.
WHERE STIP BETWEEN 20000 AND 30000
BETWEEN предполагает включение минимального и максимального значений диапазона в
результаты запроса.
IN
Ключевое слово IN используется для сравнения значения с заданным списком буквальных
значений. Чтобы вернулось TRUE, сравнимое значение должно совпадать хотя бы с одним
значением из списка.
WHERE STIP IN (20000, 30000, 40000)
Стипендии должна равняться 20000, 30000 или 40000
То же самое можно получить, комбинируя условия с помощью ключевого слова OR, но с
помощью IN результат получается быстрее.
LIKE
Ключевое слово LIKE используется для нахождения значений, похожих на заданный. В данном
случае предполагается использование следующих двух знаков подстановки:
• знак процента (%), в Access (*)
• знак подчеркивания (_), в Access (?).
Знак процента представляет ноль, один или несколько символов. Знак подчеркивания
представляет один символ или число. Знаки подстановки могут использоваться в комбинации.
Вот несколько примеров.
WHERE STIP LIKE '17% 'Любое значение, начинается с 17 WHERE STIP LIKE'% 17% "Любое
значение, которое имеет 17 в любой позиции
EXISTS
Ключевое слово EXISTS используется для поиска в таблице строк, удовлетворяющих заданным
критериям.
WHERE EXISTS (SELECT STIP
FROM STUDENTS WHERE SNUM = '333333333')
Проверка SNUM со значением 333333333 в таблице STUDENTS
UNIQUE
Ключевое слово UNIQUE используется для проверки строк заданной таблицы на уникальность.
WHERE UNIQUE (SELECT STIP
FROM STUDENTS
WHERE SNUM = '333333333')
Проверка STIP на наличие повторений
ALL и ANY
Ключевое слово ALL используется для сравнения заданного значения со всеми значениями с
некоторой другой выборки значений.
WHERE STIP <ALL (SELECT STIP
FROM STUDENTS
WHERE CITY = 'Николаевич')
Проверка значения STIP на предмет уменьшения ним всех значений стипендии студентов
Николаевичей
Ключевое слово ANY используется для сравнения заданного значения с любым из
значений некоторой другой выборки значений.
WHERE STIP> ANY (SELECT SALARY
FROM EMPLOYEE_TBL WHERE SOTCH = 'INDIANAPOLIS')
WHERE STIP <ALL (SELECT STIP
FROM STUDENTS
WHERE SOTCH = 'Николаевич')
Проверка значения STIP на предмет уменьшения ним какого-либо из значений зарплаты для
служащих Николаевичей.
Еще нам нужны три компонента: TADOConnection и TADOQuery вкладке ADO для
получения набора данных, и TDataS вкладке Data Access для связи сетки DBGrid и навига- тора
DBNavigator с этим набором данных.
Дважды щелкните ADOConnection1, чтобы вызвать редактор подключений. Нажмите
кно- НКУ «Build», выберите поставщика Microsoft Jet 4.0 OLE DB Provider, и нажмите «Далее».
В поле «Выберите или введите имя базы данных» укажите нашу БД ok.mdb и нажмите «ОК». И
еще раз «ОК», чтобы закрыть окно редактора подключений. Сразу же свойство LoginPrompt
переводи- мо в False, чтобы при каждом запуске программы у нас не спрашивали логин и
пароль, а Connecte вTrue. Подключение к базе данных произошло.
В свойстве Connection компонента TADOQuery выберем ADOConnection1, а в
собствен- тивости DataSet компонента DataSource1 выберем наш ВС ADOQuery1. Теперь набор
данных
ADOQuery1 соединен с базой данных, а DataSource1 - с этим набором данных.
Всвойстве DataSource компонентов DBGrid 1 и DBNavigator1 выберем DataSource1,
чтобы они могли взаимодействовать с набором данных.
Нам осталось только запрограммировать обработчик события onClick для обеих кно-
пок. Дважды щелкните по кнопке "Выполнить SQL-запрос», чтобы сгенерировать это событие,
и пропишите в нем такой код:
/ Проверим - есть текст в Memo, если нет, выходим: if Memo1.Text = '' then begin
ShowMessage ( 'Сначала введите запрос!'); Memo1.SetFocus; Exit;
end;
//Текст есть. Очистим предыдущий запрос в наборе данных: ADOQuery1.SQL.Clear;
//Добавим новый запрос с Memo:
//Открываем набор данных, т. Е. Выполняем запрос: ADOQuery1.Open;
V. Оформление отчета.
VI. Защита работы