Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Выражения

Выражения

Хранение данных в простом, наиболее абстрактном виде - вот что делают базы данных. Язык поиска - в случае Firebird это обычно SQL - вместе с ядром сервера базы данных предоставляют целый арсенал готовых формул, в которые во время выполнения можно подставлять фактические данные для преобразования фрагментов абстрактных данных в информацию, имеющую смысл для человека.

Для простого примера возьмем таблицу MEMBERSHIP, которая имеет столбцы FIRST_NAME, LAST_NAME и DATE_OF_BIRTH. Для получения списка, содержащего полное имя и дату рождения, мы можем использовать оператор, содержащий выражения для преобразования хранимых данных:

SELECT

FIRST_NAME ||' '|| LAST_NAME AS FULL_NAME,

EXTRACT (MONTH FROM DATE_OF_BIRTH) ||'/'|| EXTRACT (DAY FROM DATE_0F_BIRTH)

AS BIRTHDAY

FROM MEMBERSHIP

WHERE FIRST_NAME IS NOT NULL AND LAST_NAME IS NOT NULL

ORDER BY 2;

Во время отправления запроса на сервер мы не знаем, какие значения хранятся в базе данных. Однако мы знаем, на что они должны быть похожи (семантика их значений и типы данных), для нас этого достаточно, чтобы сконструировать выражения для поиска списка в том виде, который будет для нас иметь смысл.

В этом одном операторе мы используем три вида выражений SQL.

* Для первого поля FULL NAME используется оператор конкатенации (в SQL два символа вертикальной черты 11) для создания выражения, которое объединяет два поля базы данных, разделенные пробелами в одно.

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

* В качестве условия поиска предложение WHERE использует другой вид выражения- логический предикат - для проверки подходящих строк в таблице. Строки, которые не удовлетворяют этой проверке, не помещаются в выходной набор.

В этом примере выражения были использованы:

* для преобразования найденных данных в выходные столбцы;

* для задания условий поиска в предложении WHERE оператора SELECT. Тот же подход может быть использован для условий поиска операторов UPDATE и DELETE.

Другие контексты, где могут использоваться выражения:

* для задания условий проверки данных в ограничениях CHECK;

* для определения вычисляемых (COMPUTED BY) столбцов в операторах CREATE TABLE и ALTER TABLE;

* для преобразования или создания входных данных в процессе их сохранения в таблице при использовании операторов INSERT или UPDATE;

* для упорядочения или группирования выходных наборов;

* при установке во время выполнения условий определения вывода;

* в условиях потока управления в модулях PSQL.

Оглавление книги


Генерация: 0.130. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз