CodeGym /Kurslar /SQL SELF /Real tapşırıqlarda məlumatların formatlaşdırılması nümunə...

Real tapşırıqlarda məlumatların formatlaşdırılması nümunələri

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

Verilənlər bazası ilə işləyərkən ən məşhur ssenarilərdən biri – hesabat üçün məlumatların hazırlanmasıdır. Təsəvvür elə: universitetdə işləyirsən və rəhbərin (o, əlbəttə ki, SQL-dən heç nə başa düşmür) səndən tələb edir ki, tələbələrin ad və soyadını birləşdirib siyahı düzəldəsən, üstəlik doğum tarixini DD-MM-YYYY formatında göstərəsən. Tapşırıq aydındır: məlumatları gözəl şəkildə təqdim etmək lazımdır. Və SQL – bu işdə bizim əsl dostumuzdur.

Nümunə 1: Ad və soyadın birləşdirilməsi

Başlayaq tələbələrin first_name (ad) və last_name (soyad) sahələrini birləşdirməkdən, yəni students cədvəlindən.

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

Burda nə baş verir?

  • CONCAT() sətirləri birləşdirir. Ad və soyad arasında boşluq əlavə edirik ki, aydın olsun.
  • Nəticə yeni full_name sütununda saxlanılır.

Nəticə belə görünə bilər:

full_name
Otto Art
Anna Song
Pol Mac

Nümunə 2: Tarixin formatlaşdırılması

İndi isə sorğumuza doğum tarixinin formatlaşdırılmasını əlavə edək.

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date
FROM 
    students;

Burda yenilik nədir:

  • TO_CHAR() funksiyasını birth_date sahəsinə tətbiq edirik.
  • 'DD-MM-YYYY' formatı tarixi rahat görünüşə çevirir (məsələn: 25-12-2001).

Nəticə:

full_name formatted_birth_date
Otto Art 12-04-1995
Anna Song 03-08-1996
Pol Mac 21-11-1997

Vuala! İndi sən gözəl bir hesabat yaratdın.

Məlumatların ixracı üçün formatlaşdırma

Tutaq ki, həmkarlarından biri sifarişlər barədə məlumatı CSV-fayla çıxarmaq istəyir ki, sonra Excel-də işləsin. Amma bazada məlumatlar onun üçün əlverişsiz formatdadır, satış şöbəsinin adamları isə konkret görünüş tələb edir. Məsələn, total_price sahəsi əvəzinə, onlar qiyməti belə formatda görmək istəyirlər: $100.00.

Nümunə 3: Rəqəmlərin valyuta formatına çevrilməsi

orders cədvəlindən sifarişlər barədə məlumatı ixrac üçün hazırlayaq:

SELECT
    order_id,
    TO_CHAR(total_price, 'FM$999,999.00') AS formatted_price
FROM 
    orders;

TO_CHAR() burada nə edir?

  • FM (Fill Mode) artıq boşluqları silir.
  • $ valyuta simvolu əlavə edir.
  • 999,999.00 minlik ayırıcı və iki onluq göstərir.

Nəticə:

order_id formatted_price
1 $1,000.00
2 $2,500.50
3 $10.00

İndi həmkarın rahatlıqla məlumatı Excel-ə yükləyə bilər və səni iclasda tərifləyəcək.

Final tapşırıq

Ən maraqlı hissə burdan başlayır. Gəlin, artıq öyrəndiyin bütün bacarıqları birləşdirək.

Tapşırıq

students cədvəli üçün sorğu yaz ki:

  1. Ad və soyadı bir full_name sütununda birləşdirir.
  2. Doğum tarixini DD-MM-YYYY formatına çevirir.
  3. Tələbənin cari tarixə olan yaşını göstərir.

Sorğu təxminən belə olacaq:

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date,
    DATE_PART('year', AGE(birth_date)) AS age
FROM 
    students;

Yeni elementlər:

  • AGE(birth_date) cari tarixlə doğum tarixi arasındakı intervalı qaytarır, amma il, ay və gün formatında.
  • DATE_PART('year', AGE(birth_date)) bu intervaldan yalnız illəri çıxarır.

Nəticə:

full_name formatted_birth_date age
Otto Art 12-04-1995 28
Anna Song 03-08-1996 27
Pol Mac 21-11-1997 25

Belə hesabat ən tələbkar həmkarları belə razı salacaq.

Xüsusi şərtlər üçün formatlaşdırma

Bəzən məlumatların formatlaşdırılması filtr və ya şərt üçün lazımdır. Məsələn, doğum günü cari aya düşən tələbələri çıxaraq.

Nümunə 4: Aya görə filtrasiya

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date
FROM 
    students
WHERE 
    DATE_PART('month', birth_date) = DATE_PART('month', CURRENT_DATE);

Bu necə işləyir?

  • DATE_PART('month', birth_date) doğum tarixindən ayı çıxarır.
  • CURRENT_DATE cari tarixi verir. Ondan ayı DATE_PART() ilə alırıq.

Formatlaşdırma və sıralamanın birləşdirilməsi

İndi isə öyrəndiklərimizi birləşdirək və sıralama əlavə edək. Məsələn, tələbələrin doğum tarixinə görə sıralanmış siyahısını düzəldək.

Nümunə 5: Doğum tarixinə görə sıralama

SELECT
    CONCAT(first_name, ' ', last_name) AS full_name,
    TO_CHAR(birth_date, 'DD-MM-YYYY') AS formatted_birth_date
FROM 
    students
ORDER BY 
    birth_date ASC;

ASC ilə artan qaydada sıralama ən yaşlı tələbələri əvvəl göstərəcək, DESC ilə isə ən gəncləri.

Unikal dəyərlərlə birləşdirmə

Axırda isə – ulduzlu tapşırıq. Təsəvvür elə ki, universitetin bir neçə şəhərdə filialı var və sən tələbələrin oxuduğu unikal şəhərlərin siyahısını əlifba sırası ilə çıxarmalısan.

Nümunə 6: Unikal dəyərlər və sıralama

SELECT DISTINCT
    city 
FROM 
    students
ORDER BY 
    city ASC;

DISTINCT nə edir?

O, təkrarlanan dəyərləri çıxarır ki, nəticədə hər şəhər yalnız bir dəfə göstərilsin.

Bütün bunlar niyə lazımdır?

Rahatlıq və gözəllik. Məlumatlar gözəl tərtib olunanda onlarla işləmək asan olur, rəhbərlər də az sual verir.

Real həyata hazırlıq. Avtomatik hesabatlar yarada, ixraclarla işləyə və gözəl təqdimatlar hazırlaya biləcəksən.

Dəyərini artırmaq. SQL – təkcə məlumat deyil. Bu, onları başa düşülən və faydalı etmək üçündür.

Öyrəndiklərini istifadə et ki, sadəcə sorğu yazmayasan, əsl şah əsərlər yaradasan! Növbəti leksiyalarda PostgreSQL-in sehrinə daha dərindən baxacağıq.

2
Tapşırıq
SQL SELF, səviyyə, dərs
Bağlanıb
Sütunların birləşdirilməsi və sətirlərin formatlanması
Sütunların birləşdirilməsi və sətirlərin formatlanması
2
Tapşırıq
SQL SELF, səviyyə, dərs
Bağlanıb
Rəqəmlərin valyuta formatında göstərilməsi
Rəqəmlərin valyuta formatında göstərilməsi
1
Sorğu/viktorina
, səviyyə, dərs
Əlçatan deyil
Sətirlərin formatlanması
Sətirlərin formatlanması
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION