О. А. Ткачев

Основы программирования в СУБД Oracle. SQL+PL/SQL.


Скачать книгу

виде:

      SELECT [ALL|DISTINCT] {список столбцов или выражений}

      FROM {список таблиц}

      [WHERE {условия выбора}]

      [ORDER BY {столбцы сортировки [ASC|DESC]]}

      [GROUP BY {столбцы группировки}]

      [HAVING {условия на группу}];

      (Квадратными скобками отмечены необязательные элементы.)

      Дадим предварительное описание элементов данного оператора.

      Оператор SELECT начинается со списка столбцов или выражений, значения которых будет отображаться в результате выполнения запроса. По умолчанию SELECT не исключает дублирование строк в результате выполнения запроса. Для исключения дублирования следует использовать ключевое слово DISTINCT.

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

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

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

      В предложении ORDER BY указываются имена столбцов, по значению которых следует упорядочить результат выполнения запроса. По умолчанию строки упорядочиваются в порядке возрастания значений столбца. Для сортировки в порядке убывания после имени столбца следует указать параметр DESC. Если указать несколько столбцов, то результат будет упорядочиваться сначала по значению первого столбца; строки, имеющие одинаковые значения первого столбца, упорядочиваются по значению второго столбца, и так далее.

      В предложении GROUP BY можно указать столбцы, по которым следует осуществить группировку. Группировка состоит в том, что несколько строк, имеющих совпадающие значение столбцов, по которым осуществляется группировка, объединяются в одну строку. Обычно группировка используется в запросах, использующих агрегатные функции, например: Sum (), Max ().

      При наличии группировки в предложении HAVING можно указать условия на группу. Результат выполнения запроса будет содержать данные только о тех группах записей, которые удовлетворяют этому условию.

      При изучении SQL следует обратить внимание на то, что для формирования запроса необходимо:

      – определить структуру запроса, соответствующую заданной задаче обработки данных;

      – синтаксически правильно записать запрос.

      Перейдем к рассмотрению примеров, которые должны научить нас правильно решать обе задачи. Сначала будут рассмотрены запросы, структура которых очевидна, поэтому основное внимание будет уделяться синтаксису. Потом мы перейдем к рассмотрению более сложных запросов, где основной задачей будет являться определение структуры запроса.

      В своей простейшей форме оператор SELECT должен включать в себя следующее:

      – предложение