SQL SELECT

Команда SELECT

Команда SELECT производит выборку данных из таблиц по запросу.

Язык SQL допускает три типа синтаксических конструкций, начинающихся с ключевого слова SELECT:

  1. оператор выборки (select statement)
  2. спецификация курсора (cursor specification)
  3. подзапрос (subquery).

Синтаксис команды SELECT в MySQL

SELECT

Синтаксис команды SELECT в Oracle

Основные ключевые слова и параметры команды SELECT в MySQL

  • DISTINCT — возвращает только одно значение  для каждого набора одинаковых выбранных значений столбца
  • ALL — возвращает все выбранные строки, включая все повторяющиеся значения столбцов (принимается по умолчанию)
  • * — выбирает все столбцы из всех таблиц или представлений, перечисленных после оператора  FROM
  • schema — идентификатор полномочий, обычно совпадающий с именем некоторого пользователя
  • table.*  view.* — выбирает все столбцы из указанной таблицы, представления
  • Expr — извлекает из таблицы (представления) некоторое определяемое выражение
  • table view — имя таблицы(представления), из которой происходит выборка  данных.
  • subquery — подзапрос, который сервер обрабатывает тем же самым способом как представление.
  • WHERE — ограничивает множество строк выборкой тех записей, для которых условие является истинным; если это предложение опускается, сервер возвращает все строки из таблиц.
  • GROUP BY — группирует выбранные строки по группам строк с одинаковым значением указанных полей и возвращает одиночную строку итоговой информации для каждой группы.
  • HAVING — ограничивает выбираемые группы строк такими группами, для которых определяемое условие является истинным; если это предложение опускается, сервер возвращает строки всех групп.
  • UNION UNION ALL INTERSECT MINUS — объединяет строки, возвращенные двумя утверждениями SELECT с использованием операции пересечения множеств; для ссылки на столбец вводится псевдоним для его обозначения; предложение FOR UPDATE не может использоваться с этими операторами
  • ORDER BY — упорядочивает строки, возвращенные запросом.
  • Expr— значение выражения определяет правило  упорядочивания строк.
  • ASC DESC — определяет порядок вывода данных (по возрастанию или по убыванию); значением по умолчанию является ASC.
  • FOR UPDATE — блокирует выбранные строки.
  • OF — блокирует выбираемые строки для специфической таблицы в объединении.
  • NOWAIT — возвращает  управление пользователю, если команда SELECT пытается блокировать строку, которая уже блокирована другим пользователем; если это предложение опускается, сервер ждет, пока строка не станет доступной и только тогда возвращает результаты команды SELECT.

Синтаксис команды SELECT в Oracle

Синтаксис команды SELECT в Oracle

Синтаксис команды SELECT в Oracle

Query table expression clause

Query table expression clause

Sample clause

Sample clause

With clause

With clause

Table collection expression

Table collection expression

Where clause

Where clause

Outer join

Outer join

Hierarchical query clause

Hierarchical query clause

Group by clause

Group by clause

Order by clause

Order by clause

For update clause

For update clause

Основные ключевые слова и параметры команды SELECT в Oracle

  • DISTINCT — возвращает только одно значение  для каждого набора одинаковых выбранных значений столбца.
  • ALL — возвращает все выбранные строки в Oracle, включая все повторяющиеся значения столбцов (принимается по умолчанию).
  • * — выбирает все столбцы из всех таблиц или представлений, перечисленных после раздела  FROM.
  • schema — идентификатор полномочий, обычно совпадающий с именем некоторого пользователя.
  • table.*  view.* — выбирает все столбцы из указанной таблицы Oracle, представления.
  • Expr — извлекает из таблицы (представления) некоторое определяемое выражение.
  • table view — имя таблицы(представления), из которой происходит выборка  данных.
  • c_alias – алиасное имя (псевдоним) извлекаемого столбца, выражения.
  • t_alias – алиасное имя (псевдоним) таблицы Oracle.
  • subquery — подзапрос, который сервер обрабатывает тем же самым способом как представление.
  • WHERE — ограничивает множество строк выборкой тех записей, для которых условие является истинным; если это предложение опускается, сервер возвращает все строки из таблиц Oracle.
  • GROUP BY — группирует выбранные строки по группам строк с одинаковым значением указанных полей и возвращает одиночную строку итоговой информации для каждой группы.
  • HAVING — ограничивает выбираемые группы строк такими группами, для которых определяемое условие является истинным; если это предложение опускается, сервер возвращает строки всех групп.
  • UNION [ALL] INTERSECT MINUS — объединяет строки, возвращенные двумя утверждениями SELECT с использованием операции пересечения множеств; для ссылки на столбец вводится псевдоним для его обозначения. Предложение FOR UPDATE не может использоваться с этими операторами.
  • ORDER BY — упорядочивает строки, возвращенные запросом: в Expr — указывается значение выражения, которое определяет правило  упорядочивания строк по возрастанию ASC или убыванию DESC. Значением по умолчанию является ASC.
  • PARTITION —  в отличие от ORDER BY позволяет частично упорядочивать набор данных.
  • FOR UPDATE — блокирует выбранные строки.
  • NOWAIT — возвращает  управление пользователю, если команда SELECT пытается блокировать строку, которая уже блокирована другим пользователем; если это предложение опускается, сервер ждет, пока строка не станет доступной и только тогда возвращает результаты команды SELECT.

Описание команды SELECT

Основой всех синтаксических конструкций, начинающихся с ключевого слова SELECT, является синтаксическая конструкция “табличное выражение”.

Семантика табличного выражения состоит в том, что на основе последовательного применения разделов FROM, WHERE, GROUP BY и HAVING из заданных в разделе FROM таблиц строится некоторая новая результирующая таблица, порядок следования строк которой не определен и среди строк которой могут находиться дубликаты (т.е. в общем случае таблица-результат табличного выражения является мультимножеством строк).

Наиболее общей является конструкция “спецификация курсора”. Курсор — это понятие языка SQL, позволяющее с помощью набора специальных операторов получить построчный доступ к результату запроса к БД. К табличным выражениям, участвующим в спецификации курсора, не предъявляются какие- либо ограничения. При определении спецификации курсора используются три дополнительных конструкции: спецификация запроса, выражение запросов и раздел ORDER BY.

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

Выражение запросов — это выражение, строящееся по указанным синтаксическим правилам на основе спецификаций запросов. Единственной операцией, которую разрешается использовать в выражениях запросов, является операция UNION (объединение таблиц) с возможной разновидностью UNION ALL.

Оператор выборки — это отдельный оператор языка SQL, позволяющий получить результат запроса в прикладной программе без привлечения курсора. Поэтому оператор выборки имеет синтаксис, отличающийся от синтаксиса спецификации курсора, и при его выполнении возникают ограничения на результат табличного выражения. Фактически, и то, и другое диктуется спецификой оператора выборки как одиночного оператора SQL: при его выполнении результат должен быть помещен в переменные прикладной программы. Поэтому в операторе появляется раздел INTO, содержащий список переменных прикладной программы, и возникает то ограничение, что результирующая таблица должна содержать не более одной строки.

В диалекте SQL СУБД Oracle поддерживается расширенный вариант оператора выборки, результатом которого не обязательно является таблица из одной строки. Такое расширение не поддерживается ни в SQL/89, ни в SQL/92.

Подзапросзапрос, который может входить в предикат условия выборки оператора SQL.

Кстати, данную статью Вы можете найти в интернете по запросам:

Команда SELECT, Синтаксис команды SELECT, Описание команды SELECT.

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.