JavaRush /Курсы /SQL SELF /Работа со строками: LENGTH(), SUBSTRING(), TRIM(), POSITI...

Работа со строками: LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLACE(), INITCAP()

SQL SELF
6 уровень , 0 лекция
Открыта

Когда вы работаете с именами, адресами, email'ами или любыми другими текстами — вам почти всегда нужно делать одно из двух:

  • Извлечь часть строки
  • Узнать длину
  • Очистить лишние пробелы
  • Найти/заменить фрагмент
  • Отформатировать вывод

Например, вам нужно:

  • Вывести только фамилию из полного имени.
  • Найти студентов, у которых фамилия начинается с «П».
  • Заменить все пробелы на подчёркивания.
  • Вывести фамилию с заглавной буквы.

Все эти задачи легко решаются с помощью строковых функций PostgreSQL.

LENGTH() — длина строки

Функция LENGTH() возвращает количество символов в строке.

Синтаксис:

LENGTH(string)

Пример:

SELECT name, LENGTH(name) AS name_length
FROM students;
name name_length
Art 3
Song 4
Pal 3

Полезно для проверки длины ФИО, паролей и других текстов.

SUBSTRING() — извлечение части строки

Позволяет достать подстроку из строки — например, первые 3 символа фамилии или домен из email.

Синтаксис:

SUBSTRING(string FROM start FOR length)
  • start — позиция первого символа (нумерация с 1)
  • length — сколько символов извлечь

Пример 1: первые 3 буквы фамилии

SELECT last_name, SUBSTRING(last_name FROM 1 FOR 3) AS prefix
FROM students;
last_name prefix
Song Son
Pal Pal

Пример 2: домен email'а

SELECT email, SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM students;
email domain
otto@example.com example.com
maria@gmail.com gmail.com

TRIM() — удаление лишних пробелов

Удаляет пробелы (и другие символы) в начале и/или в конце строки.

Синтаксис:

TRIM([LEADING | TRAILING | BOTH] chars FROM string)

Но чаще всего используется просто:

TRIM(string)

Пример:

SELECT '[' || TRIM('   Art   ') || ']' AS cleaned;
cleaned
[Art]

Особенно важно, если пользователи вводят данные вручную (например, с пробелами в начале).

POSITION() — поиск подстроки

Возвращает позицию, с которой начинается подстрока.

Синтаксис:

POSITION(substring IN string)

Пример:

SELECT email, POSITION('@' IN email) AS at_position
FROM students;
email at_position
otto@example.com 5
anna.pal@gmail.com 9

Можно использовать с SUBSTRING() для извлечения частей строки.

REPLACE() — замена подстроки

Заменяет все вхождения одной подстроки на другую.

Синтаксис:

REPLACE(string, from_substring, to_substring)

Пример: заменить пробелы на подчёркивания

SELECT name, REPLACE(name, ' ', '_') AS fixed_name
FROM students;
name fixed_name
Otto Art Otto_Art
Maria Chi Maria_Chi

INITCAP() — первая буква заглавная

Преобразует строку так, чтобы первая буква каждого слова была заглавной, остальные — строчные.

Синтаксис:

INITCAP(string)

Пример:

SELECT INITCAP('anna pal') AS full_name;
full_name
Anna Pal

Удобно для стандартизации ФИО.

2
Задача
SQL SELF, 6 уровень, 0 лекция
Недоступна
Определение длины строки
Определение длины строки
2
Задача
SQL SELF, 6 уровень, 0 лекция
Недоступна
Извлечение части строки
Извлечение части строки
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
t0dzi Уровень 11
12 сентября 2025
😁
Constantine Уровень 4
13 августа 2025
👍
Anemon Уровень 13 Expert
5 августа 2025
🤓