Язык запросов к данным


Содержание лекционного занятия:

  •  Простейшая форма оператора SELECT
  •  Задание условий при выборке данных

Синтаксис языка запросов к данным (DQL), являющегося одним из подмножеств языка SQL, состоит всего из одной команды SELECT. Эта команда вместе с множе­ством параметров и предложений служит для формирования запросов к базе дан­ных. Запросы формируются для извлечения из таблиц базы данных информации, соответствующей некоторым требованиям, задаваемым пользователем.

Оператор SELECT не используется автономно, вместе с ним обязательно должны задаваться уточняющие предложения. Эти предложения могут быть обязательны­ми и дополнительными. Обязательным является только одно предложение — FROM, без которого оператор SELECT не может работать.

Простейшая форма оператора SELECT

Оператор SELECT вместе с предложением FROM используется для получения инфор­мации из базы данных. Синтаксис простейшей формы оператора SELECT приведен ниже:

SELECT {* | ALL  | DISTINCT поле1. поле2    полеN}

FROM Таблица1 {. Таблица2     ТаблицаN}

Здесь за ключевым словом SELECT следует список полей, которые возвращаются в результате выполнения запроса:

·       имена полей в списке разделяются через запятую;

·       для выборки всех полей таблицы (таблиц) используется символ подстановки *:

·       параметр ALL (задан по умолчанию) означает, что результат выборки будет со­держать все записи, включая дублирующиеся;

·       при использовании параметра DISTINCT результат запроса не будет содержать дублирующихся строк.

Совместно с командой SELECT всегда используется предложение FROM. С помощью этого предложения указывается имя таблицы (таблиц), из которой производится выборка. Если в предложении FROM указывается несколько таблиц, то их имена разделяются запятыми.

Ранее мы уже рассмотрели пример использования оператора SELECT для выборки всей информации, содержащейся в таблице Товары. Чтобы выбрать не все поля, а лишь некоторые, необходимо после слова SELECT указать имена полей, которые будут включены в результат выборки. В качестве примера ниже приведен запрос, возвращающий значения только трех полей: Код товара, Наименование и Цена:

SELECT [Код товара]. Наименование. Цена FROM Товары

СОВЕТ. Обратите внимание, что при указании в списке оператора SELECT имен полей, содер­жащих пробел, их необходимо заключать в квадратные скобки. Это правило требует­ся выполнять и для имен таблиц, указываемых, например, в предложении FROM.

В результате выполнения данного запроса возвращаются все записи, содержащие­ся в трех полях таблицы Товары (рис. 5).

Рис.5. Результат выбора трех полей.

ПРИМЕЧАНИЕ Для выполнения запроса нет необходимости перекомпилировать программу. Доста­точно во время ее выполнения ввести текст запроса в поле ввода и щелкнуть на кноп­ке Выполнить запрос.

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

SELECT DISTINCT Наименование FROM Товары

В результате выполнения этого запроса будет выбрано только 15 записей из 16, так как в выборку включается только одно значение Microsoft Office ХР (рис.6).

Рис.6. Результат применения параметра DISTINCT

Задание условий при выборке данных

Для ограничения отбираемой из базы данных информации оператор SELECT позволяет использовать условие, которое задается с помощью предложения WHERE. В случае реализации условной выборки оператор SELECT имеет следую­щий вид:

SELECT {* | ALLDISTINCT поле1.  поле2   полеN }

FROM Таблица! (. Таблица2,……         ТаблицаN}

WHERE условие

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

Результатом выполнения каждого из этих операторов является логическое значение (true или false). Если для некоторой записи оператор возвращает зна­чение true, то запись включается в результат выборки, если false — не включа­ется.

Вопросы для самоконтроля:

  1. Что такое коррелированный запрос?
  2. Чем отличается коррелированный запрос от некоррелированного?
  3. Какие существуют ограничения на формирование коррелированного запроса?

Рекомендуемая литература:

  1. Конноли Т., Бегг К., Страган А. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2 – е изд.: Уч. пос. – М.: Изд. дом «Вильямс», 2000. – 1120с.
  2. Компьютерные технологии обработки информации: Учебное пособие.– М.: Финансы и статистика. 1995. – 248с.