CodeGym /Kurslar /SQL SELF /ARRAY-lərin istifadəsi (`ARRAY`)

ARRAY-lərin istifadəsi (`ARRAY`)

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

Bu gün bir az ARRAY-lərdən danışacağıq — PostgreSQL-in güclü alətlərindən biri, bir sütunda eyni tipli dəyərlər siyahısını saxlamağa imkan verir. ARRAY-ləri daha ətraflı növbəti səviyyələrdə öyrənəcəyik.

"ARRAY-lər" deyəndə dərhal siyahılar yadıma düşür. Düşün, mağazaya getməzdən əvvəl alış-veriş siyahısı yazırsan: alma, banan, süd, çörək. PostgreSQL-də ARRAY — belə bir siyahının analoqudur, burada bir sahədə bir neçə dəyər saxlamaq olar və hər bir dəyər eyni data tipinə aiddir. Məsələn, ədədlər array-ı, mətnlər array-ı, tarixlər array-ı və s.

Bəzi nümunələr göstərək.

Ədədlər array-ı:

{1, 2, 3, 4}

Sətirlər array-ı:

{"alma", "banan", "gilas"}

Tarixlər array-ı:

{2024-10-01, 2024-10-02, 2024-10-03}

ARRAY bir sahədə bir neçə dəyər yazmağa imkan verir, bu da cədvəldə yerə qənaət edir və sorğuların çevikliyini artırır.

Niyə ARRAY-lərə ehtiyac var? Əsas üstünlüklər

Məlumatların kompakt saxlanması: bir sahədə bir neçə dəyərin saxlanması. Bu, xüsusilə bir-biri ilə məntiqi bağlı olan məlumatlar üçün faydalıdır. Məsələn, məqalə üçün tag-lar siyahısı və ya tələbənin qiymətləri siyahısı. İki tag üçün ayrıca cədvəl açmağa dəyər?

Sorğuların rahatlığı: ARRAY-lər bir sahədən dərhal bütün dəyərlər siyahısını almağa və array-in ayrı-ayrı elementləri ilə asanlıqla işləməyə imkan verir.

Performans: bəzi hallarda ARRAY-lər əlaqəli məlumatlar üçün əlavə cədvəllər yaratmaqdan qaçmağa imkan verir, bu da bazanın arxitekturasını sadələşdirir və development-i sürətləndirir. Bu, əlbəttə, sevindiricidir.

PostgreSQL-də ARRAY-lərlə necə işləmək olar?

SELECT-də ARRAY yaratmaq

ARRAY yaratmaq üçün ARRAY[] konstruktorundan istifadə edə bilərsən. Məsələn:

-- Ədədlər array-ı nümunəsi
SELECT ARRAY[1, 2, 3, 4];

-- Sətirlər array-ı nümunəsi
SELECT ARRAY['alma', 'banan', 'gilas'];

Çox asandır. Gəlin bir cədvəl yaradaq və orada nəsə seçək.

ARRAY-lərlə cədvəl yaratmaq

Əvvəlcə bir cədvəl yaradaq, burada sütunlardan biri array olacaq.

id name - VARCHAR(50) subjects - TEXT[]
1 Alex {Riyaziyyat,Fizika}
2 Maria {Kimya,Biologiya,İngilis}
3 Peter {İnformatika}

Görək nə alındı:

SELECT * FROM students;
id name subjects
1 Alex {Riyaziyyat,Fizika}
2 Maria {Kimya,Biologiya,İngilis}
3 Peter {İnformatika}

ARRAY-lərdən məlumat çıxarmaq

ARRAY-dən məlumat çıxarmaq üçün PostgreSQL bir neçə funksiya və operator təqdim edir.

ARRAY elementini çıxarmaq

ARRAY-in elementini indekslə almaq üçün kvadrat mötərizələr [] istifadə olunur. Diqqət et, indeksləşmə 1-dən başlayır (əksər proqramlaşdırma dillərində 0-dan fərqli olaraq).

-- Hər tələbənin birinci fənnini alırıq
SELECT name, subjects[1] AS birinci_fənn FROM students;

Və nəticə belədir:

name birinci_fənn
Alex Riyaziyyat
Maria Kimya
Peter İnformatika

ARRAY-in bütün sətrini çıxarmaq

ARRAY-in bütün elementlərini almaq üçün adi SELECT istifadə olunur:

SELECT name, subjects FROM students;

ARRAY daxilində dəyər axtarışı

Bəzən bizə lazımdır ki, ARRAY müəyyən bir dəyəri saxlayırmı, yoxsa yox. Bunun üçün ANY operatoru istifadə olunur.

-- "Riyaziyyat" oxuyan tələbələri seç
SELECT name
FROM students
WHERE 'Riyaziyyat' = ANY(subjects);

Sorgunun nəticəsi:

name
Alex

PostgreSQL-də ARRAY-lərlə işləmək üçün çoxlu funksiya və operator var, amma onları gələcək səviyyələrdə öyrənəcəksən :P

ARRAY-lərlə işləyərkən tipik səhvlər

0 və 1 ilə indeksləşməni qarışdırmaq.

PostgreSQL-də ARRAY-in indeksləşməsi 1-dən başlayır. Python və ya JavaScript kimi dillərə öyrəşmisənsə, bu asanlıqla çaşdıra bilər.

Boş ARRAY-lər.

Boş ARRAY {}NULL — PostgreSQL-də fərqli şeylərdir. ARRAY-ləri müqayisə edəndə bu anlayışları qarışdırma.

Böyük ARRAY-lərlə işləmək.

Çox böyük həcmdə məlumatı ARRAY-də saxlamaq sorğuların işləmə vaxtını artıra bilər. ARRAY-ləri kiçik həcmli məlumatlar üçün istifadə et.

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