Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

4.4 Линейные операторы Выражения - арифметические операции Выражения

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

  • Арифметические операции;

  • Операции отношения;

  • Логические операции

  • Операция присваивания.

Арифметические операции

К арифметическим операциям относятся: сложение +, вычитание -, умножение *, деление / и остаток %, а также унарная операция смены знака -.

При выполнении бинарной операции над операндами разных типов производится преобразование операндов к типу первого операнда. Для преобразования типов используются функции преобразования, вызываемые неявно (array, char, byte, int, word, date, number, long, dword, float, currency, double).

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

Примеры выражений:

var @x1 = 2; var @y = @x1 * @x1 + 1; // результат 5 var @z1 = (@x1 * @x1 + 1) / 3; // результат 1,                                // тип вычисляется по первому аргументу var @x2 = 0.1; var @z2 = (@x2 * @x2 + 1) / 3; // результат 0.336667 select @y as Y, @z1 as Z1, @z2 as Z2 from TABLES;

Выражения - операции отношения и присваивания Операции отношения

В языке определены следующие операции отношения: проверка на равенство ==, проверка на неравенство <> или !=, меньше <, меньше или равно <=, больше >, больше или равно >=.

Все перечисленные операции вырабатывают результат целого типа. Если данное отношение между операндами истинно, то значение этого целого – единица, а если отношение ложно, то нуль.

При выполнении операции над операндами разных типов производится преобразование операндов к типу первого операнда. Для преобразования типов используются функции преобразования, вызываемые неявно (array, char, byte, int, word, date, number, long, dword, float, currency, double).

Все операции типа «больше – меньше» имеют равный приоритет, причем он выше, чем приоритет операций == и <>. Приоритет операции присваивания ниже приоритета всех операций отношения. Для задания правильного порядка вычислений используются круглые скобки.

Пример:

var @x1 = 1; var @x2 = 2; var @x3 = 1;

var @y1, @y2, @y3, @y4, @y5, @y6, @y7;

@y1 = (@x1 <> @x2); @y2 = (@x1 == @x2); @y3 = (@x1 > @x2); @y4 = (@x1 < @x2); @y5 = (@x1 >= @x3); @y6 = (@x1 <= @x3); @y7 = (@x1 != @x3);

select   @y1 as Y1, @y2 as Y2, @y3 as Y3, @y4 as Y4,   @y5 as Y5, @y6 as Y6, @y7 as Y7 from TABLES;

Операция присваивания

В языке есть единственная операция присваивания =. Операция присваивания заносит значение выражения правой части в переменную левой части. В одном операторе операция присваивания может встречаться несколько раз. Вычисления производятся справа налево.

Пример выражения:

var @a, @b, @c; @a = @b = @c = 1; select @a as A, @b as B, @c as C from TABLES;