Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по бд.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
4.79 Mб
Скачать

Синтаксис

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>

Определяет порядок в котором строки возвращены.