CodeGym /Kurslar /SQL SELF /Sətirlərin formatlanması: CONCAT(), UPPER(), LOWER()

Sətirlərin formatlanması: CONCAT(), UPPER(), LOWER()

SQL SELF
Səviyyə , Dərs
Mövcuddur

Mətn məlumatları ilə işləmək — bu, verilənlər bazası işlərinin gündəlik hissəsidir. Təsəvvür elə ki, sən online mağaza developerisən və istifadəçilərin bazası var. Sənə istifadəçilərin tam adlarını saytda salamlayıcı banner üçün çıxarmaq lazımdır, məsələn: "Xoş gəlmisən, Otto Art!". Və ya bütün email-ləri standartlaşdırmaq istəyirsən (məsələn, onları kiçik register-ə çevirmək). Belə hallarda string əməliyyatlar olmadan keçinmək olmur.

PostgreSQL mətnlə işləmək üçün güclü alətlər verir. Bu gün biz əsas üç aləti öyrənəcəyik:

  • CONCAT() — sətirlərin birləşdirilməsi.
  • UPPER() — sətiri böyük hərflərə çevirmək.
  • LOWER() — sətiri kiçik hərflərə çevirmək.

CONCAT() funksiyası ilə işləmək

CONCAT() funksiyası bir neçə sətiri birləşdirib bir sətir edir. Əgər məlumatlar fərqli sütunlardadırsa, amma sən onları birləşdirib göstərmək istəyirsənsə, bu funksiya əvəzolunmazdır.

Sintaksis

CONCAT(string1, string2, ..., stringN)
  • string1, string2, stringN — birləşdirmək istədiyin sətirlər və ya sütunlardır.
  • Bütün arqumentlərdən ibarət bir sətir qaytarır.

Nümunə: adları işləyirik

Tutaq ki, bizdə students cədvəli var:

first_name last_name
Otto Art
Maria Chi
Anna Pal

Bizim tapşırıq: tələbələrin tam adlarını "Ad Soyad" formatında çıxarmaq.

Sorgu:

SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM students;

Nəticə:

full_name
Otto Art
Maria Chi
Anna Pal

Diqqət et ' ' ad və soyad arasında. Bu, sətirləri ayırmaq üçün əlavə etdiyimiz boşluqdur.

İşləmə xüsusiyyətləri

CONCAT() NULL-u saymır. Əgər arqumentlərdən biri NULL olsa, sadəcə ötürülür. Əgər hələ NULL nədir bilmirsənsə, narahat olma — biz bunu bir az sonra izah edəcəyik.

CONCAT()-a alternativ — || operatorudur, məsələn:

SELECT first_name || ' ' || last_name AS full_name FROM students;

Sətirlərin register-inin dəyişdirilməsi: UPPER()LOWER()

Təsəvvür elə ki, sən email-lərlə işləyirsən və istifadəçilər onları müxtəlif register-lərdə yazıblar: ivan@example.com, IVAN@EXAMPLE.COM. Standartlaşdırma üçün tez-tez lazım olur:

  • müqayisədən əvvəl mətnin görünüşünü eyniləşdirmək (məsələn, lowercase).
  • vacib sözləri vurğulamaq (məsələn, başlıqlar üçün UPPERCASE).

UPPER(): mətn böyük hərflərlə

UPPER() funksiyası mətni böyük hərflərlə sətirə çevirir.

Sintaksis:

UPPER(string)
  • string — sətir və ya mətn sütununun adı.

Nümunə:

students cədvəlinə email sütunu əlavə olunub:

first_name last_name email
Otto Art otto@example.com
Maria Chi MARIA@EXAMPLE.com
Anna Pal anna.pal@mail.ru

Email-ləri böyük hərflərlə çıxarmaq istəyirik:

SELECT email, UPPER(email) AS email_upper
FROM students;

Nəticə:

email email_upper
otto@example.com OTTO@EXAMPLE.COM
MARIA@EXAMPLE.com MARIA@EXAMPLE.COM
anna.pal@gmail.com ANNA.PAL@GMAIL.COM

LOWER(): mətn kiçik hərflərlə

Eyni qaydada, LOWER() funksiyası mətni kiçik hərflərə çevirir.

Sintaksis:

LOWER(string)

Nümunə:

Email-ləri kiçik hərflərə salaq:

SELECT email, LOWER(email) AS email_lower
FROM students;

Nəticə:

email email_lower
otto@example.com otto@example.com
MARIA@EXAMPLE.com maria@example.com
anna.pal@gmail.com anna.pal@gmail.com

Praktiki nümunələr və case-lər

Gəlin, öyrəndiklərimizi birləşdirək.

Tam adın böyük hərflərlə yaradılması

Sorgu:

SELECT CONCAT(UPPER(first_name), ' ', UPPER(last_name)) AS full_name_upper
FROM students;

Nəticə:

full_name_upper
OTTO ART
MARIA CHI
ANNA PAL

Burada biz CONCAT() funksiyası ilə ad və soyadı birləşdirdik, UPPER() ilə isə böyük hərflərə çevirdik.

Nümunə: email-lərin standartlaşdırılması

Bütün email-ləri bir formata — kiçik hərflərə salmaq istəyirik:

UPDATE students
SET email = LOWER(email);

İndi cədvəldə bütün email-lər eyni görünür, fərqi yoxdur əvvəl necə idi.

UPDATE operatorunun necə işlədiyini növbəti dərslərdə öyrənəcəksən.

İstifadəçilər üçün salam hazırlamaq

Tam adlara "Xoş gəlmisən" salamı əlavə edək:

SELECT CONCAT('Xoş gəlmisən, ', first_name, ' ', last_name, '!') AS greeting
FROM students;

Nəticə:

greeting
Xoş gəlmisən, Otto Art!
Xoş gəlmisən, Maria Chi!
Xoş gəlmisən, Anna Pal!

Mətn funksiyaları ilə işləyərkən tipik səhvlər

Əgər CONCAT()-da boşluq buraxılsa, nəticə düz görünməyə bilər. Məsələn:

SELECT CONCAT(first_name, last_name) AS full_name
FROM students;

Nəticə olacaq: "OttoArt", "MariaChi". Həmişə lazım olan yerlərdə boşluq əlavə et.

NULL-dan istifadə. Əgər CONCAT()-ın arqumentlərindən biri NULL olsa, sətir natamam ola bilər. Məsələn:

SELECT CONCAT(first_name, ' ', middle_name, ' ', last_name) AS full_name
FROM students;

Əgər middle_name = NULL olsa, nəticə "Otto NULL Art" olacaq. Bunu aradan qaldırmaq üçün COALESCE() funksiyasından istifadə edə bilərsən:

SELECT CONCAT(first_name, ' ', COALESCE(middle_name, ''), ' ', last_name) AS full_name
FROM students;

NULL və COALESCE() funksiyası haqqında daha ətraflı yaxın dərslərdə öyrənəcəksən :P

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION