Bu elə bir leksiyadır ki, kursumuza buradan başlaya bilərdik. Amma onda ilk tapşırıqlar və leksiyalar çox darıxdırıcı olardı. Təsəvvür elə bir gün tikintidə işləmək istədin, nədən başlamaq istəyərdin: kərpiclərin növlərini və formalarını öyrənməkdən, yoxsa 30 dəqiqə qüllə kranını idarə etməkdən? Bax, məsələ budur :)
Tələbə — doldurulmalı bir qab deyil, alışdırılmalı bir məşəldir (amma yandırıb yandırmamaq şərtilə)! Mən çalışıram ki, bildiklərimi sadəcə danışmayım, elə edim ki, sənə maraqlı olsun. Və məhz indi verilənlər tipləri ilə tanış olmağa başlamağın tam vaxtıdır.
PostgreSQL-də verilənlər tipi — bu, cədvəldə müəyyən sütunda hansı tip məlumat saxlanılacağını göstərir. Məsələn, rəqəmlər, mətn və ya tarixlər. Bu bir az ona bənzəyir ki, sən əşyaları saxlamaq üçün qutu seçirsən: xırda şeylər üçün balaca, ayaqqabılar üçün böyük, saplar üçün şəffaf qutu ki, dərhal biləsən nə haradadır.
Nümunə:
- Əgər insanın yaşını saxlamaq istəyirsənsə, sənə rəqəm tipli verilənlər tipi lazımdır.
- Adı saxlamaq üçün isə mətn tipli verilənlər tipi gərəkdir.
- Qeydiyyat tarixini qeyd etmək üçün isə, əlbəttə ki, tarix tipli verilənlər tipi istifadə olunur.
Verilənlər tipləri nə üçündür?
Verilənlər tipləri kömək edir:
- Daxil edilən məlumatı məhdudlaşdırmağa. Məsələn, rəqəm gözlənilən yerə mətn əlavə edə bilməzsən.
- Məlumatı strukturlaşdırmağa. Hər sütunda nə olduğunu dəqiq biləndə, sorğuları qurmaq və məlumatı analiz etmək asan olur.
- Resurslara qənaət etməyə. Düzgün tiplərdən istifadə edəndə yaddaş sərfiyyatını azaldırsan.
- Dəqiqliyi qorumağa. Məsələn, maliyyə hesablamaları üçün sabit vergüllü rəqəmlər lazımdır.
İlham üçün nümunə
Təsəvvür elə tələbələr haqqında məlumat saxlamaq üçün bir cədvəlin var:
id |
name |
age |
enrollment_date |
|---|---|---|---|
| 1 | Otto Mars | 22 | 2023-01-15 |
| 2 | Anna Song | 19 | 2023-02-10 |
Burada id — unikal identifikator (rəqəm), name — mətn, age — yaş rəqəmi, enrollment_date isə tələbənin qəbul tarixidir. Bütün bu məlumatlar fərqli verilənlər tiplərinə malikdir, çünki onlar obyektin müxtəlif tərəflərini təsvir edir.
PostgreSQL-də verilənlər tiplərinin təsnifatı
PostgreSQL verilənlər tipləri ilə işləməkdə inanılmaz dərəcədə elastikdir. Aşağıda qısa təsnifat verilib.
Əsas verilənlər tipləri kateqoriyaları:
Rəqəm tipləri
- Bütöv rəqəmləri (məsələn, say, identifikator) və onluq hissəli rəqəmləri (məsələn, pul) saxlamaq üçün.
- Nümunələr:
INTEGER,NUMERIC,FLOAT.
Mətn tipləri
- Mətn və sətirləri saxlamaq üçün (məsələn, adlar, ünvanlar).
- Nümunələr:
CHAR,VARCHAR,TEXT.
Məntiqi tip
- Məntiqi dəyərləri saxlamaq üçün
TRUE(doğru) və yaFALSE(yalan). - Nümunə:
BOOLEAN.
- Məntiqi dəyərləri saxlamaq üçün
Tarix və vaxt üçün tiplər
- Tarixləri, vaxtı və ya onların birləşməsini saxlamaq üçün.
- Nümunələr:
DATE,TIME,TIMESTAMP.
Xüsusi tiplər
- Unikal identifikatorlar, JSON-obyektlər, massivlər və s.
- Nümunələr:
UUID,JSONB,ARRAY.
PostgreSQL-də verilənlər tiplərinin xüsusiyyətləri
PostgreSQL çoxlu daxili verilənlər tipini dəstəkləyir və custom (istifadəçi) verilənlər tipləri yaratmağa imkan verir. Bu, bu DBMS-i xüsusilə mürəkkəb sistemlər üçün güclü edir, çünki orada xüsusi tələblər ola bilər.
Maraqlıdır ki, PostgreSQL-də hətta coğrafi məlumatları saxlamaq və ya "Məndən 500 metr radiusda kafe tap" kimi sorğular etmək mümkündür. Belə tapşırıqlar üçün xüsusi verilənlər tipləri istifadə olunur.
Aydın verilənlər tipini göstərmək nə verir?
Bəzən elə gəlir ki, cədvəldə bütün sütunları mətn tipli etmək rahat olardı — axı mətn hər şeyi saxlaya bilər. Amma bu, pis praktikadır! Düzgün verilənlər tipini göstərmək imkan verir:
Sorğuları sadələşdirmək. Əgər PostgreSQL bilir ki, sütunda yalnız rəqəmlər var, o, hesablamaları, məsələn SUM() funksiyasını, daha sürətli edir.
Səhvlərdən qaçmaq. Təsəvvür elə ki, təsadüfən "otuz iki" yazdın, 32 əvəzinə, yaş saxlanan sütunda. Belə səhvləri tapmaq çox çətin olacaq.
GO TO FULL VERSION