Использование функций
При выполнении выборки из базы данных часто требуется выполнять специфические задачи, для решения которых удобно воспользоваться встроенными функциями MySQL. Каждая функция имеет уникальное имя и может иметь несколько аргументов (в том числе и ни одного), которые перечисляются через запятую в круглых скобках вслед за названием. Если аргументы у функции отсутствуют, круглые скобки все равно следует указывать, например, now (). Отличительной чертой MySQL является то, что при использовании функций пробелы между именем функции и круглыми скобками недопустимы, т. е. написание now () правильное, a now () уже нет. Результат функции подставляется в место вызова функции.
В листинге 7.20 приведен пример использования функции version(), которая возвращает версию сервера MySQL.
Как видно из листинга 7.20, для использования функции version о не требуется применение ключевого слова from, т. к. параметры таблицы не нужны. Однако использование его не возбраняется (листинг 7.21).
В этом случае результат функции version () выступает в качестве строковой константы (см. листинг 7.4) при выборке из таблицы catalogs.
Для того чтобы исключить повторение результата по числу строк, в таблице в MySQL применяется таблица dual, на самом деле не существующая, но которая может быть использована в предложении from.
Чаще функция принимает параметры, например, имена столбцов. Функция count()возвращает число записей в таблице и принимает в качестве аргумента имя столбца. Функция возвращает число строк в таблице, значения столбца для которых отличны от NULL.
В качестве параметра функции наряду с именами столбцов может выступать символ звездочка "*". Одной из особенностей использования функций является то, что название столбца в результирующей таблицы совпадает с названием функции и ее параметрами. Часто это неудобно, особенно в прикладных программах, где после выполнения запроса обращение к результату происходит по имени столбца. В select-запросе столбцу можно назначить новое имя, для этого предназначен оператор as. В листинге 7.24 результату функции count () присваивается новый псевдоним total.
Новое имя можно использовать в других частях SQL-запроса, в выражениях where и order by.
В качестве дополнительного примера можно привести функции min () и мах (), возвращающие минимальное и максимальное значения столбца, имя которого передано в качестве параметра
Однако использование функций min () и max () в выражении where приведет к ошибке. В листинге 7.26 показана попытка извлечения записи из таблицы catalogs с максимальным значением поля id_catalog.
Решение поставленной выше задачи следует искать с привлечением выражения order by. В листинге 7.27 первый запрос извлекает запись с наименьшим значением поля id_catalog, а второй — с наибольшим.
СУБД MySQL имеет большое число встроенных функций.
Дата добавления: 2020-11-18; просмотров: 353;