Функции MySQL: String, Numeric, User-Defined, Stored

Что такое функции?

MySQL может сделать гораздо больше, чем просто хранить и извлекать данные . Мы также можем выполнять манипуляции с даннымиперед их извлечением или сохранением. Вот откуда входят функции MySQL. Функции – это просто фрагменты кода, которые выполняют некоторые операции, а затем возвращают результат. Некоторые функции принимают параметры, а другие функции не принимают параметры.

Давайте вкратце рассмотрим пример функции MySQL. По умолчанию MySQL сохраняет типы данных даты в формате “ГГГГ-ММ-ДД”. Предположим, что мы создали приложение, и наши пользователи хотят, чтобы дата была возвращена в формате “DD-MM-YYYY”, для этого мы можем использовать MySQL, встроенный в функцию DATE_FORMAT. DATE_FORMAT – одна из наиболее часто используемых функций в MySQL. Мы рассмотрим это более подробно, когда мы разберем урок.

Зачем использовать функции?

Основываясь на примере, приведенном во введении, люди с опытом работы в компьютерном программировании могут думать: ”Зачем беспокоиться о функциях MySQL? Тот же эффект может быть достигнут с помощью языка сценариев / программирования?” Это правда, мы можем добиться этого, написав некоторые процедуры / функции в прикладной программе.

Возвращаясь к нашему примеру DATE во введении, чтобы наши пользователи могли получать данные в нужном формате, бизнес-уровень должен будет выполнить необходимую обработку.

Это становится проблемой, когда приложение должно интегрироваться с другими системами. Когда мы используем функции MySQL, такие как DATE_FORMAT, тогда мы можем включить эту функциональность в базу данных, и любое приложение, которое нуждается в данных, получает его в требуемом формате. Это уменьшает повторную работу в бизнес-логике и уменьшает несоответствия данных.

Еще одна причина, по которой мы должны учитывать использование функций MySQL, заключается в том, что она может помочь снизить сетевой трафик в клиентских / серверных приложениях . Бизнес-слою необходимо будет только вызвать вызов хранимых функций без необходимости манипулировать данными. В среднем использование функций может значительно повысить общую производительность системы.

Типы функций

Встроенные функции

MySQL поставляется в комплекте с несколькими встроенными функциями. Встроенные функции – это просто функции, которые уже реализованы на сервере MySQL. Эти функции позволяют нам выполнять различные типы манипуляций с данными. Встроенные функции могут быть в основном разделены на следующие наиболее используемые категории.

  • Строковые функции – работают с строковыми типами данных
  • Числовые функции – работают с числовыми типами данных
  •  Функции даты – работают с типами данных даты
  • Совокупные функции – работают со всеми вышеперечисленными типами данных и производят обобщенные результирующие наборы.
  • Другие функции – MySQL также поддерживает другие типы встроенных функций, но мы ограничим наш урок только вышеупомянутыми функциями.

Давайте теперь рассмотрим каждую из перечисленных выше функций. Мы будем объяснять наиболее используемые функции, используя наш “Myflixdb”.

Строковые функции
Мы уже рассмотрели, какие функции строки выполняют. Мы рассмотрим практический пример, который их использует. В нашей таблице фильмов названия фильмов хранятся с использованием комбинаций букв нижнего и верхнего регистров. Предположим, мы хотим получить список запросов, который возвращает названия фильмов в строчных буквах. Для этого мы можем использовать функцию “UCASE”. Он принимает строку как параметр и преобразует все буквы в верхний регистр. Сценарий, показанный ниже, демонстрирует использование функции “UCASE”.

ВОТ

  •  UCASE (title) – встроенная функция, которая принимает заголовок как параметр и возвращает его в строчных буквах с псевдонимом upper_case_title.

 

Выполнение вышеуказанного скрипта в workbench MySQL в Myflixdb дает нам следующие результаты, показанные ниже.

movie_id заглавие UCASE ( ‘название’)
16 67% виновных 67% ВИЛЬЯ
6 Ангелы и демоны АНГЕЛЫ И ДЕМОНЫ
4 Название кода Black ИМЯ КОДА BLACK
5 Маленькие девочки папы МАЛЕНЬКИЕ ДЕВУШКИ DADDY
7 Давинский код DAVINCI CODE
2 Забыть Сарра Маршала ЗАБЫВАЯ САРА МАРШАЛ
9 Медовые луны МЕДНЫЕ ЛУНЫ
19 фильм 3 ФИЛЬМ 3
1 Пираты Карибского моря 4 Пираты Карибского моря 4
18 образец фильма ОБРАЗЕЦ КИНО
17 Великий диктатор БОЛЬШОЙ ДИКТАТОР
3 X-Men X-MEN

 

MySQL поддерживает несколько строковых функций. Полный список всех встроенных строковых функций см. По этой ссылке http://dev.mysql.com/doc/refman/5.0/en/string-functions.html на веб-сайте MySQL.

Числовые функции
Как упоминалось ранее, эти функции работают с числовыми типами данных. Мы можем выполнять математические вычисления по числовым данным в операторах SQL.

Арифметические операторы
MySQL поддерживает следующие арифметические операторы, которые могут использоваться для выполнения вычислений в операторах SQL.

имя Описание
DIV Целочисленное разделение
/ разделение
вычитание
+ прибавление
* умножение
% или MOD модуль

Давайте теперь рассмотрим примеры каждого из вышеперечисленных операторов
Целочисленный отдел (DIV)

Выполнение приведенного выше сценария дает нам следующие результаты.
3

Оператор отдела (/)
Давайте посмотрим на пример оператора разделения. Мы изменим пример DIV.

Выполнение приведенного выше сценария дает нам следующие результаты.
3,8333
Оператор вычитания (-)
Давайте теперь посмотрим на пример оператора вычитания. Мы будем использовать те же значения, что и в предыдущих двух примерах

Выполнение приведенного выше сценария дает нам 17

Оператор добавления (+)
Давайте посмотрим на пример оператора добавления. Мы изменим предыдущий пример.

Выполнение приведенного выше скрипта дает нам 29

Оператор умножения (*)
Давайте посмотрим на пример оператора умножения. Мы будем использовать те же значения, что и в предыдущих примерах.

Выполнение приведенного выше сценария дает нам следующие результаты.
multiplication_result
138

Оператор Modulo (-)
Оператор modulo делит N на M и дает нам напоминание. Давайте теперь посмотрим на пример оператора modulo. Мы будем использовать те же значения, что и в предыдущих примерах.
SELECT 23% 6;

ИЛИ

Выполнение вышеуказанного скрипта дает нам 5

Давайте посмотрим на некоторые из общих числовых функций в MySQL.
Floor – эта функция удаляет десятичные числа из числа и округляет ее до ближайшего самого низкого числа. Сценарий, показанный ниже, демонстрирует его использование.

Выполнение приведенного выше сценария дает нам следующие результаты.

3

Round – эта функция округляет число с десятичными знаками до ближайшего целого числа. Сценарий, показанный ниже, демонстрирует его использование.

Выполнение приведенного выше сценария дает нам следующие результаты.

4

Rand – эта функция используется для генерации случайного числа, его значение изменяется каждый раз, когда вызывается функция. Сценарий, показанный ниже, демонстрирует его использование.

 

Сохраненные функции

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

ВОТ

  • CREATE FUNCTION sf_name ([parameter (s)])” является обязательным и сообщает серверу MySQL создать функцию с именем sf_name 'с необязательными параметрами, определенными в скобках.
  • "Тип данных RETURNS" является обязательным и указывает тип данных, возвращаемый функцией.
  •  "DETERMINISTIC" означает, что функция вернет те же значения, если к ним будут предоставлены те же аргументы.
  •  "ЗАЯВЛЕНИЯ" - это процедурный код, выполняемый функцией.

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

Выполнение вышеуказанного скрипта создало хранимую функцию sf_past_movie_return_date`.
Давайте теперь протестируем нашу сохраненную функцию.

Выполнение приведенного выше сценария в workbench MySQL на myflixdb дает нам следующие результаты.
movie_id Количество членов Дата возврата CURDATE () sf_past_movie_return_date ( ‘RETURN_DATE’)

movie_id Количество членов Дата возврата CURDATE () sf_past_movie_return_date ( ‘RETURN_DATE’)
1 1 НОЛЬ 04-08-2012 НОЛЬ
2 1 25-06-2012 04-08-2012 да
2 3 25-06-2012 04-08-2012 да
2 2 25-06-2012 04-08-2012 да
3 3 НОЛЬ 04-08-2012 НОЛЬ

 

Пользовательские функции
MySQL также поддерживает определенные пользователем функции, которые расширяют MySQL. Пользовательские функции – это функции, которые можно создавать с использованием языка программирования, такого как C, C ++ и т. Д., А затем добавлять их на сервер MySQL. После добавления они могут использоваться так же, как и любая другая функция.

 

Резюме

  • Функции позволяют нам расширять возможности MySQL.
  • Функции всегда возвращают значение и могут необязательно принимать параметры.
  •  Встроенные функции – это функции, которые поставляются с MySQL. Они могут быть классифицированы в соответствии с типами данных, которые они используют, например, строками, датами и числами встроенных функций.
  •  Хранимые функции создаются пользователем на сервере MySQL и могут использоваться в операциях SQL.
  • Пользовательские функции создаются вне MySQL и могут быть включены в сервер MySQL.
0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *