Введение в стандарты языка баз данных SQL

Агрегатные функции и результаты запросов

Агрегатные функции (в стандарте SQL/89 они называются функциями над множествами) определяются в SQL/89 следующими синтаксическими правилами:
::= COUNT(*) | | ::= { AVG MAX MIN SUM COUNT } (DISTNICT ) ::= { AVG MAX MIN SUM } ([ALL] )
Как видно из этих правил, в стандарте SQL/89 определены пять стандартных агрегатных функций: COUNT - число строк или значений, MAX - максимальное значение, MIN - минимальное значение, SUM - суммарное значение и AVG - среднее значение.

Базовая таблица INFORMATION_SCHEMA_CATALOG_NAME

Эта таблица специфицирует каталог информационной схемы. Таблица определяется следующим образом:
CREATE TABLE INFORMATION_SCHEMA_CATALOG_NAME (CATALOG_NAME SQL_IDENTIFIER, CONSTRAINT INFORMATION_SCHEMA_CATALOG_NAME_PRIMARY_KEY PRIMARY KEY (CATALOG_NAME))
Пояснения:
  • Значением столбца CATALOG_NAME является имя каталога, в котором располагается информационная схема.
  • Определяется утверждение целостности INFORMATION_SCHEMA_CATALOG_ NAME_CARDINALITY, гарантирующее, что в таблице INFORMATION_SCHEMA_ CATALOG_NAME содержится ровно одна строка:

  • CREATE ASSERTION INFORMATION_SCHEMA_CATALOG_NAME_CARDINALITY CHECK (1 = (SELECT COUNT(*) FROM INFORMATION_SCHEMA_CATALOG_NAME))

    Битовые строки

    Битовая строка - это последовательность бит, каждый из которых имеет значение 0 или 1. Длиной битовой строки называется число битов в этой строке (0 или положительное целое число). При определении конкретного типа битовых строк указывается длина (в случае BIT) или максимальная длина строки (в случае BITVARYING).
    Над битовыми строками определен ряд операций. Некоторые из них мы рассмотрим.
    К операторам, которые работают с операндами - битовыми строками и возвращают битовые строки, относятся следующие:
  • Битовая конкатенация (обозначается в виде ), которая возвращает результирующую битовую строку, полученную путем конкатенации строк-операндов в том порядке, в котором они заданы.
  • Функция извлечения подстроки из битовой строки. Синтаксис и семантика этой функции идентичны синтаксису и семантике функции SUBSTRING для символьных строк за исключением того, что первый аргумент и возвращаемое значение являются битовыми строками.
  • Выражение длины возвращает длину заданной битовой строки в октетах или битах в зависимости от выбранной функции.
  • Выражение позиции определяет первую позицию в битовой строке S, с которой в нее входит строка S1. Если строка S1 не входит в строку S, возвращается значение нуль.

  • Численные типы SQL/92 не отличаются от аналогичных типов SQL/89 за исключением того, что они более точно и подробно определяются в новом стандарте.

    Численные выражения

    Численное выражение - это выражение, значение которого относится к числовому типу данных. По сути дела, численные выражения SQL/92 являются не очень большим расширением арифметических выражений SQL/89. Вот формальный синтаксис численного выражения:
    ::= | | ::= | | ::= [ ] ::= |
    Пояснения: Следует обратить внимание на то, что в отличие от SQL/89 в численных выражениях SQL/92 первичная составляющая является либо первичным численным выражением (см. выше), либо вызовом функции с численным значением. Из этого, в частности, следует, что в численные выражения могут входить выражения с переключателем и операторы преобразования типов.
    Функция с численным значением определяется следующими синтаксическими правилами:
    ::= | | ::= POSITION IN ::= | | ::= { CHAR_LENGTH | CHARACTER_LENGTH } ::= OCTET_LENGTH ::= BIT_LENGTH ::= EXTRACT FROM ::= |