SQL SELECT
Команда SELECT
Команда SELECT (SQL запрос) производит выборку данных из таблиц по запросу. Язык SQL допускает три типа синтаксических конструкций, начинающихся с ключевого слова SELECT:
- оператор выборки (select statement)
- спецификация курсора (cursor specification)
- подзапрос (subquery).
Синтаксис команды SELECT в MySQL
Основные ключевые слова и параметры команды 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
- 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.