Вход/Регистрация
Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
вернуться

Борри Хелен

Шрифт:

* идентификатор столбца, который хранится в таблице, задан в просмотре или объявлен как выходной аргумент хранимой процедуры. При некоторых условиях идентификатор столбца должен содержать уточнение в виде имени или алиаса содержащей его таблицы;

* простое или сложное выражение, сопровождаемое идентификатором времени выполнения;

* константное значение, сопровождаемое идентификатором времени выполнения;

* контекстная переменная сервера, сопровождаемая идентификатором времени выполнения;

* символ *, часто называемый "звездочкой выбора", который задает все столбцы. Хотя SELECT * не исключает выбор одного или более столбцов из той же таблицы индивидуально, вообще-то в этом нет смысла. Чтобы включить дубликаты столбцов для специальных целей, применяйте для него ключевое слово AS и алиас, возвращая его как вычисляемое (только для чтения) поле.

Все следующие спецификации SELECT правильны.

Простой список столбцов:

SELECT COLUMN1, COLUMN2 ...

Уточненные имена столбцов, требуемые для спецификаций со многими таблицами:

SELECT

TABLEA.ID,

TABLEA.BOOK_TITLE,

TABLEB.CHAPTER_TITLE,

CURRENT_TIMESTAMP AS RETRIEVE_DATE . . .

Выражение (агрегирующее):

SELECT MAX (COST * QUANTITY) AS BEST_SALE ...

Выражение (преобразующее):

SELECT 'EASTER' || CAST (EXTRACT (YEAR FROM CURRENT_DATE) AS CHAR(4)) AS SEASON ...

Переменные и константы:

SELECT

ACOLUMN,

BCOLUMN,

CURRENT_USER, /* контекстная переменная */

'Jaybird' AS NICKNAME ...

/* константа времени выполнения */

Все столбцы таблицы:

SELECT * ...

Режимы выборки:

SELECT FIRST 5 SKIP 100 ACOLUMN, BCOLUMN ...

/* это не будет иметь смысла при отсутствии в дальнейшем предложения ORDER BY */

Выражения и константы в качестве выходных полей

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

выходного набора. Имена для столбцов времени выполнения называются алиасами столбцов. Для большей ясности алиас столбца необязательно может быть отмечен ключевым словом AS.

Возьмем предыдущий пример:

SELECT 'EASTER' || CAST (EXTRACT (YEAR FROM CURRENT_DATE) AS CHAR(4)) AS SEASON ...

В 2004 году этот алиас столбца будет возвращен для каждой строки набора в виде:

SEASON

======

EASTER2004

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

! ! !

ПРИМЕЧАНИЕ. Константы типа BLOB и массивы не могут быть использованы для выходных полей времени выполнения.

. ! .

О выражениях и функциях читайте в следующей главе.

FROM <таблица-или-процедура-или-просмотр>

Предложение FROM задает источник данных, который может быть таблицей, просмотром или хранимой процедурой, имеющей выходные аргументы. Если оператор включает соединение двух или более структур, то предложение FROM задает структуру, находящуюся в левой части. Другие таблицы добавляются в спецификацию при использовании последующих предложений ON (СМ. разд. "JOIN <спецификация> ").

В следующих примерах предложения FROM добавляются к спецификациям SELECT предыдущих примеров:

SELECT COLUMN1, COLUMN2 FROM ATABLE . . .

SELECT

TABLEA.ID,

TABLEA.BOOK_TITLE,

TABLEB.CHAPTER_TITLE,

CURRENT_TIMESTAMP AS RETRIEVE_DATE

FROM TABLEA . . .

SELECT MAX(COST * QUANTITY) AS BEST_SALE

FROM SALES ...

SELECT 'EASTER'||CAST(EXTRACT(YEAR FROM CURRENT_DATE) AS CHAR(2))

AS SEASON

FROM RDB$DATABASE ;

SELECT ACOLUMN, BCOLUMN, CURRENT_USER, 'Jaybird' AS NICKNAME

FROM MYTABLE ...

Синтаксис внутреннего соединения SQL-89

Firebird обеспечивает поддержку устаревшего синтаксиса неявного внутреннего соединения SQL-89. Например:

SELECT

TABLEA.ID,

TABLEA.BOOK_TITLE,

TABLEB.CHAPTER_TITLE,

CURRENT_TIMESTAMP AS RETRIEVE_DATE

FROM TABLEA, TABLEB ...

По разным причинам вам не следует использовать этот синтаксис в новых приложениях (см. главу 22).

  • Читать дальше
  • 1
  • ...
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: