Инструменты пользователя

Инструменты сайта


examination:bd:question31

Вопрос №31. Встроенные функции

SQL позволяет выполнять различные арифметические операции над столбцами результирующего отношения. В конструкции <список_выбора> можно использовать константы, функции и их комбинации с арифметическими операциями и скобками. Например, чтобы узнать сколько лет прошло с 1992 года (год принятия стандарта SQL-92) до публикации той или иной книги можно выполнить команду:

   SELECT title, yearpub-1992 FROM titles WHERE yearpub > 1992;

В арифметических вражения допускаются операции сложения (+), вычитания (-), деления (/), умножения (*), а также различные функции (COS, SIN, ABS - абсолютное значение и т.д.). Также в запрос можно добавить строковую константу:

   SELECT 'the title of the book is', title, yearpub-1992 
          FROM titles WHERE yearpub > 1992;

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

  • AVG(<имя поля>) - среднее по всем значениям данного поля
  • COUNT(<имя поля>) или COUNT (*) - число записей
  • MAX(<имя поля>) - максимальное из всех значений данного поля
  • MIN(<имя поля>) - минимальное из всех значений данного поля
  • SUM(<имя поля>) - сумма всех значений данного поля

Следует учитывать, что каждая агрегирующая функция возвращает единственное значение. Примеры: определить дату публикации самой «древней» книги в нашей базе данных

         SELECT MIN(yearpub) FROM titles;

подсчитать количество книг в нашей базе данных:

         SELECT COUNT(*) FROM titles;

Область действия данных функции можно ограничить с помощью логического условия. Например, количество книг, в названии которых есть слово «SQL»:

SELECT COUNT(*) FROM titles WHERE title LIKE '%SQL%';
examination/bd/question31.txt · Последние изменения: 2014/01/15 08:11 (внешнее изменение)