Строковые функции в 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.