Строковые функции в SQL используются для манипуляции и преобразования текстовых данных. Эти функции необходимы для очистки, форматирования и извлечения информации из текстовых столбцов в базе данных. В этом уроке рассматриваются некоторые из наиболее часто используемых строковых функций и приводятся практические примеры.
UPPER() - Преобразует строку в верхний регистр.Синтаксис:
UPPER(string)
Пример:
SELECT UPPER(first_name) AS uppercase_name
FROM employees;
Результат: Преобразует все значения first_name в верхний регистр.
LOWER() - Преобразует строку в нижний регистр.Синтаксис:
LOWER(string)
Пример:
SELECT LOWER(last_name) AS lowercase_name
FROM employees;
Результат: Преобразует все значения last_name в нижний регистр.
LENGTH() или LEN() - Возвращает длину строки (количество символов).Синтаксис:
LENGTH(string) -- Для большинства баз данных
LEN(string) -- Для SQL Server
Пример:
SELECT LENGTH(product_name) AS name_length
FROM products;
Результат: Возвращает количество символов в каждом значении product_name.
SUBSTRING() или SUBSTR() - Извлекает часть строки.Синтаксис:
SUBSTRING(string, start_position, length) -- Для большинства баз данных
SUBSTR(string, start_position, length) -- Для Oracle и других
Пример:
SELECT SUBSTRING(email, 1, 5) AS email_prefix
FROM users;
Результат: Извлекает первые 5 символов из столбца email.
CONCAT() - Объединяет две или более строк в одну.Синтаксис:
CONCAT(string1, string2, ...)
Пример:
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;
Результат: Объединяет first_name и last_name в одно значение full_name.
TRIM() - Удаляет начальные и конечные пробелы из строки.Синтаксис:
TRIM(string)
Пример:
SELECT TRIM(' SQL Basics ') AS trimmed_string;
Результат: Возвращает 'SQL Basics' без начальных и конечных пробелов.
REPLACE() - Заменяет вхождения подстроки в строке.Синтаксис:
REPLACE(string, old_substring, new_substring)
Пример:
SELECT REPLACE(phone_number, '-', '') AS cleaned_phone
FROM contacts;
Результат: Удаляет дефисы из значений phone_number.
INSTR() или CHARINDEX() - Находит позицию подстроки в строке.Синтаксис:
INSTR(string, substring) -- Для большинства баз данных
CHARINDEX(substring, string) -- Для SQL Server
Пример:
SELECT INSTR(email, '@') AS at_position
FROM users;
Результат: Возвращает позицию символа @ в столбце email.
LEFT() и RIGHT() - Извлекает указанное количество символов из начала или конца строки.Синтаксис:
LEFT(string, number_of_characters)
RIGHT(string, number_of_characters)
Пример:
SELECT LEFT(product_code, 3) AS product_prefix,
RIGHT(product_code, 4) AS product_suffix
FROM products;
Результат: Извлекает первые 3 символа и последние 4 символа из product_code.
FORMAT() или TO_CHAR() - Форматирует строку или число в определенном формате.Синтаксис:
FORMAT(value, format) -- Для SQL Server
TO_CHAR(value, format) -- Для Oracle
Пример:
SELECT FORMAT(salary, 'C') AS formatted_salary
FROM employees;
Результат: Форматирует столбец salary как валюту.
Очистка данных:
Используйте TRIM() и REPLACE() для очистки данных, например, удаления лишних пробелов или нежелательных символов.
Форматирование вывода:
Используйте UPPER(), LOWER() и CONCAT() для стандартизации и форматирования текста в отчетах.
Извлечение информации:
Используйте SUBSTRING(), LEFT() и RIGHT() для извлечения определенных частей строки, таких как префиксы или доменные имена.
Проверка данных:
Используйте LENGTH() и INSTR() для проверки структуры строк, например, длины телефонных номеров или наличия символа @ в адресах электронной почты.
Строковые функции — это важные инструменты для работы с текстовыми данными в SQL. Освоив эти функции, вы сможете очищать, форматировать и извлекать ценную информацию из ваших данных. Практикуйтесь с этими функциями в реальных сценариях, чтобы улучшить свои навыки работы с SQL.