Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
часть2.doc
Скачиваний:
17
Добавлен:
24.08.2019
Размер:
892.42 Кб
Скачать

Использование запросов при проектировании приложений

При работе с БД широко применяется понятие запроса к ней. Под запросом понимается требование совершить определенное действие с информацией из БД. Можно выбрать данные в соответствии с заданным условием и отобразить результат – запрос на выборку. Можно также вставить, удалить, обновить определенные записи в БД, используя соответствующие запросы. Такие требования формируются на специальных языках программирования QBE и SQL. SQL нашел более широкое распространение, в Delphi его можно использовать при создании приложения для работы с БД.

SQL-запрос

На языке SQL можно создать запросы различных типов:

  • запрос на выборку данных;

  • запрос на добавление;

  • запрос на обновление;

  • запрос на удаление.

SQL-запрос, созданный с помощью DBD, помещается в файл с расширением sql.

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

1.Запрос на выборку.

Он предназначен для извлечения данных, находящихся в определенных полях одной или нескольких таблиц и соответствующих задаваемым условиям. Конструкция запроса следующая:

SELECT [DISTINCT] <список выводимых полей>

FROM <список используемых таблиц>

[WHERE <условие отбора>]

[ORDER BY <порядок сортировки>]

[GROUP BY <порядок группировки>]

[HAVING <условие отбора групп>]

[UNION <объединяемый запрос на выборку>]

Рассмотрим подробнее отдельные части запроса.

DESTINCT – указывает, что в результате запроса не должно быть

повторяющихся значений.

<список выводимых полей>:

[<таблица>.]<поле>[AS <псевдоним>]{,[<таблица>.]<поле>[AS

<псевдоним>]}, где таблица – имя таблицы, если в запросе присутствует только одна таблица, его можно опустить; поле – имя поля; псевдоним – псевдоним для имени поля является локальным в запросе; AS – оператор, ставящий в соответствие конкретному полю псевдоним. Если требуется получить данные из всех полей таблицы, то достаточно указать * вместо перечисления всех имен полей.

<список используемых таблиц>:

“<файл с таблицей>” [<псевдоним>]{,”<файл с

таблицей>”[<псевдоним>]}.

WHERE – зарезервированное слово, с которого начинается оператор задания условий.

<условие отбора>:

Условие, устанавливающее объединение:

[(<таблицаM.поле1> <условие> <таблицаN.поле2>)]{AND|OR

(<таблицаI.поле1> <условие> <таблицаJ.поле2>)}, где таблицаM, таблицаN, таблицаI, таблицаJ – имена объединяемых таблиц; поле1, поле2 – имена полей в этих таблицах, по соответствию значений которых устанавливается взаимосвязь таблиц; условие – определяет соответствие значений в заданных полях двух таблиц, например: равенство, больше, меньше, не равно и другие операции сравнения; условий может быть несколько, в этом случае они объединяются при помощи круглых скобок и логических операций AND и OR. Если условие для объединения отсутствует, формируется результат, представляющий собой всевозможные объединения записей всех таблиц.

Условие на значение полей:

[[<таблица>.]<поле> <условие> <значение>]

{AND|OR [<таблица>.] <поле> <условие> <значение>}.

Помимо математических, используются также логические операторы сравнения, предикаты IN, LIKE и другие.

ORDER BY – зарезервированное слово, с которого начинается оператор задания порядка сортировки.

<порядок сортировки>:

[<таблица>.]<поле> [ASC|DESC] {,[<таблица >.]<поле> [ASC|DESC]}, где ASC (по умолчанию) или DESC – определяют порядок сортировки соответственно по возрастанию или убыванию.

GROUP BY – зарезервированное слово, с которого начинается оператор задания порядка группировки.

<порядок группировки>:

[<таблица>.]<поле> {,[<таблица>.]<поле>}.