Функция SQL — это заранее определенная операция, которая принимает входные значения (аргументы) и возвращает результат. Функции бывают встроенными (их предоставляет СУБД) и пользовательскими (их создают разработчики), но в этом уроке мы рассматриваем только встроенные функции.
Встроенные функции SQL помогают обрабатывать данные прямо в запросе: преобразовывать значения, выполнять вычисления, работать с текстом, датами и числами. Благодаря этому можно получать более информативный результат без дополнительной обработки на стороне приложения.
Общий синтаксис для использования функции в SQL:
FUNCTION_NAME(argument1, argument2, ...);
FUNCTION_NAME: Имя функции, которую вы хотите использовать.argument1, argument2, ...: Входные значения (аргументы), которые требуются функции. Это могут быть имена столбцов, литеральные значения или даже другие функции.Функции в разделе SELECT позволяют преобразовывать или вычислять значения для вывода.
UPPER)Функция UPPER() преобразует строку в верхний регистр.
SELECT UPPER(first_name) AS uppercase_name
FROM employees;
Этот запрос извлекает столбец first_name из таблицы employees и преобразует каждое имя в верхний регистр, присваивая результату псевдоним uppercase_name.
ROUND)Функция ROUND() округляет число до указанного количества десятичных знаков.
SELECT ROUND(salary, 0) AS rounded_salary
FROM employees;
Этот запрос извлекает столбец salary из таблицы employees и округляет каждую зарплату до ближайшего целого числа, присваивая результату псевдоним rounded_salary.
NOW)Функция NOW() не принимает аргументов и возвращает текущую дату и время.
SELECT NOW() AS current_datetime;
Этот запрос возвращает текущую дату и время.
Функции в разделе WHERE позволяют фильтровать данные на основе вычисленных или преобразованных значений.
LENGTH)Функция LENGTH() возвращает длину строки.
SELECT *
FROM products
WHERE LENGTH(product_name) > 20;
Этот запрос извлекает все столбцы из таблицы products, где длина product_name превышает 20 символов.
YEAR)Функция YEAR() извлекает год из даты.
SELECT *
FROM orders
WHERE YEAR(order_date) = 2023;
Этот запрос извлекает все столбцы из таблицы orders, где год в столбце order_date равен 2023.
ABS)Функция ABS() возвращает абсолютное значение числа.
SELECT *
FROM transactions
WHERE ABS(amount) > 100;
Этот запрос извлекает все столбцы из таблицы transactions, где абсолютное значение amount превышает 100.
Функции SQL можно разделить на следующие категории:
UPPER, LOWER, SUBSTRING, LENGTH, TRIM).ROUND, ABS, SQRT, MOD).NOW, YEAR, MONTH, DAY, DATE_ADD, DATE_SUB).COUNT, SUM, AVG, MIN, MAX). (Рассматриваются в следующем уроке)CAST, CONVERT).AS), чтобы давать осмысленные имена вычисляемым столбцам.Основные выводы из этого урока:
Освоив использование встроенных функций в SQL-запросах, вы сможете выполнять мощные манипуляции с данными и анализ, извлекая ценные инсайты из ваших данных.