Размер шрифта
-
+

Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики - стр. 32

1. Повторите материалы данного шага.

2. Выведите из таблицы AUTO цвета автомобилей, исключите повторения, напишите SQL-запрос.

3. Выведите из таблицы MAN имена людей, исключите повторения, напишите SQL-запрос.

День пятый


Шаг 21. Математика в запросах

Введение

Мы уже использовали математику в SQL-командах ранее: вспомните, в одном из примеров использования UPDATE мы добавляли год к возрасту человека из MAN.


Так вот, в запросах SQL мы можем использовать результаты математических вычислений, причем мы можем как выводить результаты математических вычислений в колонках выбора SELЕCT, так и использовать математические выражения при формировании условий отбора строк WHERE.

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

Для создания математических выражений в языке SQL используются следующие операции:

+ сложение;

– вычитание;

/ деление;

* умножение.


А также знакомые нам со школы функции:

Sqrt – квадратный корень;

MOD – остаток от деления;

trunc – округление до целого;

sIN – синус;

cos – косинус

(на самом деле этих функций больше, мы рассматриваем основные).


Все математические операции выполняются только для числовых значений, числовых колонок с типами NUMBER или производными от NUMBER (INt, float) – более подробную информацию можно посмотреть в документации к СУБД. То есть мы можем использовать в математических выражениях значения соответствующих колонок при выводе на экран и в фильтре WHERE.


Запомним, что математические операции используются также в критериях отбора строк WHERE.


Посмотрим, как это делается.

Вывести из таблицы MAN имя, фамилию и возраст (FIRSTNAME, LASTNAME, YEAROLD) человека, разделенный на 10.



Рисунок 41. Запрос к MAN: результат математического вычисления


В колонке с псевдонимом y10 выводится результат выражения YEAROLD/10.


Вывести из таблицы MAN имя, фамилию и возраст человека (FIRSTNAME, LASTNAME, YEAROLD), умноженный на sIN (1), округлить до целого.



Рисунок 42. Запрос к MAN: результат вычисления sIN


Вывести из таблицы CITY записи (*), где квадратный корень от количества населения города больше 1000 (PEOPLES).



Рисунок 43. Запрос к CITY: квадратный корень больше 1000


Пример демонстрирует использование математического выражения sqrt(CITY.PEOPLES) при фильтрации строк в WHERE.


Вывести из таблицы CITY название города (CITYNAME), квадратный корень от количества населения (PEOPLES), где значение кода города (CITYCODE) делится нацело на 3.



Рисунок 44. Запрос к CITY с математическим выражением


Вывести из таблицы CITY название города (CITYNAME), код города, разделенный на 3 (CITYCODE), где значение населения (PEOPLES), разделенное на 100, не больше 1 000 000.

Страница 32