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

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


Скачать книгу
rel="nofollow" href="#image120_5c5be01a47a2381d1b830a68_jpg.jpeg"/>

      Рисунок 40. Запрос: марки, цвета авто, только уникальные записи

      Важные замечания

      Важно отметить, что дубли исключаются DISTINCT только из колонок, перечисленных в SELECT; других колонок DISTINCT не касается.

      С помощью DISTINCT очень удобно просмотреть, какие вообще значения есть в заданной колонке, например автомобили каких цветов присутствуют в таблице AUTO:

      SELECT DISTINCT COLOR FROM AUTO

      Вопросы учеников

      Есть ли еще какой-либо способ исключить дубли из запроса?

      Да, подобный способ называется группировка записей, и мы изучим его позже.

      Можно ли использовать DISTINCT с ROWNUM?

      Да, но тогда оператор DISTINCT бесполезен, его использование потеряет смысл.

      Можно ли использовать DISTINCT с WHERE?

      Конечно, это возможно, нет никаких ограничений, и вот пример такого запроса.

      Выведите из таблицы AUTO автомобили марки LADA уникальных цветов.

      Контрольные вопросы и задания для самостоятельного выполнения

      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), округлить до целого.

Скачать книгу