Функции SQL — это заранее определенные процедуры, которые выполняют определенные операции с данными. Они позволяют манипулировать данными, выполнять вычисления и форматировать результаты непосредственно в ваших SQL-запросах. Функции могут использоваться в различных частях запроса, например, в разделе SELECT
для преобразования вывода или в разделе WHERE
для фильтрации данных на основе вычисленных значений.
Функции 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-запросах, вы сможете выполнять мощные манипуляции с данными и анализ, извлекая ценные инсайты из ваших данных.