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

Зручно для стандартизації ПІБ.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ