Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ud.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
821.25 Кб
Скачать

6.3.4.1 Общий синтаксис команды select

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

  • Возвращают одиночную стоку или часть строки из таблицы. Это операция упоминается, как sigleton выбор.

  • Непосредственно возвращают список строк или список частичных строк из таблицы.

  • Возвращают связанные строки, или частичные строки из 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] {* | <значение> [, <значение> ...]}

FROM <табл_ссылка> [, <табл_ссылка> ...]

[WHERE <условие_поиска>]

[GROUP BY колонка [COLLATE collation] [, колонка [COLLATE collation] ...]

[HAVING <условие_поиска>]

[UNION <select_выражение>]

[PLAN <plan_выраж>]

[ORDER BY <порядок>]

<значение> = {

колонка [<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] <значение> | DISTINCT <значение>)

| SUM ([ALL] <значение> | DISTINCT <значение>)

| AVG ([ALL] <значение> | DISTINCT <значение>)

| MAX ([ALL] <значение> | DISTINCT <значение>)

| MIN ([ALL] <значение> | DISTINCT <значение>)

| CAST (<значение> AS <datatype>)

| UPPER (<значение>)

| GEN_ID (генератор, <значение>)

}

<табл_ссылка> = <joined_имя_табл> | имя_табл | имя_представл | имя_проц [(<значение> [, <значение> ...])] [alias]

<joined_имя_табл> = <табл_ссылка> <тип_соединения> JOIN <табл_ссылка>

ON <условие_поиска> | (<joined_имя_табл>)

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

<условие_поиска> = {<значение> <оператор>

{<значение> | (<select_one>)}

| <значение> [NOT] BETWEEN <значение> AND <значение>

| <значение> [NOT] LIKE <значение> [ESCAPE <значение>]

| <значение> [NOT] IN (<значение> [, <значение> ...] | <select_list>)

| <значение> IS [NOT] NULL

| <значение> {[NOT] {= | < | >} | >= | <=}

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

| EXISTS (<select_выражение>)

| SINGULAR (<select_выражение>)

| <значение> [NOT] CONTAINING <значение>

| <значение> [NOT] STARTING [WITH] <значение>

| (<условие_поиска>)

| NOT <условие_поиска>

| <условие_поиска> OR <условие_поиска>

| <условие_поиска> AND <условие_поиска>}

<оператор> = {=|<|>|<=|>=|<>}

<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_выражение> = SELECT on a list of values that returns zero or more rows.

<plan_выраж> =

[JOIN | [SORT] MERGE] (<plan_item> | <plan_выраж>

[, <plan_item> | <plan_выраж> ...])

<plan_item> = {имя_табл | alias}

NATURAL | INDEX (<index> [, <index> ...]) | ORDER <index>

<порядок> =

{колонка | int} [COLLATE collation] [ASC[ENDING] | DESC[ENDING]]

[, <порядок>]

Аргумент

Описание

SELECT [DISTINCT | ALL]

Определяет данные, для поиска. DISTINCT удаляет повторяющиеся значения из возвращенных данных. ALL, параметр по умолчанию, возвращает все данные.

{* | <значение> [, <значение> ...]}

* - возвращает все столбцы из определенной таблицы.

<значение> [, <значение> ...] - возвращает определенный список столбцов и значений.

FROM <табл_ссылка> [,<табл_ссылка> ...]

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

имя_табл

Имя существующей таблицы в базе данных.

имя_представл

имя существующего вида в базе данных.

имя_проц

Имя существующей сохраненной процедуры, которая функционирует, как инструкция SELECT.

alias

Псевдоним - краткое, альтернативное имя для таблицы или вида. After declaration in tabdef, alias can stand in for subsequent references to a имя_табл or имя_представл.

<joined_имя_табл>

Ссылка таблицы состоящая из JOIN.

<тип_соединения>

Тип выполнения объединения. По умолчанию INNER.

WHERE <search_условие>

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

GROUP BY <колонка>[, <колонка> ...]

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

COLLATE collation

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

HIVING <search_условие>

Используется совместно с GRUP BY. Определяет условия, которые ограничивают группировку возвращаемых строк.

UNION

Комбинирует две или более таблиц, которые имеют полностью, либо частично одинаковую структуру.

PLAN <plan_выраж>

Определяет план доступа для оптимизатора InterBase, который используется в течении поиска.

<plan_item>

определяет таблицу и индексный метод для плана.

ORDER BY <порядок>

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]