double arrow

Синтаксис. SELECT возвращает данные из таблицы, вида или сохраненной процедуры

SELECT

Select в InterBase

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

  • Возвращают одиночную стоку или часть строки из таблицы.
  • Непосредственно возвращают список строк или список частичных строк из таблицы.
  • Возвращают связанные строки, или частичные строки из join двух или более таблиц.
  • Возвращают все строки, или частичные строки из union двух или более таблиц.

Любая инструкция SELECT содержит два обязательных предложения (SELECT, FROM) и возможно другие предложения (WHERE, GROUP BY, HAVING, UNION, PLAN, ORDER BY). Предложения SELECT и FROM обязательны и для sigleton, и для multi-row SELECT; все другие предложения перечисленные ниже факультативны. Следующая таблица объясняет назначение каждого предложения:

Предложение Назначение
SELECT Список столбцов, которые возвращаются.
FROM Определяет таблицы, в которых ищутся значения.
WHERE Определенное условие поиска, которое используется, чтобы выбрать необходимые стоки из множества всех строк. Предложение WHERE может содержать инструкцию SELECT, которая упоминается, как подзапрос
GROUP BY Группирует возвращенные строки, основываясь на общих значениях столбцов. Используется совместно с HAVING.
HAVING Restricts rows generated by GROUP BY to a subset of those rows.
UNION Комбинирует результаты двух или более инструкций SELECT, создавая одиночную динамическую таблицу, исключая повторяющиеся строки.
ORDER BY Определяет порядок сортировки строк возвращенных SELECT, по умолчанию в возрастающем порядке (ASC), или в убывающем порядке (DESC).
PLAN Определяет план запроса, который будет использоваться оптимизатором запроса вместо обычного выбора.

SELECT [DISTINCT | ALL] {* | <val> [, <val> ...]}

FROM <tableref> [, <tableref> ...]

[WHERE <search_condition>]

[GROUP BY col [COLLATE collation] [, col [COLLATE collation] ...]

[HAVING <search_condition>]

[UNION <select_expr>]

[PLAN <plan_expr>]

[ORDER BY <order_list>]

<val> = {col [<array_dim>] | <constant> | <expr> | <function> | NULL | USER | RDB$DB_KEY}

<array_dim> = [x:y [, x:y ...]]

Обратите внимание: Внешние скобки (выделены жирным) должны быть присутствовать при ссылке на массив.

<constant> = num | "string" | charsetname "string"

<expr> = Допустимое выражение SQL, результат которого одиночное значение.

<function> = {

COUNT (* | [ALL] <val> | DISTINCT <val>)

| SUM ([ALL] <val> | DISTINCT <val>)

| AVG ([ALL] <val> | DISTINCT <val>)

| MAX ([ALL] <val> | DISTINCT <val>)

| MIN ([ALL] <val> | DISTINCT <val>)

| CAST (<val> AS <datatype>)

| UPPER (<val>)

| GEN_ID (generator, <val>)

}

<tableref> = <joined_table> | table | view | procedure[(<val> [, <val> ...])] [alias]

<joined_table> = <tableref> <join_type> JOIN <tableref>ON <search_condition> | (<joined_table>)

<join-type> = {[INNER] | {LEFT | RIGHT | FULL } [OUTER]} JOIN

<search_condition> = {<val> <operator>

{<val> | (<select_one>)}

| <val> [NOT] BETWEEN <val> AND <val>

| <val> [NOT] LIKE <val> [ESCAPE <val>]

| <val> [NOT] IN (<val> [, <val> ...] | <select_list>)

| <val> IS [NOT] NULL

| <val> {[NOT] {= | < | >} | >= | <=}

{ALL | SOME | ANY} (<select_list>)

| EXISTS (<select_expr>)

| SINGULAR (<select_expr>)

| <val> [NOT] CONTAINING <val>

| <val> [NOT] STARTING [WITH] <val>

| (<search_condition>)

| NOT <search_condition>

| <search_condition> OR <search_condition>

| <search_condition> AND <search_condition>}

<operator> = {= | < | > | <= | >= | !< | !> | <> | !=}

<select_one> = SELECT on a single column that returns exactly one row.

<select_list> = SELECT on a single column that returns zero or more rows.

<select_expr> = SELECT on a list of values that returns zero or more rows.

<plan_expr> =

[JOIN | [SORT] MERGE] (<plan_item> | <plan_expr> [, <plan_item> | <plan_expr> ...])

<plan_item> = {table | alias} NATURAL | INDEX (<index> [, <index> ...]) | ORDER <index>

<order_list> ={col | int} [COLLATE collation] [ASC[ENDING] | DESC[ENDING]] [, <order_list>]

Аргумент Описание
SELECT [DISTINCT | ALL] Определяет данные, для поиска. DISTINCT удаляет повторяющиеся значения из возвращенных данных. ALL, параметр по умолчанию, возвращает все данные.
{* | <val> [, <val> ...]} * - возвращает все столбцы из определенной таблицы. <val> [, <val> ...] - возвращает определенный список столбцов и значений.
FROM <tableref> [, <tableref> ...] Список таблиц, видов и сохраненных процедур, из которых возвращаются данные. Список может включать JOIN, объединения могут быть вложенными.
table Имя существующей таблицы в базе данных.
view имя существующего вида в базе данных.
procedure Имя существующей сохраненной процедуры, которая функционирует, как инструкция SELECT.
alias Псевдоним - краткое, альтернативное имя для таблицы или вида. After declaration in tabdef, alias can stand in for subsequent references to a table or view.
<joined_table> Ссылка таблицы состоящая из JOIN.
<join_type> Тип выполнения объединения. По умолчанию INNER.
WHERE <search_cond> Определяет условия, которые ограничивают подмножество возвращаемых строк из всех доступных строк.
GROUP BY <col>[, <col> ...] Разделяет результаты запроса в группы содержащие все строки с одинаковыми значениями, основанными на списке столбцов.
COLLATE collation Определяет порядок сопоставления для данных возвращаемых запросом.
HAVING <search_cond> Используется совместно с GROUP BY. Определяет условия, которые ограничивают группировку возвращаемых строк.
UNION Комбинирует две или более таблиц, которые имеют полностью, либо частично одинаковую структуру.
PLAN <plan_expr> Определяет план доступа для оптимизатора InterBase, который используется в течении поиска.
<plan_item> определяет таблицу и индексный метод для плана.
ORDER BY <order_list> Определяет порядок в котором строки возвращены.

Сейчас читают про: