Урок 3.1 · Время чтения: ~8 мин
В этом уроке вы познакомитесь с темой «функции sql» и поймете, как встроенные функции помогают обрабатывать данные прямо в запросе. Мы разберем базовый синтаксис, типы функций и практические примеры на таблицах Sakila. К концу урока вы сможете уверенно применять функции SQL в реальных аналитических задачах.
Встроенные функции SQL
В предыдущих уроках вы научились выбирать, фильтровать и сортировать строки. Теперь следующий шаг - вычислять и преобразовывать значения внутри запроса без дополнительной обработки в приложении.
Именно здесь особенно полезны встроенные функции SQL: они делают запросы выразительнее, помогают сократить лишнюю логику и ускоряют подготовку данных для отчетов.
Что такое встроенные функции SQL
Встроенная функция SQL - это готовая операция, которую предоставляет СУБД. Функция принимает аргументы и возвращает новое значение: строку, число, дату или логический результат.
Функции используют, когда нужно:
- привести текст к нужному виду;
- выполнить вычисление в запросе;
- извлечь часть даты или строки;
- преобразовать тип данных.
Базовый синтаксис
FUNCTION_NAME(argument1, argument2, ...)
Где:
FUNCTION_NAME- имя функции;argument1, argument2, ...- столбцы, литералы или результаты других функций.
Пример простого вызова функции:
SELECT
UPPER(first_name) AS upper_name
FROM customer
LIMIT 5;
Результат: каждое значение first_name переводится в верхний регистр.
Также можно использовать вложенные вызовы, когда результат одной функции передается в другую.
Пример вложенного вызова функции:
SELECT
UPPER(TRIM(first_name)) AS normalized_name
FROM customer
LIMIT 5;
Результат: пробелы по краям удаляются, затем имя приводится к верхнему регистру.
Где чаще всего применяют функции
Функции в SELECT
В SELECT функции помогают сформировать удобный вывод.
SELECT
customer_id,
CONCAT(first_name, ' ', last_name) AS full_name,
UPPER(email) AS email_upper
FROM customer
LIMIT 10;
Примечание: в этом примере используется только одна таблица, а функции сразу форматируют выходные столбцы в SELECT.
Функции в WHERE
В WHERE функции позволяют фильтровать по вычисляемому условию.
SELECT
title,
rental_duration
FROM film
WHERE LENGTH(title) >= 15
AND ABS(rental_duration - 5) <= 2
ORDER BY title;
Результат: выводятся фильмы с более длинными названиями и сроком аренды, близким к 5 дням.
Основные типы функций SQL
Строковые функции
Примеры: UPPER, LOWER, TRIM, SUBSTRING, CONCAT.
Используются для очистки и форматирования текстовых полей.
Математические функции
Примеры: ROUND, ABS, CEILING, FLOOR, MOD.
Используются для расчетов, округлений и контроля числовых значений.
Функции даты и времени
Примеры: NOW, CURRENT_DATE, YEAR, MONTH, DATE_ADD, DATEDIFF.
Используются для анализа периодов, интервалов и динамики по времени.
Функции преобразования типов
Примеры: CAST, CONVERT.
Используются, когда нужно явно привести данные к правильному типу.
Практические рекомендации
- Всегда проверяйте, как функция ведет себя в вашей СУБД: синтаксис и детали могут отличаться.
- Используйте псевдонимы
AS, чтобы вычисляемые поля было проще читать. - Учитывайте
NULL: результат функции может статьNULL, если один из аргументов пустой. - Не перегружайте один запрос десятками вложенных функций; лучше разбивать логику на этапы.
Ключевые выводы этого урока:
- Встроенные функции SQL позволяют обрабатывать данные прямо в запросе.
- Функции в
SELECTпомогают формировать удобный результат, а вWHERE- точнее фильтровать строки. - Строковые, математические, временные и функции преобразования закрывают большинство базовых задач.
- Корректная работа с типами данных и
NULLкритична для предсказуемого результата. - Грамотное использование функций делает SQL-запросы короче, понятнее и полезнее для аналитики.
Вопросы для собеседования
Что такое встроенная функция SQL и зачем она нужна?
Встроенная функция SQL - это заранее определенная операция, предоставляемая СУБД. Она нужна, чтобы преобразовывать, вычислять и форматировать данные прямо в запросе.
Почему функции SQL часто используют и в SELECT, и в WHERE?
В SELECT функции помогают формировать или вычислять значения для вывода. В WHERE они помогают фильтровать строки по вычисляемым условиям.
Что такое вложенный вызов функции и когда он нужен?
Вложенный вызов функции - это передача результата одной функции в другую. Он полезен, когда данные нужно обработать в несколько шагов, например UPPER(TRIM(first_name)).
В следующем уроке мы подробно разберем строковые функции SQL и научимся эффективно очищать и преобразовывать текстовые данные.