Читаем Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ полностью

<p>Операторы SQL</p>

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

<p>Приоритет операторов</p>

Приоритет определяет порядок, в котором операторы и создаваемые ими значения вычисляются в выражении.

Когда выражение содержит несколько операторов одного и того же типа, операторы вычисляются слева направо, если только не существует конфликта, когда два оператора одного и того же типа воздействуют на одни и те же значения. Когда возникает конфликт, приоритет операторов определяется типом. В табл. 21.2 показаны приоритеты типов операторов Firebird от высшего к низшему.

Таблица 21.2. Приоритеты типов операторов

Тип оператора

Приоритет

Объяснение

Конкатенация

1

Строки объединяются до выполнения любых других операций

Арифметический

2

Арифметические операции выполняются после конкатенации строк, но перед выполнением сравнений и логических операций

Сравнение

3

Операции сравнения вычисляются после конкатенации строк и выполнения арифметических операций, но до логических операций

Логический

4

Логические операции выполняются после всех других операций.

Приоритет: когда условия поиска являются комбинированными, порядок вычислений определяется приоритетом используемых операторов, NOT вычисляется перед AND, а AND вычисляется перед OR. Круглые скобки могут использоваться для изменения порядка вычисления

<p>Оператор конкатенации</p>

Оператор конкатенации (и) соединяет две символьные строки и создает одну строку. Символьные строки могут быть константами или значениями, полученными из столбцов:

SELECT Last_name ||', ' || First_Name AS Full_Name FROM Membership;

! ! !

ПРИМЕЧАНИЕ. Firebird более требователен к переполнению строк, чем его предшественники. Он проверит длину входных столбцов и заблокирует конкатенацию, если результирующий размер потенциально может превысить лимит для VARCHAR (32 765 байтов).

. ! .

<p>Арифметические операции</p>

Арифметические выражения вычисляются слева направо за исключением случаев, когда возникает двусмысленность. В этих случаях арифметические операции вычисляются в соответствии с приоритетами, описанными в табл. 21.3. Например, умножение выполняется до деления, а деление выполняется до вычитания.

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

Таблица 21.3. Приоритеты арифметических операций

Оператор

Назначение

Приоритет

*

Умножение

1

/

Деление

2

+

Сложение

3

-

Вычитание

4

Следующий пример иллюстрирует, как сложное вычисление может быть сделано вложенным, для обеспечения того, чтобы выражение вычислялось в корректном, недвусмысленном порядке:

. . .

SET COLUMN_A = 1/((COLUMN_B * COLUMN_C/4) - ( (COLUMN_D / 10) + 28))

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

<p>Операторы сравнения</p>

Операторы сравнения проверяют отношение между значением в левой части оператора и значением или диапазоном значений в правой части оператора. Каждая проверка дает результат, который может быть истиной или ложью. Правила приоритета, применимые в вычислениях, указаны в табл. 21.4.

Таблица 21.4. Приоритеты операторов сравнения

Оператор

Назначение

Приоритет

=

Равно, идентично

1

<>, !=, ~=, ^=

Не равно

2

>

Больше

3

<

Меньше

4

>=

Больше или равно

5

<=

Меньше или равно

6

!>, ~>, ^>

Не больше

7

!<, ~<, ^<

Не меньше

8

Сравнения, которым встречается NULL В левой или правой части оператора, всегда следуют правилам логики SQL, вычисляя результат сравнения как NULL и возвращая ложь, например:

IF (YEAR_OF_BIRTH < 1950)

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных